mysql 复制 - 从属似乎是最新的,但数据未同步

mysql 复制 - 从属似乎是最新的,但数据未同步

我有一个主从设置,网络上有 2 个服务器。由于错误,从服务器 IO 线程停止了,尽管我可以启动并运行它,但从服务器远远落后于主服务器。此外,SHOW SLAVE STATUS显示Seconds_Behind_Master: 0。请看:

               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:

从服务器是否直到最近才同步,所以我还没有从主服务器到从服务器拍摄快照。我应该这样做吗?
任何帮助都非常感谢。
提前致谢。

答案1

IO 线程的不寻常之处在于有时,如果网络层出现严重中断,IO 线程会直接停止读取,而不会意识到该级别

对于数据本身,您只需拍摄快照,重置日志文件并通过更改主控,然后就大功告成了。但是,如果数据集太大,创建时间太长,则应该考虑使用 Percona 的数据同步工具。

mk-表校验和mk-表同步

我已经使用这些工具大约 2 年了,它们可以帮助您查找主服务器和从服务器之间表的差异,即使主服务器上的表是 InnoDB 而从服务器上的相同表是 MyISAM(前提是这些表具有相同的表结构)。

运行这些工具时必须启用复制。

顺便说一下,Percona 有一套新工具,叫做Percona 工具包。他们从自己的 MAATKIT 工具中分叉出来,制作出更好的工具。这些工具可能被称为 pt-table-checksum 和 pt-table-sync。

相关内容