复制不更新所有表

时间:2015-10-09 11:04:23

标签: mysql database replication

  • Master db MySQL db Server 2012
  • Slave db MySQL Win7 XAMPP
  • 数据库大小500MB
  • 表数42

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

我已经对此进行了排序;

在MASTER;

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

在SLAVE;

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;

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

我在我的主成员表中添加了两个新成员,两个表的总增加量为2。然而,似乎还有600缺失?

可能是什么问题?复制似乎正在起作用,但总数却没有。每天都会将新成员添加到成员表中,但不会将其添加到我的从属成员表中。

我的奴隶状态表(来自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

还有其他我可以查看或测试的内容吗?

1 个答案:

答案 0 :(得分:1)

是的,当您停止复制时,某些行已更改或插入。在此之后,您重置SLAVE并设置MASTER_LOG_POS。因此,复制NEVER可以获得旧的更改。

您有2个选项:

<强>首先

停止复制

转储主DB(具有主位置)

在奴隶中恢复它

设置设置位置或检查它们

启动奴隶

<强>第二

停止奴隶

使用percona Toolkit将masterDB同步到Slave DB - pt-table-sync

启动奴隶