Relatando Problemas de Replicação
Quando você tiver determinado que não há erro de usuário envolvido, e a replicação ainda não funciona perfeitamente ou está instável, é hora de começar a fazer num relatório de erros. Nós precisamos do máximo de informações que você puder fornecer para conseguirmos rastrear o bug. Por favor gaste algum tempo e esforço preparando um bom relato de erro.
Se você tiver uma forma repetitível de demonstrar o problema, por favor inclua-o em nosso banco de dados de bugs https://jira.mariadb.org. Se você tem um problema de fantasma (um problema que não pode ser duplicado a sua vontade), use o seguinte procedimento:
- Verifique se nenhum erro de usuário está envolvido. Por exemplo, se você atualiza o slave fora da thread slave, os dados podem ficar fora de sincronia e podem ocorrer violações de chave única nas atualizações. Neste caso a thread slave irá terminar e esperar que você limpe as tabelas manualmente para entrar em sincronia. Este não é um problema de replicação; é um problema de interferência externa que faz com que a replicação falhe.
- Execute o slave com as opções
log-slave-updates
elog-bin
. Elas farão com que o registre todas as atualizações que ele receber no seu próprio log binário. - Salve todas as evidências antes de restaurar o estado da replicação. Se não tivermos nenhuma informação ou apenas algum esboço, será um pouco mais difícil para rastrearmos o problema. As evidências que você deve coletar são:
- Todos os logs binários no master
- Todos os logs binários no slave
- A saída de
SHOW MASTER STATUS
no master na hora que você descobriu o problema. - A saída de
SHOW SLAVE STATUS
no master na hora que você descobriu o problema. - Logs de erro no master e no slave
- Utilize
mysqlbinlog
para examinar os logs binários. A informação a seguir pode ser útil para encontrar a consulta problemática, por exemplo:mysqlbinlog -j pos_from_slave_status /caminho/para/log_do_slave | head
Uma vez que você coletou as evidências do problema fantasma, tente isolá-lo em um caso de testes separados inicialmente. Então relate o problema para https://jira.mariadb.org/ com a maior quantidade possíveis de informações.
This is a translation of the MariaDB Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.