mysql主从节点不一致_一种粗暴快速的解决mysql主从不同步错误的思路

一种粗暴快速的解决mysql主从不同步错误的思路

mysql主从经常会出现主从数据不同步的问题,脏数据会造成主从同步中断,

出现大量ERROR,如1032,1062等错误。常规方法是逐条删除脏数据或者

重做库,由于数据量大操作麻烦,而且主库在线上运行不能有锁表操作,

各种不便特别费时间。笔者在生产环境遭遇了一次,情急之下用粗暴的方法

不到10分种解决问题。下面假设一种情况,主库正常,从库数据不一致,

解决思路步骤如下:

1 ,对故障定性,通过查看最近日志来找出蛛丝马迹。一般都用mysqlbinlog

/var/lib/myql/mysqld-bin.00000222 | tail | more ,或者登陆数据库

show binlog events in mysql-bin.00000222 (这个方法没试过哦)按照这种

方法提取有效的时间节点,这个节点保证数据是一致的,怎么保证

就看你的经验,一般自己维护的数据库心里有数。

2,按照这个时间节点 找到binlog日志的位置,并根据日志找到position,这里

假设为10086.

3, 故障如果在从库上stop slave,然后restet slave all,change master to

master_host = 'master ip 'master_user = 'rep', master_port=

3306, master_password='1234p6', master_log_file = 'mysql-bin.00000222'

master_log_pos=10086; 然后start slave。这个时候你会发现主从同步

报错,常见的错误代码1032,1062.这个时候你修改从库my.cnf,

粗暴的忽略这些错误。slave-skip-errors=1062,1053,1146 #跳过指定

error no类型的错误#slave-skip-errors=all #跳过所有错误,这里不

推荐忽略所有错误.

有个比较好的方法把所有错误重现一遍,你心里会有底是什么原因导致的

错误,知道了错误的原因就了解了数据库是为什么报错,这样才有利于根

本解决问题。忽略所有的错误,重启数据库实例。注意主库不要做操作,

因为线上业务在跑呢, 不要影响线上业务。主库好好的,运维就有时间

慢慢解决问题。

重启后重新stop,reset,change master,然后start slave,如果不报错,恭喜你

问题解决。确认的方法很简单,查看最近很可能出错的数据count,如果

一致说明同步没问题。

©著作权归作者所有:来自51CTO博客作者pointsand的原创作品,如需转载,请注明出处,否则将追究法律责任

好知识,才能预见未来

赞赏

0人进行了赞赏支持

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值