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

原文地址:https://blog.51cto.com/dadloveu/2360463

时间: 2024-08-06 02:20:50

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

解决MySQL主从不同步问题

解决mysql主从不同步 今天发现Mysql的主从数据库没有同步 先上Master库: mysql>show processlist;   查看下进程是否Sleep太多.发现很正常. show master status; 也正常. mysql> show master status; +-------------------+----------+--------------+-------------------------------+ | File              | Pos

Mysql主从库同步错误:1062 Error 'Duplicate entry '1438019'

mysql主从库同步错误:1062 Error 'Duplicate entry '1438019' for key 'PRIMARY'' on query mysql主从库在同步时会发生1062 Last_SQL_Error: Error ‘Duplicate entry ‘的问题: 显然这个问题是因为插入重复主键导致从库不工作了,错误消息如下 mysql> show slave status\G; *************************** 1. row ************

使用Innobackupex快速搭建(修复)MySQL主从架构

MySQL的主从搭建大家有很多种方式,传统的mysqldump方式是很多人的选择之一.但对于较大的数据库则该方式并非理想的选择.使用Xtrabackup可以快速轻松的构建或修复mysql主从架构.本文描述了使用innobackupex快速来搭建或修复主从架构.供大家参考. 1.基于主库做一个完整备份 # mkdir -p /log/bakforslave # innobackupex --user=root -password=*** --socket=/tmp/mysql.sock --def

使用Percona Toolkit解决Mysql主从不同步问题【备忘】

由于各种原因,mysql主从架构经常会出现数据不一致的情况出现,大致归结为如下几类 1:备库写数据 2:执行non-deterministic query 3:回滚掺杂事务表和非事务表的事务 4:binlog或者relay log数据损坏 数据不同步给应用带来的危害是致命的,当出现主从数据不一致的情况,常见的应对方法是先把从库下线,然后找个半夜三更的时间把应用停掉,重新执行同步,如果数据库的体积十分庞大,那工作量可想而知,会让人崩溃.本文介绍使用percona-toolkit工具对mysql主从

如何实现 MySQL 的读写分离?MySQL 主从复制原理的是啥?如何解决 MySQL 主从同步的延时问题?

高并发这个阶段,肯定是需要做读写分离的,啥意思?因为实际上大部分的互联网公司,一些网站,或者是 app,其实都是读多写少.所以针对这个情况,就是写一个主库,但是主库挂多个从库,然后从多个从库来读,那不就可以支撑更高的读并发压力了吗? 如何实现 MySQL 的读写分离? 其实很简单,就是基于主从复制架构,简单来说,就搞一个主库,挂多个从库,然后我们就单单只是写主库,然后主库会自动把数据给同步到从库上去. MySQL 主从复制原理的是啥? 主库将变更写入 binlog 日志,然后从库连接到主库之后,

2种方法解决mysql主从不同步

方法一:忽略错误后,继续同步 该方法适用于主从库数据相差不大,或者要求数据可以不完全统一的情况,数据要求不严格的情况 解决: stop slave; #表示跳过一步错误,后面的数字可变 set global sql_slave_skip_counter =1; start slave; 之后再用mysql> show slave status\G  查看: Slave_IO_Running: Yes Slave_SQL_Running: Yes ok,现在主从同步状态正常了... 方式二:重新做

使用MySQL Proxy解决MySQL主从同步延迟

MySQL的主从同步机制非常方便的解决了高并发读的应用需求,给Web方面开发带来了极大的便利.但这种方式有个比较大的缺陷在于MySQL的同步机制 是依赖Slave主动向Master发请求来获取数据的,而且由于服务器负载.网络拥堵等方面的原因,Master与Slave 之间的数据同步延迟是完全没有保证的.短在1秒内,长则几秒.几十秒甚至更长都有可能. 由于数据延迟问题的存在,当应用程序在Master 上进行数据更新,然后又立刻需要从数据库中读取数据时,这时候如果应用程序从Slave上取数据(这也是

[转载] 使用MySQL Proxy解决MySQL主从同步延迟

原文地址:http://koda.iteye.com/blog/682547 MySQL的主从同步机制非常方便的解决了高并发读的应用需求,给Web方面开发带来了极大的便利.但这种方式有个比较大的缺陷在于MySQL的同步机制是依赖Slave主动向Master发请求来获取数据的,而且由于服务器负载.网络拥堵等方面的原因,Master与Slave 之间的数据同步延迟是完全没有保证的.短在1秒内,长则几秒.几十秒甚至更长都有可能. 由于数据延迟问题的存在,当应用程序在Master 上进行数据更新,然后又

mysql主从数据库不同步的3种解决方法

mysql主从数据库不同步的3种解决方法 今天发现Mysql的主从数据库没有同步 先上Master库: mysql>show processlist; 查看下进程是否Sleep太多.发现很正常. show master status; 也正常. mysql> show master status; +-------------------+----------+--------------+-------------------------------+ | File | Position |