Diferença entre replicação Multi-Master e Multi source do MySQL
Replicação do MySQL pode ser feita de várias maneiras, ou no técniquês, pode ser feita utilizando várias topologias, a mais conhecida é a topologia Master/Slave.
Na topologia Master/Slave há dois MySQL em execução (no mínimo), o primeiro é o Master, que serve principalmente para escrever e ler dados, enquanto que o Slave replica as informações salvas no Master, você nunca cria dados novos no Slave, mas pode ler dele.
Existe outras topologias de replicação menos menos conhecidas como a topologia Multi-Master e Multi-Source replication que parecem iguais, mas é diferente, confia no pai. 😄
Quer saber a diferença destes dois? 😜 😂 😍
Continue lendo…
Multi Master replication
Multi Master é similar a topologia Master/Slave, com a diferença que ambos os nós são master e replica ao mesmo tempo. Separece com uma replicação circular entre os nós, por este motivo é necessário realizar configuração para evitar replicação infinita.
replicate-same-server-id = 0
Tambem é necessário configurar ambos servidores para logar as transações da thread de replicação (replication thread)
log-slave-updates
Pode ser utilizado ainda uma variação da topologia Multi Master, a primeira é configuração chamada “active/passive”, neste caso um nó é de escrita e o outro fica em modo “hot standby”. A segunda configuração é chamada “active/active”, onde ambos os nós são de escrita.
Cuidados são necessários com “active/active”, quando ambos estão escrevendo ao mesmo tempo pode haver conflitos por estar escrevendo no mesmo conjunto de dados. Geralmente a solução fica na camada de aplicação.🙃
Também há limitações na capacidade de escrita, tornando a escrita um gargalo por degradar a performance.
Multi Source replication
O suporte a Multi Source replication veio na versão 5.7 do MySQL e 10.0 do MariaDB. Basicamente este recurso é utilizado para replicar dados de vários Masters, que não conversam entre si para um slave. Para habilitar esta topologia, apesar de algumas literaturas dizerem que não se deve escrever ao mesmo tempo no mesmo Schema em Masters diferentes, pois isto calsaria conflitos, na palestra que deixo abaixo, o palestrante comenta que é possível deixar o MySQL não conflita estes dados.
Não é aconcelhavel utilizar com conjunto outros mecanismos de replicação, aqueles de ferramentas externas, além de poder degradar a performance, podemos encontrar ainda mais conflito de dados.
Enquanto estudava sobre o assunto, encontrei uma palestra antiga, mas muito interessante e rica, veja você mesmo: