This is an awesome post, very helpful!
It is also worth to mention that web hosting providers (like in my case) can use WHM for all the migration tasks. WHM will backup all your sites and restore them on the new server. cPanel will provide you with a temporary license for the new server to make the transfer; then after the migration is done you just transfer the license from the old server to the new one. Of course TTL, Apache config, et., described here has to be done manually but the rest is done in a breeze.
Greg Saylor - 2009-02-12 14:03:22 - In reply to message 1 from Carlos Mario Mejia
I just wanted to add that when using WHM to migrate a server (especially one that is database driven), you can run into some issues. In Manuel's post he mentions in step 6 "Put the old server in migration mode". Most sites I've migrated with do not have this functionality (I think it is something Manuel built into his site). But the point is to make sure that no database updates happen on the old server. Shutting the database down is an easy way to do this, but most sites will start returning error messages about being unable to connect to the database server, or maybe even 404 errors. For some sites, this may be an acceptable result for the time it takes DNS to propagate out, for others, it would mean loss of customers, sales, etc.... Of course, its pretty straightforward to develop a "server is undergoing maintenance" page before the migration begins...
Imagine if during the migration a customer placed a new order and the database was active - it would go into the database of the old server. Then when you went to check the new site for new orders, you would not see those transaction. This is a greatly simplified example, there are many, many things that can get out-of-sync and their effects are very much application-specific.
Email, too, can have the similar synchronization issues (although I can imagine how applications like WHM could be more readily engineered to work with email synchronization by configuring the old email server to forward all mail to the new server as it arrives).
I am not sure just how well WHM handles database synchronization, but it feels a bit too much like a "black box" to me. I want to know exactly what is going on during these steps when a database is involved. Its no fault of WHM (which is a fine product), its that the process itself can be more complex and have edge cases that would be unreasonable to presume the developers of WHM (or any similar product) could have foreseen.
Senior Systems Integrator
gregs (at) net-virtual.com