Duplicando dados entre dois clusters Percona Xtradb usando replicação MySQL

1

Atualmente, temos um cluster Percona Xtradb de 3 nós em execução em um único data center. Queremos adicionar tolerância a falhas em caso de desastres para evitar a dependência de um único data center e sincronizar nossos dados Percona com um segundo data center para que possamos alternar facilmente nossos aplicativos para se conectarem a um novo cluster sincronizado no caso de um evento.

Embora esteja ciente de que posso simplesmente adicionar mais nós mestres em muitos datacenters, não podemos sacrificar o aumento do tempo de gravação de ida e volta de um data center em um local diferente. Em vez disso, eu queria saber se é possível fazer isso com a replicação do MySQL. Meu pensamento é configurá-lo desta maneira:

3 nós do cluster Percona principal - > MySQL réplica DB - > Cluster Percona Secundário de 3 nós

Embora eu tenha percebido que pode haver algum atraso menor na réplica e os dados podem estar fora de sincronia em alguns segundos, essa é uma compensação que estamos dispostos a fazer. Com essa configuração, seria fácil para nós alternar os clusters no flip de um switch.

Eu tenho algumas perguntas:

  1. Isto é uma má ideia? Eu pessoalmente não vejo grandes inconvenientes aqui, mas estou faltando alguma coisa?
  2. É possível que uma réplica escrava do MySQL receba dados (do Principal Percona Cluster) e grave dados (no Percona Cluster Secundário)?
  3. O que acontecerá se o cluster principal de Percona cair e começarmos a usar / gravar no cluster secundário de Percona? Quando o Main Percona Cluster voltar, como podemos sincronizá-lo facilmente com os novos dados do Cluster Percona Secundário? Podemos simplesmente (temporariamente) fazer um cluster de 6 nós e o Percona fará o trabalho?

Eu sei disso muitas perguntas, mas muito obrigado pela sua ajuda!

    
por user209180 19.03.2014 / 17:58

1 resposta

1

Cluster - > MySQL - > Cluster funciona. Embora eu não tenha experimentado isso, sei que o Cluster- > Cluster seria uma opção Soon ™ a partir de alguns meses atrás, portanto, você poderá pular a etapa intermediária. Do ponto de vista do PXC, você se escraviza em uma das máquinas e as outras máquinas se escravizam em você; você não está tanto "recebendo dados e escrevendo dados" quanto recebendo dados e permitindo que os dados sejam recebidos de você , se essa distinção fizer sentido.

Para sincronizar novamente, basta configurar como master-master com auto_increment_increment e auto_increment_offset sintonizados manualmente em cada um dos clusters. Provavelmente simples, mas na pior das hipóteses, isso significará restringir o auto_increment_ {increment, offset} escolhido pelo PXC, o que seria um pequeno patch.

Pontos de bônus: para velocidade máxima de replicação, modifique (com sql_log_bin=0 na sessão !!!) suas tabelas no banco de dados intermediário para usar o mecanismo blackhole.

    
por 19.03.2014 / 18:29