Mysql dump de escravo sem dados mestre

3

Eu sou relativamente novo em todo o processo de replicação do mysql, então essa pode ser uma pergunta fácil de responder. Eu tenho um mestre e um escravo. Eu preciso configurar outro escravo, então obviamente eu precisarei fazer o despejo do escravo atual porque eu NÃO POSSO colocar o master offline por um segundo. Como posso ter certeza de que, durante o tempo em que estou realizando o despejo do banco de dados escravo atual, não perco nenhum dado mestre recém-criado nesse período?

Obrigado a todos.

    
por pickledtink 04.10.2012 / 17:22

3 respostas

4

Eu tenho um método interessante, mas você terá que parar a replicação para fazer

Para o servidor de banco de dados M1, S1 e S2

STEP01) No S2, instale a mesma versão do MySQL que o S1 possui

STEP02) No S2, certifique-se de que server_id em /etc/my.cnf seja diferente de server_id em S1

STEP03) No S1, STOP SLAVE;

STEP04) No S1, SHOW SLAVE STATUS\G

STEP05) Anote os dois valores a seguir do PASSO 04

  • Master_Host (MHOST)
  • Master_Port (MPORT)
  • Relay_Master_Log_File (RMLF)
  • Exec_Master_Log_Pos (EMLP)

STEP06) No S1, mysqldump ... --all-databases > /root/MySQLDataForSlave.sql

STEP07) No S1, START SLAVE;

STEP08) No S1, scp /root/MySQLDataForSlave.sql S2:/root/.

STEP09) No S2, mysql ... < /root/MySQLDataForSlave.sql

STEP10) No S2, execute este comando no cliente mysql usando valores do STEP05

CHANGE MASTER TO
master_host='MHOST',
master_port=MPORT,
master_user='repluser',
master_password='replpass',
master_log_file='RMLF',
master_log_pos=EMLP;

PASSO11) No S2, START SLAVE;

STEP12) Em S2, SHOW SLAVE STATUS\G (se Slave_IO_Running e Slave_SQL_Running forem Sim, FELICITAÇÕES !!!)

STEP13) No S2, SHOW SLAVE STATUS\G de novo e de novo até Seconds_Behind_Master = 0;

Na verdade, eu escrevi um script para automatizar isso no DBA StackExchange em 06 de fevereiro de 2012 .

Experimente!

    
por 04.10.2012 / 18:14
2

Desative a replicação no escravo antes de tirar o instantâneo. Dica - interrompa o encadeamento IO primeiro e deixe o encadeamento SQL completo antes de pará-lo e, em seguida, gerar o instantâneo.

    
por 04.10.2012 / 18:03
2

Use o seguinte guia para introduzir um escravo adicional ao seu ambiente existente:

MySQL :: Manual de Referência do MySQL 4.1 :: 16.1.1.9 Introduzindo Escravos Adicionais para um ambiente de replicação existente

    
por 04.10.2012 / 18:21