常见的主从报错集锦
MySQL主从同步报错故障处理集锦
在发生故障切换后,经常遇到的问题就是同步报错,下面列举了几种比较常见的情况以及处理方法、
1.1032记录删除失败
解决方法
Master要删除一条记录,而slave上找不到报错,这种情况主都已经删除了,那么从都可以直接跳过
stop slave ;SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1; start slave;
2.1032更新丢失
解决方法
在Master上,用Binlog日志分析下出错的Binlog日志在干什么。
由于线上的数据都是row格式,用mysqlbinlog解析出来后用binlog2sql工具解析出具体的sql
在Slave上,查找下更新后的那条记录,应该是不存在的。
然后再到Master上查看
把丢失的数据在Slave上填补,然后跳过报错即可。
3.1062主键重复
解决方法
在slave上用desc hcy.t1;看下的表结构:
查看从库ID=2的数据是否跟主库ID=2的数据是否一致。
如果一致,则跳过
stop slave ;SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1; start slave;
如果不一致,则在从库上删除重复的主键
4.1236错误,binlog缺失
解决方法
首先停止从库同步
stop slave ;
查看主库日志文件和位置
回从库,使日志文件和位置对应主库
change master to master···
最后,启动从库
5.1236错误主库重启
解决方法
登录到Master主机,执行命令查看对应的报错日志跟最后的位置
在Slave上去执行
6.1593中继日志损坏
解决方法
找到同步的binlog和POS点,然后重新做同步,这样就可以有新的中继日志生成了。
版权声明: 本文为 InfoQ 作者【一个有志气的DB】的原创文章。
原文链接:【http://xie.infoq.cn/article/af40aa6ca4d86263fa063025f】。文章转载请联系作者。
评论