Eu fiz um programa agendado que consulta "SHOW SLAVE STATUS" e eu me notifico em caso de qualquer erro.
Com grandes esforços, finalmente consegui configurar a replicação do Mysql (ambas no Windows) de um host para outro, como uma replicação simples entre mestre e escravo. Agora, o objetivo desta replicação é apenas ter um backup atualizado, e podemos alternar para o servidor escravo no momento da falha.
Se houver alguma solução automatizada, então ótimo, caso contrário, se eu tiver que escrever alguma ferramenta por mim mesmo, ainda estou aberto à ideia.
Nagios tem vários monitores de replicação do MySQL. Estes devem resolver o problema.
Estou muito feliz com as ferramentas do maatkit.
Para monitorar o atraso do escravo, eu uso mk-heartbeat
. Sua saída é processada por um simples plugin nagios. Então, o material de alerta é tratado pelo nagios via SMS, Mail, ...
Para garantir que os dados sejam os mesmos em todos os nós de replicação, eu uso mk-table-checksum
. Eu tenho um pequeno script que executa mk-table-checksum
todos os dias e checksums 1/7 de todos os meus dados em mestre e escravos e, em seguida, verifica as somas de verificação. Portanto, todas as semanas, todos os dados deveriam ter sido verificados. Atualmente estou trabalhando em um pequeno wrapper arround este script para obter os resultados de volta ao nagios novamente. Para mk-table-checksum
, recomendo analisar os argumentos --arg-table
, --replicate
, --modulo
, --offset
, ...
Eu também tenho outro pequeno script, que diariamente conta o número de linhas em cada tabela e, em seguida, calcula o chunk-size
e armazena na tabela dada em --arg-table
... então as coisas deveriam ser automagia .. .
HTH
Não ciente de nada da prateleira - mas seria muito simples escrever algo que seja acionado em um cron job, digamos a cada 10 minutos e ...
writes to a dedicated table in the master, and checks the time
sends an alert (or triggers automatic failover) if the live database is not available
alternatively
sleeps for X minutes
reads the timestamp on the replicated record
sends an email if they're out of sync by more than a defined threshold
Se você ainda não tem um, você deve pensar em obter uma configuração de monitoramento adequada - veja este thread e integrando sua solução com isso.
HTH
C.
Há também o mysql_slavestatus do nagios plugin disponível aqui link Ele funciona muito bem para monitorar o mysql slave sql_io_running, sql_thread_running e seconds_behind_master