Temos um cluster MySQL (v5.1.61) com dois mestres (e dois escravos). Temos uma tabela logs
com uma coluna de chave primária logID
. Esta tabela de log cresce bastante e gostaríamos de excluir os dados dela. Então eu escrevi um script que faz isso. — É seguro executar este script em ambos os mestres? Ele exclui apenas os dados. O que estou querendo saber é o que o módulo de replicação do MySQL fará, se a linha que está prestes a excluir já tiver sido excluída? A replicação será interrompida ou é seguro excluir linhas em ambos os mestres? Importa se usamos replicação baseada em linha ou baseada em instrução?
Exemplo: O script de exclusão de dados de log exclui a linha 123 no mestre A. Ao mesmo tempo, o script exclui a mesma linha no mestre B. Então o mestre B lê seu log de retransmissão e vê: "Devo excluir a linha 123, porque foi apagado no Mestre A e eu sou seu escravo. Vamos deletá-lo... ... ...mas já foi!" — agora o que o Mestre B fará? Ele interromperá a replicação, como se houvesse um erro de chave duplicada? Ou vai pensar "Tudo bem, não preciso fazer nada" e está tudo bem.