replicação do mysql - o escravo parece atualizado, mas os dados não são sincronizados

1

Eu tenho uma configuração mestre-escravo com 2 servidores em uma rede. Devido a um erro, o encadeamento de I / S escravo parou, embora eu pudesse iniciar e rodar, o escravo está muito atrás do mestre. Além disso, SHOW SLAVE STATUS mostra Seconds_Behind_Master: 0 . Dê uma olhada:

               Slave_IO_State: Waiting for master to send event
                  Master_Host: <master ip>
                  Master_User: replicator
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000722
          Read_Master_Log_Pos: 101043816
               Relay_Log_File: localhost-relay-bin.000008
                Relay_Log_Pos: 101043961
        Relay_Master_Log_File: mysql-bin.000722
             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: 101043816
              Relay_Log_Space: 101044163
              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: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error:
               Last_SQL_Errno: 0
               Last_SQL_Error:

O escravo estava em sincronia até recentemente, então não tirei uma foto do mestre para o escravo. Eu deveria fazer isso?
Qualquer ajuda é muito apreciada.
Agradecemos antecipadamente.

    
por shyam 19.10.2011 / 10:53

1 resposta

1

O que é incomum no IO Thread é que às vezes, se houver alguma intermitência de camada de rede pesada, o thread de IO simplesmente parará de ignorar o fato de não estar ciente desse nível .

Com relação aos dados em si, você poderia simplesmente tirar o instantâneo, redefinir o arquivo de log e posicionar via CHANGE MASTER TO , e acabar com isso. No entanto, se o conjunto de dados for muito grande e demorar muito para ser criado, você deverá procurar usar as ferramentas de sincronização de dados da Percona.

mk-table-checksum e

Eu tenho usado essas ferramentas por cerca de 2 anos e elas ajudam você a encontrar diferenças nas tabelas entre mestre e escravo, mesmo se a tabela no mestre for InnoDB e a mesma tabela no escravo for MyISAM (contanto que as tabelas tenham o mesma estrutura de tabela).

A replicação deve estar ativada durante a execução dessas ferramentas.

BTW Percona tem um novo conjunto de ferramentas chamado de Percona Toolkit . Eles se afastaram das ferramentas do MAATKIT para criar um melhor. As ferramentas são provavelmente chamadas pt-table-checksum e pt-table-sync.

    
por 19.10.2011 / 13:59