Inicialize um servidor escravo MySQL localizado em outra rede que não seja o mestre

Inicialize um servidor escravo MySQL localizado em outra rede que não seja o mestre

é minha primeira pergunta aqui e inglês não é minha língua nativa, mas tentarei explicar.

Eu tenho um servidor MySQL mestre com um endereço IP público em execução na infraestrutura do meu provedor e quero executar um servidor escravo MySQL local em meu escritório que replicará todos os dados para fins de teste.

Configurar a replicação funciona perfeitamente, criei um túnel SSH para que meu escravo leia o binlog do mestre, aqui está tudo bem.

Meu problema é configurar os dados do mestre. Normalmente quando quero carregar os dados do mestre para qualquer escravo da mesma rede, executo o seguinte comando no mestre:

mysqldump 'master' --master-data=1 | mysql 'slave' 

mas aqui não posso ter nenhum IP para o escravo porque ele está localizado no meu escritório atrás de uma série de roteadores NAT...

Alguém tem uma solução, sabendo que não consigo parar o master e que contém cerca de 50 GB de dados. Se você tiver alguma outra solução para fazer uma transferência de dados 'quente' de um mestre para um escravo também estou muito interessado.

Obrigado antecipadamente.

Responder1

Supondo que você possa fazer ssh para o mestre, que tal, do escravo.

ssh master 'mysqldump \'master\' --master-data=1' | mysql 'slave'

Isso executará o comando dump no master, mas o recarregará localmente.

Responder2

Por que você simplesmente não o encaminha para um arquivo e o transfere mais tarde por scpou rsync?

mysqldump master --master-data=1 >master.dump

no escravo

mysql <master.dump

Alternativamente, execute o mysqldumpcomando no escravo e não no mestre. Talvez funcione melhor sem o erro acima.

Dica: talvez você deva descartar todos os bancos de dados e não apenas um?

informação relacionada