数据库
首页 > 数据库> > 一种粗暴快速的解决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,如果
     一致说明同步没问题。

标签:主库,slave,错误,粗暴,master,mysql,主从
来源: https://blog.51cto.com/dadloveu/2360463