我已成功设置复制,但上周已停止,我的奴隶显示错误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
来测试复制 - 我编辑了一个行值(从85
到86
- 这在我的奴隶中成功复制了)。但是我注意到在我的主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
还有其他我可以查看或测试的内容吗?
答案 0 :(得分:1)
是的,当您停止复制时,某些行已更改或插入。在此之后,您重置SLAVE并设置MASTER_LOG_POS。因此,复制NEVER可以获得旧的更改。
您有2个选项:
<强>首先强>
停止复制
转储主DB(具有主位置)
在奴隶中恢复它
设置设置位置或检查它们
启动奴隶
<强>第二强>
停止奴隶
使用percona Toolkit将masterDB同步到Slave DB - pt-table-sync
启动奴隶