复制不更新所有表

Replication not updating all tables

我已经成功设置了复制,但是它上周停止了,我的从服务器显示错误 Slave_SQL_Running No。我意识到它正在查看一个不正确的日志文件(00004 而它应该是 00006)。

此后我将其排序为;

硕士;

SHOW MASTER STATUS;
Copied the values of MASTER_LOG_FILE and MASTER_LOG_POS.

在奴隶处;

STOP SLAVE;
RESET SLAVE;
CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=98; (<- example values)
START SLAVE;
SHOW SLAVE STATUS \G;

在我的主机上,我通过编辑 table members 测试了复制 - 我编辑了其中一个行值(从 8586 - 这已成功复制在我的奴隶)。但是我注意到在我的主人 members table 上有 70652 个成员,但在我的奴隶上只有 70056 个。

我在我的主成员 table 中添加了两个新成员,两个 table 的总数都增加了 2。不过好像还是少了那600个?

可能是什么问题?复制似乎有效,但总计无效。每天都有新成员添加到成员table,但没有添加到我的从属成员table。

我的奴隶状态table(来自phpmyadmin)的结果是;

Slave_IO_State  Waiting for master to send event
Master_Host xxx.xxx.xxx.xxx
Master_User repl
Master_Port 3306
Connect_Retry   60
Master_Log_File mysql-bin.000006
Read_Master_Log_Pos 787956776
Relay_Log_File  mysql-relay-bin.000004
Relay_Log_Pos   624412
Relay_Master_Log_File   mysql-bin.000006
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 787956776
Relay_Log_Space 788197
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

还有什么我可以检查或测试的吗?

是的,当您停止复制时,一些行被更改或插入。在此之后,您已重置 SLAVE 并设置 MASTER_LOG_POS。所以复制永远无法获得旧的更改。

您有 2 个选项:

第一个:

停止复制

转储Master DB(带master位置)

在从机中恢复

设置位置或检查它们

启动奴隶

停止奴隶

使用 percona 工具包将 masterDB 同步到 Slave DB - pt-table-sync

启动奴隶