O valor Seconds_behind_master continua aumentando no escravo de replicação do MySQL

1

Temos uma replicação MySQL 5.0.77 Master-Slave. A replicação não estava funcionando corretamente nas últimas semanas e estava fornecendo Duplicate entry error 1062 . A opção Set Global Skip-counter não ajudou, então eu tive que pular o error no.1062 adicionando-o ao arquivo /etc/my.cnf e então a tabela relatada não existe erro em um banco de dados específico.

Eu peguei um mysqldump desse banco de dados e restaurei no Slave no último final de semana. Em seguida, os Slave IO_Thread e Slave_SQL começaram a funcionar bem e parecia que a replicação estava de volta aos trilhos. O valor Seconds_behind_master foi muito alto e depois começou a reduzir nos últimos 4 dias.

Quando eu verifiquei o status de replicação de escravo hoje, descobri que o valor seconds_behind_master continua aumentando desde a manhã. Parei o slave IO_Thread uma vez e depois o seconds_behind_master tornou-se Nulo. Então, depois que iniciei o IO_thread , o valor se tornou o mesmo e continuou aumentando.

Eu vejo um processo sendo executado da manhã system user gss-app Connect 9535736 copy to tmp table ALTER TABLE queue_clicks ADD INDEX( puid )

Por favor, ajude-me a corrigir esse problema. Obrigado.

#mysql> show slave status\G;
'*************************** 1. row ***************************
             Slave_IO_State: Waiting for master to send event
                Master_Host: 203.x.x.x
                Master_User: replication
                Master_Port: 3306
              Connect_Retry: 60
            Master_Log_File: mysql-bin.000990
        Read_Master_Log_Pos: 185674180
             Relay_Log_File: mysqld-relay-bin.000224
              Relay_Log_Pos: 9286354
      Relay_Master_Log_File: mysql-bin.000774
           Slave_IO_Running: Yes
          Slave_SQL_Running: Yes
            Replicate_Do_DB:
        Replicate_Ignore_DB:
         Replicate_Do_Table:
     Replicate_Ignore_Table:
    Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
                 Last_Errno: 0
                 Last_Error:
               Skip_Counter: 0
        Exec_Master_Log_Pos: 472142385
            Relay_Log_Space: 112995681998
            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: 9533355
1 row in set (0.00 sec)'
    
por Manny0606 12.03.2015 / 04:30

1 resposta

3

Não me preocupo com isso se o IO e o SQL estiverem sendo executados, assim como o Relay_Master_Log_File está acompanhando o Master_Log_File . Eu acredito que o atraso está no fato de que seu arquivo de log de retransmissão total é enorme, aprox. 105G - Relay_Log_Space: 112995681998 e considerando que o Escravo está na posição 000774 e o mestre está na posição 000990, há um total de 214 registros binários de aproximadamente 468M cada (105G / 214) esperando para ser repetido no escravo.

Meu conselho é ficar de olho no Relay_Master_Log_File e ter certeza de que está subindo e alcançando o Master_Log_File . Também vejo que o host mestre está em um endereço IP público. Essa replicação ocorre em uma rede pública ou em uma WAN lenta? Isso poderia estar introduzindo um atraso, que quanto mais rápido o link, melhor.

    
por 12.03.2015 / 06:19