同步故障Last_Errno:1051

这是另外一套主从架构。同事说空间使用82%了,让我看一下。后发现这个从库的同步存在问题。
  1. mysql> show slave status \\G
  2. ***************** 1. row **********************
  3.        Slave_IO_State: Waiting for master to send event
  4.           Master_Host: 10.128.45.8
  5.           Master_User: slave
  6.           Master_Port: 3306
  7.         Connect_Retry: 60
  8.       Master_Log_File: mysql-bin.000036
  9.   Read_Master_Log_Pos: 165692224
  10.        Relay_Log_File: mysqld-relay-bin.000039
  11.         Relay_Log_Pos: 177273627
  12. Relay_Master_Log_File: mysql-bin.000016
  13.      Slave_IO_Running: Yes
  14.     Slave_SQL_Running: No
  15.                   ... ...
  16.            Last_Errno: 1051
  17.            Last_Error: Error 'Unknown table 'storefeedback500.a1'' on query. Default database: 'storefeedback500'. Query: 'DROP TABLE `a1` /* generated by server */'
错误 消息,表a1曾经存在于在主服务器中并已被取消了,但是它没有在从属服务器中存在过,因此对于从属服务器,DROP TABLE失败。
很明显,同步出现问题:
  1. Slave_SQL_Running为No说明从库的SQL线程没有启动
  2. Read_Master_Log_File说明从库的IO线程当前正在读取的主库二进制日志的位置,在36
  3. Relay_Log_File说明从库的SQL线程当前正在读取中继日志的位置,在39
  4. 实际中继日志已经到99,说明已经有60(99-39)个中继日志没有在从库执行
  1. tail -3 mysqld-relay-bin.index
  2. ./mysqld-relay-bin.000097
  3. ./mysqld-relay-bin.000098
  4. ./mysqld-relay-bin.000099
使用mysqlbinlog查看日志(从4月28日下午到现在一直没有同步了,但中继日志都已在从库中生成):
  1. 对应的主库日志为16
  2. # at 177273464
  3. #150428 15:46:36 server id 1 end_log_pos 177273603 CRC32 0x1eccec59 Query    thread_id=510660    exec_time=0    error_code=0
  4. SET TIMESTAMP=1430207196/*!*/;
  5. DROP TABLE `a1` /* generated by server */
  6. /*!*/;
  1. 从库的中继日志39,从库的SQL线程停止在此位置
  2. # at 177273627
  3. #150428 15:46:36 server id 1 end_log_pos 177273603 CRC32 0x1eccec59 Query thread_id=510660 exec_time=0 error_code=0
  4. SET TIMESTAMP=1430207196/*!*/;
  5. DROP TABLE `a1` /* generated by server */
我选择的解决方法
  1. mysql> stop slave;
  2. Query OK, 0 rows affected (0.01 sec)
  3. mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
  4. Query OK, 0 rows affected (0.00 sec)
  5. mysql> start slave;
  6. Query OK, 0 rows affected (0.01 sec)
查看从库及其日志,已经开始正常复制
对mysq复制l还不是特别熟悉,感觉还是sql_slave_skip_counter将改为0更好。
  1. mysql> stop slave;
  2. Query OK, 0 rows affected (0.01 sec)
  3. mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=0;
  4. Query OK, 0 rows affected (0.00 sec)
  5. mysql> start slave;
  6. Query OK, 0 rows affected (0.01 sec)
参考:
http://blog.csdn.net/cheungjustin/article/details/6069117
http://blog.itpub.net/29500582/viewspace-1318552/


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26831783/viewspace-1709708/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26831783/viewspace-1709708/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值