Contanto que você não execute nenhuma instrução INSERT / UPDATE / DELETE diretamente no escravo, seu escravo deve estar bem. Caso contrário, a Replicação do MySQL poderá ser interrompida se você INSERIR uma nova linha no mydb.mytable no Slave e, via Replicação, o Slave posteriormente detectar um INSERT de uma linha no mydb.mytable com a mesma PRIMARY KEY. Isso produz o erro 1062 (chave duplicada).
A única maneira de escrever no Slave sem interromper a replicação do MySQL é:
- O mestre possui bancos de dados db1, db2, db3
- O Slave está replicando os bancos de dados db1, db2, db3 do Master
- Você corre
CREATE DATABASE db4;
no escravo
- Você faz INSERTs / UPDATEs / DELETEs apenas para db4 no escravo
- Você não faz INSERTs / UPDATEs / DELETEs apenas para db1, db2, db3 no escravo
Para detectar um Mestre e um Escravo fora de sincronia sem baixar nenhuma ferramenta, escolha qualquer tabela e execute CHECKSUM TABLE em uma tabela no Mestre e a cópia do Escravo da mesma tabela.
EXEMPLO
Se você tiver uma tabela mydb.mytable
, execute o comando nela:
mysql> CHECKSUM TABLE mydb.mytable;
Se os valores não voltarem os mesmos, algo está fora de sincronia.
Se você quiser examinar um monte de tabelas a granel, poderá baixar o MAATKIT da Percona. Você precisará de duas ferramentas específicas (a Percona também possui o Percona Toolkit que eles mesmos extraíram do MAATKIT, que agora está sendo promovido mais)
ou
pt-table-checksum
executará uma CHECKSUM TABLE em todas as tabelas no mestre e no escravo. Você pode configurá-lo para fazer todos os bancos de dados apenas nos específicos.
pt-table-sync
pode ser executado em um escravo contra qualquer mesa. Usando as opções --print e --sync-to-master, você pode ver quais instruções SQL precisam ser executadas no Slave para que correspondam perfeitamente ao Master. Essa ferramenta não funciona com tabelas que não possuem uma PRIMARY KEY ou UNIQUE KEY.
Eu uso o MAATKIT há anos. Eu ainda faço. Ainda não testei o Percona Toolkit, mas tenho certeza que ele deve ser da mesma qualidade que o MAATKIT.