mysql主从复制跳过复制错误【转】
跳过复制错误
mysql因为binlog机制问题,有些时候会出现从库重放sql执行失败的情况,特别是旧的STATEMENT模式最容易出现这种情况(因为函数和存储过程等原因),这也是为什么强调使用mixed和row模式的原因。另外就是一些外部XA事务,因为XA事务日志不在mysql中,有时候会出现回滚失败的情况,导致主从报错。
出现这些状况那该怎么办好呢?如果是重做,虽然是可以,但是如果库非常大,那耗时就不是一两小时那么容易,如果是做了生产读写分离的,就不好交代了。这个时候我们可以选择手动修改数据,然后跳过这个复制错误,然后这个主从复制就会重新运行了。
继续讲述两种模式,先说的是GTID模式,他可以有两种方式跳过。第一种是用得比较多的,注入空事务跳过:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
#找到冲突的GTID号.mysql>show slave status\G 。 。 。Executed_Gtid_Set: 09cb91bf-2669-11e7-8b70-00163e0835ff:1-83648451 。 。 。#停止复制mysql>stop slave;#然后执行设置一个事务GTID来跳过,就是要跳过这个事务的意思mysql>SET gtid_next = '09cb91bf-2669-11e7-8b70-00163e0835ff:1-83648451';#注入空事务mysql>BEGIN;COMMIT;#把GTID设置回自动模式mysql>SET gtid_next = 'AUTOMATIC';#重新开启复制mysql>START SLAVE;#这就可以跳过一个事务了,原理在于通过执行一个空事务代替master传递过来的冲突事务.#当然跳过了,并不代表这个数据就不修改了,还是要你手动去修改一下,这样就一切回归正常了mysql>update tables set 。。。。。。。 |
第二种,直接跳过这个GTID,改做后面的
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
#找到冲突的GTID号.mysql>show slave status\G 。 。 。Executed_Gtid_Set: 09cb91bf-2669-11e7-8b70-00163e0835ff:1-83648451 。 。 。#停止复制mysql>stop slave;#直接设置上面的GTID值+1mysql>SET @@GLOBAL.GTID_PURGED='09cb91bf-2669-11e7-8b70-00163e0835ff:1-83648452';#重新开启复制mysql>START SLAVE;#当然跳过了,并不代表这个数据就不修改了,还是要你手动去修改一下,这样就一切回归正常了mysql>update tables set 。。。。。。。 |
然后就说传统模式了,相对来说,更简单一些
|
1
2
3
4
5
6
7
8
|
#停止复制mysql>slave stop;#设定跳过一个事务mysql>SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1#重新开启复制mysql>slave start#这样就正常了,但是,当然还是要把数据修改上去mysql>update tables set 。。。。。。。 |
其实还有一个禁忌设定方式,可以跳过一些复制报错,因为不建议,只是拿出来说说可以这么干
|
1
2
3
4
5
6
7
|
#修改配置文件vim /etc/my.cnf[mysqld]#跳过指定error no类型的错误#slave-skip-errors=1062,1053,1146#跳过所有错误#slave-skip-errors=all |
转自
mysql主从复制跳过复制错误-ping_note-51CTO博客
http://blog.51cto.com/arthur376/1969935
mysql主从复制跳过复制错误【转】的更多相关文章
- 跳过复制错误——sql_slave_skip_counter
昨天不少同学讨论<小心,前方有雷 —— sql_slave_skip_counter>,有说作者在玩文字游戏,扯了那么多sql_slave_skip_counter=1不还是跳过一个事务嘛 ...
- MySQL-Utilities:mysqldbcompare及跳过复制错误
mysqldbcompare也是MySQL-Utilities工具集的一个脚本.mysqldbcompare从两个数据库比较对象和数据的不同.数据库中的对象包括:表.视图.触发器.存储过程.函数和事件 ...
- mysql主从复制跳过错误
mysql主从复制,经常会遇到错误而导致slave端复制中断,这个时候一般就需要人工干预,跳过错误才能继续 跳过错误有两种方式: 1.跳过指定数量的事务: mysql>slave stop; m ...
- 跳过复制错误——slave_skip_errors、slave_exec_mode
这一篇写写复制错误处理相关的另两个参数slave_skip_errors.slave_exec_mode,基本环境参考<复制错误处理——sql_slave_skip_counter> 一. ...
- MySQL主从复制(异步复制与半同步复制)
1.MySQl主从复制 原理:将主服务器的binlog日志复制到从服务器上执行一遍,达到主从数据的一致状态. 过程:从库开启一个I/O线程,向主库请求Binlog日志.主节点开启一个binlog du ...
- mysql主从复制 主主复制 读写分离
首先是mysql的主从复制很简单 主主复制也就是互相主从最麻烦的最难的就是日志恢复,增量恢复什么的比较复杂 首先如果你不会安装mysql版本最好一样,或者往上的版本,因为mysql是向下兼容 请注意不 ...
- MySQL主从复制半同步复制原理及搭建
在MySQL5.5之前的版本中,MySQL的复制是异步复制,主库和从库的数据之间存在一定的延迟,比如网络故障等各种原因,这样子容易存在隐患就是:当在主库写入一个事务成功后并提交了,但是由于从库延迟没有 ...
- MySQL主从复制--单库复制搭建
背景说明 负责公司MySQL数仓的搭建和维护,因为前端业务涉及到一次业务表的分库,导致整个平台新增加一台MySQL服务器,需要将该库数据通过主从复制同步至原有的数仓实例. 数据流向说明如下图: 业务环 ...
- MySQL主从复制之并行复制说明
传统单线程复制说明 众所周知,MySQL在5.6版本之前,主从复制的从节点上有两个线程,分别是I/O线程和SQL线程. I/O线程负责接收二进制日志的Event写入Relay Log. SQL线程读取 ...
随机推荐
- (Alpha)Let's-Chronos分数分配规则
Requirement: 每个团队开一个讨论会,协商讨论团队贡献分的分配方式.每个团队的团队贡献分为50分/人.每个人分数不能相同,请详细说明分数的分配规则. 为了完成此次的团队贡献分的分配任务,我们 ...
- svn 创建主干 分支版本
转载 https://www.cnblogs.com/dongzhiquan/p/5222018.html SVN分支与合并 一. 分支与合并的概念 二. SVN分支的意义 三. 如何创建分支与合并 ...
- 第九周PSP&进度条
PSP 一.表格: D日期 C类型 C内容 S开始时间 E结束时间 I时间间隔 T净时间(mins) 预计花费时间(mins) 11月11号 讨论 讨论beta发布 09:00 09:54 1 ...
- SparkException: Master removed our application
come from https://stackoverflow.com/questions/32245498/sparkexception-master-removed-our-application ...
- php学习目录
前面的话 前端工程师为什么要学习php?是因为招聘要求吗?这只是一方面 一开始,我对学习php是抵触的,毕竟javascript已经够自己喝一壶的了,再去学习php,可能让自己喝醉.但是,在学习jav ...
- 51nod 1480 打广告(二分+线段树)
题意 给出n个区间和m个区间,从这n个区间里选一个区间a,这m个区间选一个区间b,使得a&b的长度*c最大. 思路 如果这n个区间里有一个区间包含另一个区间,那另外一个区间就可以忽略掉,进行\ ...
- 【codeforces666E】Forensic Examination 广义后缀自动机+树上倍增+线段树合并
题目描述 给出 $S$ 串和 $m$ 个 $T_i$ 串,$q$ 次询问,每次询问给出 $l$ .$r$ .$x$ .$y$ ,求 $S_{x...y}$ 在 $T_l,T_{l+1},...,T_r ...
- 【题解】 bzoj1190: [HNOI2007]梦幻岛宝珠 (动态规划)
bzoj1190,懒得复制,戳我戳我 Solution: 这道题其实是一个背包(分组背包),但是由于数字比较大,就要重新构造dp式子.啃了三天才懂. \(dp[i][j]\)表示背包容积为\(j*2^ ...
- 循环取月的三位英语名 Jan Feb
CultureInfo ci = new CultureInfo("en-US"); DateTime now = DateTime.Now; for (int i = 0; i ...
- 利用scrapy_redis实现分布式爬虫
介绍 Scrapy框架不支持分布式,所以需要将一些关键代码进行修改使之支持分布式.scrapy-redis相当于一个插件,用来替换scrapy中的一些模块,使得scrapy支持分布式.github地址 ...