Você pode fazer isso sem um arquivo intermediário, além de redefinir os ponteiros de replicação no processo, para não perder nenhuma atualização (e precisar ressincronizar novamente)
-
Parar a replicação do escravo
escravo > mysql 'slave stop;'
-
dump o mestre para o escravo, usando o
--master-data=1
flagmestre > mysqldump -e --master-data = 1 --única transação $ DATABASE | ssh -C user @ slave 'mysql $ DATABASE'
-
iniciar a replicação no escravo
escravo > mysql 'slave start'
--master-data=1
faz com que o mysqldump emita as configurações de CHANGE MASTER TO ...
na parte superior do dump para definir o log binário de replicação e o deslocamento para o ponto exato no log binário do mestre no momento em que o dump foi tirado
-e
usa o formato de saída estendida, basicamente vários conjuntos de valores por instrução de inserção, que é mais eficiente tanto no fio quanto ao ser aplicado ao escravo.
--single-transation
diz ao mysql para abrir uma transação sobre todo o dump, em vez de usar LOCK TABLES
.