MySQL GTID 主从复制错误修复方法
https://yq.aliyun.com/articles/155827?spm=5176.8067842.tagmain.6.RFPTAL
MySQL 传统的主从复制方式使用 master_log_files 和 master_log_pos 两个参数来确定复制位点。当出现复制错误时,可以设置跳过出错的事务来恢复同步,MySQL 提供了 sql_slave_skip_counter 参数来实现此功能。使用方法如下:
root@(none) >stop slave;
Query OK, 0 rows affected (0.00 sec)
root@(none) >SET GLOBAL SQL_SLAVE_SKIP_COUNTER = N; #跳过N个事务
Query OK, 0 rows affected (0.00 sec)
root@(none) >start slave;
Query OK, 0 rows affected, 1 warning (0.03 sec)
如果使用 GTID 的主从复制方式,上面这种方法并不会生效。如果有同学做过尝试,应该会收到如下报错信息。
ERROR 1858 (HY000): sql_slave_skip_counter can not be set when the server is running with @@GLOBAL.GTID_MODE = ON. Instead, for each transaction that you want to skip, generate an empty transaction with the same GTID as the transaction
在 GTID 模式下使用 sql_slave_skip_counter 参数将会引发错误:
root@(none) >stop slave;
Query OK, 0 rows affected (0.00 sec)
root@(none) >set global sql_slave_skip_counter = 1;
ERROR 1858 (HY000): sql_slave_skip_counter can not be set when the server is running with @@GLOBAL.GTID_MODE = ON. Instead, for each transaction that you want to skip, generate an empty transaction with the same GTID as the transaction
那使用 GTID 复制的数据库出现复制错误时该如何处理呢?其实上面的报错信息已经提示了解决方法:在发生错误的 GTID 事务号上插入一个空的事务,来实现跳过此复制错误的效果。
操作方法:
1 "show slave status\G" 找到发生复制错误的 GTID 事务号(示例只展示复制错误信息,其他信息省略),可以找到发生复制错误的 GTID 为:ab1b2733-2401-11e7-82fc-525400abbf4b:50
root@(none) >show slave status\G
1. row **
Last_Error: Worker 7 failed executing transaction 'ab1b2733-2401-11e7-82fc-525400abbf4b:50' at master log mysql-bin.000012, end_log_pos 156045; Could not execute Delete_rows_v1 event on table test.test2; Can't find record in 'test2', Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND; the event's master log FIRST, end_log_pos 156045
2 向上面找到的 GTID 插入一个空的事务
stop slave; # 关闭 slave 复制
SET GTID_NEXT='$GTID_NO'; # 设置 GTID_NEXT 为复制出错的 GTID_NO
begin; commit; # 向 $GTID_NO 写入空事务
SET GTID_NEXT="AUTOMATIC"; # 重新设置 GTID_NEXT 为自动获取
start slave; # 启动 slave 复制
示例:
root@(none) >stop slave;
Query OK, 0 rows affected (0.00 sec)
root@(none) >SET GTID_NEXT='ab1b2733-2401-11e7-82fc-525400abbf4b:50';
Query OK, 0 rows affected (0.00 sec)
root@(none) >begin;
Query OK, 0 rows affected (0.00 sec)
root@(none) >commit;
Query OK, 0 rows affected (0.00 sec)
root@(none) >SET GTID_NEXT="AUTOMATIC";
Query OK, 0 rows affected (0.00 sec)
root@(none) >start slave;
Query OK, 0 rows affected, 1 warning (0.03 sec)
3 重要:数据订正
MySQL GTID 主从复制错误修复方法的更多相关文章
- VNC错误修复⽅方法
VNC错误修复方法 VNC错误描述 vnc viewer开启后弹窗提示 Could not connect to session bus: Failed to connect to socket /t ...
- MySQL GTID复制错误处理之跳过错误
某Slave报错信息: mysql> show slave status\G; mysql> show slave status\G; ************************** ...
- VNC (vnc viewer)错误修复方法
VNC错误描述 vnc viewer开启后弹窗提示 Could not connect to session bus: Failed to connect to socket /tmp/dbus-XX ...
- sqlserver数据库出现可疑错误修复方法
一.主数据库出现可疑修复方法: 第一种方法: 当数据库发生这种操作故障时,可以按如下操作步骤可处理此要领,打开数据库里的Sql查询编辑器窗口,运行以下的命令: ?修改数据库为紧急模式 ALTER DA ...
- 解决mysql使用GTID主从复制错误问题
做MySQL主从的话肯定会遇到很多同步上的问题,大多数都是由于机器宕机,重启,或者是主键冲突等引起的从服务器停止工作,这里专门收集类似问题并提供整理解决方案,仅供参考. 1.主从网络中断,或主服务器重 ...
- mysql GTID主从复制故障后不停机恢复同步流程
GTID实现主从复制数据同步 GTID是一个基于原始mysql服务器生成的一个已经被成功执行的全局事务ID,它由服务器ID以及事务ID组成,这个全局事务ID不仅仅在原始服务器上唯一,在所有主从关系的m ...
- 安装Mysql提示1045错误解决方法
MySQL安装提示一下错误 The security settings could not be applied to the database because the connection has ...
- mysql gtid 主从复制
基于GTID环境搭建主从复制 1.环境 ----------------------------------------------------------| |mysql版本 | 5.7.14 | ...
- MySQL Errno : 1062 错误修复
网站突然出现如下错误: MySQL Error : Duplicate entry '1' for key 'views' MySQL Errno : 1062 Message : Duplicate ...
随机推荐
- Makefile 中 ifeq ifneq 等用法
(1)ifeq的用法 ifeq ($(变量名), 变量值 ) ........ else ifeq ($(..), ..) ......... else ......... endif (2)最近在学 ...
- Prepare paddle in Docker1
Use Docker 1. Install Docker sudo apt-get install -y docker.io a) pull repository from server in Chi ...
- msp430板子接485接口的气体传感器问题及处理
现象:板子的485有问题(能收但是不能发) 485的方向位没有设置因此485芯片一直处于接收的状态,而发送不了处理方法:在需要发送时,把485方向位置于发送,发送完后再把方向位置回接收.但注意,要在发 ...
- LINUX7安装Oracle11g单实例小结
LINUX7安装Oracle11g遇到问题如下,记录 添加组: groupadd -g 1000 oinstall #报错:提示组被占用 #useradd: group 'oinstall' does ...
- 【linux基础】V4L2介绍
参考 1. https://www.cnblogs.com/hzhida/archive/2012/05/29/2524351.html 2. https://www.cnblogs.com/hzhi ...
- SQLI DUMB SERIES-2
less2 同Less1相同,存在注入点 输入 ?id=1' 说明我们输入的数据被原封不动的带入了,无需要在1后面加单引号 (1)爆字段 ?id=1 order by 4 字段为3. (2)用unio ...
- python开发day02
一 while循环 while 条件 代码块(循环体) #: 判断条件是否为真,如果是真,则执行代码块, 然后再次回头判断条件是否为真,如果为真,则只执行代码块.......知道循环的判断出代码为 ...
- Bow and Arrow Rigging in Blender
https://www.youtube.com/watch?v=jpsd0Aw1qvA 新建骨架,由如下图3部分组成: Bone.000.Top ~ Bone.015.Top (上半部分16节骨骼) ...
- PS学习之如何把小姐姐塞进瓶子里
准备素材 开始制作 用PS新建一个国际通用纸张大小的画布 分辨率可以调为72 改变背景色 插入图片 水平居中对齐 插入木质素材 放大 覆盖之前的素材 调整图层顺序 创建剪切蒙版 对木桩添加曲线 设置立 ...
- 【带权并查集】【HDOJ】
http://acm.hdu.edu.cn/showproblem.php?pid=3047 Zjnu Stadium Time Limit: 2000/1000 MS (Java/Others) ...