Um escravo do MySQL pode ser um master ao mesmo tempo?

12

Estou no processo de migração de 2 servidores de banco de dados (mestre e escravo) para dois novos servidores de banco de dados (mestre e escravo)

DB1 - Master (produção)

DB2 - escravo (produção)

DB3 - Novo mestre

DB4 - Novo Escravo

Atualmente, tenho a replicação configurada como:

DB1 -> DB2
DB3 -> DB4

Para obter os dados de produção replicados para os novos servidores, eu gostaria de tê-los "encadeados" para que fique assim:

DB1 -> DB2 -> DB3 -> DB4

Isso é possível? Quando executo show master status; no DB2 (o escravo de produção), a ocupação do log binário nunca parece mudar:

+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000020 |       98 |              |                  | 
+------------------+----------+--------------+------------------+

Estou um pouco confuso sobre por que a posição do log binário não está mudando no DB2, Idealmente, será o mestre para DB3.

    
por mmattax 25.05.2010 / 19:32

5 respostas

16

O binlog em DB2 não estava atualizando as atualizações do escravo. Para encadear a replicação, é preciso definir log-slave-updates em my.conf.

link

    
por 04.06.2010 / 18:07
7

Sim, é possível :) Isso é chamado de replicação "Master with Relay Slave" e há muitos documentos sobre isso na rede.

Eu recomendo que você dê uma olhada na documentação oficial aqui .

Btw, também dê uma olhada nestes slides . Eles têm algumas dicas sobre topologias de replicação.

Espero que isso ajude.

    
por 25.05.2010 / 19:51
3

sim - você pode criar servidores mysql, você pode até fazer um replicação circular com duas ou mais máquinas. lembre-se de ativar o binlogging no slave que também atua como master.

    
por 25.05.2010 / 19:48
0

Sim, é possível. Realisticamente, você precisa de um novo instantâneo do DB2 para construir o DB3. Nesse ponto, se você tiver uma boa posição, você pode usar o DB4 ou usar outro snapshot do DB3.

Não se esqueça de definir server_id exclusivo para cada servidor.

Alto desempenho MySQL é um ótimo livro para referenciar a administração mais avançada do MySQL.

    
por 25.05.2010 / 19:46
0

Por que não apenas adicionar o DB3 como um novo escravo, e depois promovê-lo para dominar quando você estiver pronto para fazer a troca? Isso lhe daria o benefício adicional temporário de ter vários escravos e reduzir ou eliminar seu tempo de inatividade.

    
por 04.06.2010 / 18:29