como monitorar escravo de replicação mysql?

1

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.

  1. Como monitoro o status do escravo, posso me enviar um email se não puder entrar em contato com o host ou se ocorrer mais um número de falhas.
  2. Como ter certeza de que a replicação está em sincronia e não estamos perdendo dados.

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.

    
por Akash Kava 24.06.2010 / 17:28

5 respostas

0

Eu fiz um programa agendado que consulta "SHOW SLAVE STATUS" e eu me notifico em caso de qualquer erro.

    
por 26.07.2010 / 14:05
1

Nagios tem vários monitores de replicação do MySQL. Estes devem resolver o problema.

    
por 24.06.2010 / 17:43
1

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

    
por 24.06.2010 / 17:51
0

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.

    
por 24.06.2010 / 17:38
0

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

    
por 10.05.2017 / 13:21