Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

É possível fazer replicação N-master => 1-slave com o MySQL?


A replicação de vários mestres (um escravo com mais de um mestre) não é suportada pelo MySQL (além do MySQL Cluster). Você pode fazer uma replicação mestre-mestre de uma replicação circular (anel) (descrita aqui ou aqui ).

Em MySQL de alto desempenho 2ª edição os autores descrevem uma maneira de emular a replicação multimestre usando uma combinação inteligente de replicação mestre-mestre e o Blackhole mecanismo de armazenamento (Capítulo 8 Replicação> Topologias de replicação> Soluções de replicação personalizadas> Emulação de replicação multimaster p. 373 - 375 ).

Eles mostram duas possíveis topologias:

Usando dois co-mestres (permitindo mudar o mestre do escravo de Mestre 1 para Mestre 2 )
  • Mestre 1: hospeda DB1 e replica o DB2 do Mestre 2; o mecanismo de armazenamento para todas as tabelas no DB2 é alterado para Blackhole para que os dados não sejam efetivamente armazenados no Mestre 1 .
  • Mestre 2: hospeda DB2 e replica DB1 do Mestre 1; o mecanismo de armazenamento para todas as tabelas no DB1 é alterado para Blackhole para que os dados não sejam efetivamente armazenados no Mestre 2
  • Escravo 1: replica DB1 e DB2 de qualquer Mestre 1 ou Mestre 2 (permitindo mudar de mestre); o resultado é que Escravo 1 replica ambos os bancos de dados que estão efetivamente hospedados em dois mestres diferentes.

Usando uma cadeia mestra
  • Mestre 1: apenas hospeda DB1
  • Mestre 2: hospeda DB2 e replica DB1 do Mestre 1; o mecanismo de armazenamento para todas as tabelas no DB1 é alterado para Blackhole para que os dados não sejam efetivamente armazenados no Mestre 2
  • Escravo 1: replica DB1 e DB2 do Mestre 2; o resultado é que Escravo 1 replica ambos os bancos de dados que estão efetivamente hospedados em dois mestres diferentes.

Observe que esta configuração só permite enviar atualizações para DB1 através do Mestre 1 e atualizações para DB2 para Mestre 2 . Você não pode enviar atualizações para qualquer tabela para mestres arbitrários.

Talvez seja possível combinar a solução descrita com o hack para uma verdadeira replicação master-master (permitindo atualizações para ambos os masters) que usa algum tipo de autoincrement-mangling e é descrita aqui ou aqui .