Qual é a melhor maneira de verificar o status de um escravo do MySQL que está replicando de um mestre?

3
Especificamente, eu tenho um conjunto de tabelas InnoDB e as estamos fazendo em tabelas MyISAM para fornecer uma pesquisa de texto completo. O escravo DB rotineiramente fica atrás do Mestre. Estou procurando conselhos sobre diagnósticos ou comandos que podem ser usados para acompanhar o atraso. Ambas as máquinas estão na mesma rede. Muito obrigado.

    
por IanMulvany 31.07.2009 / 17:14

2 respostas

8

SHOW SLAVE STATUS é o seu comando

mysql> SHOW SLAVE STATUS\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: localhost
                  Master_User: root
                  Master_Port: 3306
                Connect_Retry: 3
              Master_Log_File: gbichot-bin.005
          Read_Master_Log_Pos: 79
               Relay_Log_File: gbichot-relay-bin.005
                Relay_Log_Pos: 548
        Relay_Master_Log_File: gbichot-bin.005
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB:
          Replicate_Ignore_DB:
                   Last_Errno: 0
                   Last_Error:
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 79
              Relay_Log_Space: 552
              Until_Condition: None
               Until_Log_File:
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File:
           Master_SSL_CA_Path:
              Master_SSL_Cert:
            Master_SSL_Cipher:
               Master_SSL_Key:
        Seconds_Behind_Master: 8
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error:
               Last_SQL_Errno: 0
               Last_SQL_Error:
  Replicate_Ignore_Server_Ids: 0

As partes relevantes são:

               Slave_IO_State: Waiting for master to send event

"Aguardando mestre ..." é o que você geralmente quer ver

              Master_Log_File: gbichot-bin.005
          Read_Master_Log_Pos: 79
          Exec_Master_Log_Pos: 79

Isso, combinado com "SHOW MASTER STATUS" no servidor mestre, permite comparar o quanto foi transferido e replicado corretamente

             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes

A replicação está em execução?

        Seconds_Behind_Master: 8

Estimativa de atraso

                Last_IO_Errno: 0
                Last_IO_Error:
               Last_SQL_Errno: 0
               Last_SQL_Error:

Se houver um erro, mostre o que está errado. Verifique também seu log de erros e SHOW PROCESSLIST para mais informações

    
por 31.07.2009 / 17:25
2

O plugin do nagios faz isso

-bash-3.2# ~nagios/libexec/check_mysql -h | grep check-slave
 -S, --check-slave
-bash-3.2# 
    
por 31.07.2009 / 18:23