I want to migrate my server. does this procedure make sense. [VASCL:A141B92B730]

Kjetil Torgrim Homme kjetilho at ifi.uio.no
Wed May 3 17:36:43 EDT 2006

On Wed, 2006-05-03 at 11:34 -0400, Richmond Dyes wrote:
> I have a postfix 2 and cyrus 2.0 server on Redhat 7.2  I want to move
> this server to a redhat  enterprise 4.3 server with postfix 2.1.5 and
> 2.2.12. 
> I have analyzed it and thought this procedure would work
>      1. Install the new server with the postfix and cyrus on it.
>      2. Migrate my sasldb file to sasldb2 on the new server
>      3. Copy my postfix config files to the new server.
>      4. Start cyrus on my new server.
>      5. Create all the users with empty mailboxes on the new server.
>      6. Take down my postfix and cyrus on the old server
>      7. Change the canonical name in my dns to point to the new server
>      8. change my MX to point to the new server
>      9. restart the dns daemon
>     10. Take down the cyrus on the new server making sure the postfix
>         is up and running to store new email in deferred. I have tons
>         of hard drive space for the tmp space needed to store the
>         email till I can bring up cyrus again.
>     11. Starting in the root of their inbox, copy each users mail from
>         the old server to the new. This would include their index and
>         cache files in each directory in their mailbox structure.
>     12. Run reconstruct.
>     13. Start cyrus
>     14. Flush the mailq to deliver the deferred mail.
> Does this procedure make sense and where are the gotchas in it?

the main gotcha is the Berkeley DB versions.  you may need to script
conversion into flat files on the old server, and from flat files into
the correct database format on the new server -- consider moving to
skiplist for most files.

a few additional points:

9a. restarting your DNS won't flush the entry in the world's DNS
servers, so you should add a step 0. decrease TTL for MX.

10a. copy the mailboxes.db from the old server.  that way you don't need
the -f flag to reconstruct which may give you inconsistent results (it
won't recurse further down a directory without cyrus.index file)

11a. copy user.seen and user.sub as well.

Kjetil T.

More information about the Info-cyrus mailing list