当前位置:Gxlcms > 数据库问题 > 一种粗暴快速的解决mysql主从不同步错误的思路

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

时间:2021-07-01 10:21:17 帮助过:15人阅读

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,如果 一致说明同步没问题。

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

标签:思路   mys   故障   position   业务   影响   通过   情况   脏数据   

人气教程排行