Se um tempo de inatividade muito pequeno for um problema e você tiver um banco de dados muito ativo, convém considerar a configuração do novo servidor como escravo do servidor antigo. Siga a documentação de replicação do MySQL , configurando o novo servidor como escravo. Então, quando você estiver pronto para fazer a mudança, você apenas começará a ter seus aplicativos acessando o novo servidor em vez do antigo - talvez colocando o endereço IP em um para o outro, reconfigurando seu aplicativo para o novo servidor endereço, etc ...
No entanto, isso geralmente é um exagero para a maioria dos sites. Normalmente você pode levar alguns minutos de inatividade para fazer o movimento, usando um mecanismo como o que segue ...
Comece apenas com a cópia inicial enquanto o MySQL está sendo executado no servidor de origem (e no destino), com algo como:
rsync -avzP --delete /var/lib/mysql/ root@destination:/var/lib/mysql.source/
Eu o executo em um destino de "mysql.source" para ter certeza de que, se cometer um erro, não estou sobrescrevendo o servidor ativo com dados do novo servidor. Dependendo da velocidade da rede, isso pode levar muito tempo (digamos, se você estiver passando de um provedor para outro em um link de 1 mbps).
Quando isso terminar, execute-o novamente para transferir os arquivos alterados. Isso deve ser muito mais rápido.
Depois de voltar a executá-lo algumas vezes, provavelmente será algo muito pequeno, talvez alguns segundos.
Neste ponto, você está pronto para o rsync final. Para fazer isso:
ON OLD SERVER:
/etc/init.d/mysql stop
rsync -avzP --delete /var/lib/mysql/ root@destination:/var/lib/mysql.source/
ON NEW SERVER:
cd /var/lib
mv mysql mysql.orig
mv mysql.source mysql
/etc/init.d/mysql start
Claro, isso pressupõe que você já copiou o seu my.cnf e fez os ajustes apropriados se o sistema for maior ou menor que o antigo (alterando os tamanhos do cache e coisas do tipo).
Se um tempo de inatividade muito pequeno for um problema e você tiver um banco de dados muito ativo, convém considerar a configuração do novo servidor como escravo do servidor antigo. Siga a documentação de replicação do MySQL , configurando o novo servidor como escravo. Então, quando você estiver pronto para fazer a mudança, você apenas começará a ter seus aplicativos acessando o novo servidor em vez do antigo - talvez colocando o endereço IP em um para o outro, reconfigurando seu aplicativo para o novo servidor endereço, etc ...