在MySQL复制中,如果slave节点上遇到错误,比如数据不存在或者主键冲突等错误时,想要忽略这些错误,可以采用以下几种方法:

1、未启用GTID模式时

只需通过设定 SQL_SLAVE_SKIP_COUNTER 的值,即可忽略一些复制事件。例如:

#需要先关闭SLAVE服务

root@imysql.com [test]> STOP SLAVE;

#忽略N个事件(event),通常一个SQL是一个事件

root@imysql.com [test]> SET SQL_SLAVE_SKIP_COUNTER=N;

#再次启动SLAVE服务

root@imysql.com [test]> START SLAVE;

2、启用GTID模式时

启用GTID,想要忽略某些错误事件就稍微麻烦一点点了。

首先,我们需要先查看当前SLAVE复制的进度:

mysql> SHOW SLAVE STATUS\G

从中看到,当前SLAVE复制的GTID进展是:

Slave_IO_Running: Yes

Slave_SQL_Running: No

Last_Errno: 1062

Last_Error: …Duplicate…key ‘PRIMARY’, Error_code: 1062;…

Master_UUID: f2b6c829-9c87-11e4-84e8-deadeb54b599

Retrieved_Gtid_Set: 3a16ef7a-75f5-11e4-8960-deadeb54b599:1-283,f2b6c829-9c87-11e4-84e8-deadeb54b599:1-33

Executed_Gtid_Set: 3a16ef7a-75f5-11e4-8960-deadeb54b599:1-283,f2b6c829-9c87-11e4-84e8-deadeb54b599:1-31

Auto_Position: 1

从上面的信息可以看到,当前从MASTER取到了1-33的事务列表,并且已执行(看Executed_Gtid_Set)到了31这个事务GTID位置,在这下一个位置(32)上发生错误。

这时候,我们需要手工调整SLAVE已清除的GTID列表 GTID_PURGED,人为通知SLAVE哪些事务已经被清除了,后续可以忽略:

root@imysql.com [test]> STOP SLAVE;

root@imysql.com [test]> RESET MASTER;

root@imysql.com [test]> SET @@GLOBAL.GTID_PURGED = “3a16ef7a-75f5-11e4-8960-deadeb54b599:1-283,f2b6c829-9c87-11e4-84e8-deadeb54b599:1-32”;

root@imysql.com [test]> START SLAVE;

上面这些命令的用意是,忽略 f2b6c829-9c87-11e4-84e8-deadeb54b599:32 这个GTID事务,下一次事务接着从 33 这个GTID开始,即可跳过上述错误。

3、无论是否启用GTID,使用pt-slave-restart工具

首先不得不说,percona toolkit工具集对DBA而言实在太方便了。pt-slave-restart工具的作用是监视某些特定的复制错误,然后忽略,并且再次启动SLAVE进程(Watch and restart MySQL replication after errors)。

简单用法示例:

#忽略所有1062错误,并再次启动SLAVE进程

[yejr@imysql.com ]# pt-slave-resetart -S./mysql.sock —error-numbers=1062

#检查到错误信息只要包含 test.yejr,就一概忽略,并再次启动 SLAVE 进程

[yejr@imysql.com ]# pt-slave-resetart -S./mysql.sock —error-text=”test.yejr”

综上,我们虽然可以利用工具来快速忽略复制错误,但还是要掌握如何人为忽略复制错误的方法,在没有工具的时候也能了然于胸。

mysql多线程复制binlog_MySQL 不同复制模式下,如何忽略binlog事件相关推荐

  1. weex android 滑动事件,【报Bug】weex编译模式下slider组件 @scroll 事件, 滑块左右滑动, @scroll 回调的值始终是负数, 判断不了左右动作...

    详细问题描述 weex编译模式下slider组件 @change事件, 滑块左右滑动, @change回调的值始终是负数, 判断不了左右动作 weex官方文档 (DCloud产品不会有明显的bug,所 ...

  2. mysql多线程复制binlog_MySQL并发复制系列一:binlog组提交 (转载)

    http://blog.csdn.net/woqutechteam/article/details/51178803 MySQL  Binary log在MySQL 5.1版本后推出主要用于主备复制的 ...

  3. mysql lock trx id_MySQL中RR模式下死锁一例

    原标题:MySQL中RR模式下死锁一例 作者:高鹏(八怪),<深入理解MySQL主从原理32讲>系列的作者 原文出处:https://www.jianshu.com/p/3e57a428d ...

  4. Linux 多线程 ”一写多读” 模式下的无锁设计

    缘起 双buffer "无锁" 设计 指针的切换 ptr 竞争条件的解决 指针访问丢失 延伸 结语 缘起 在linux多线程环境下对同一变量进行读写时,经常会遇到读写的原子性问题, ...

  5. mysql len hex asc_MySQL中RR模式下死锁一例

    原标题:MySQL中RR模式下死锁一例 作者:高鹏(八怪),<深入理解MySQL主从原理32讲>系列的作者 原文出处:https://www.jianshu.com/p/3e57a428d ...

  6. mysql 必须安装php_非root模式下安装mysql php小记

    假设你的home目录为/home/work mysql-server 安装 1. 下载mysql.tar.gz wget http://dev.mysql.com/get/Downloads/MySQ ...

  7. 设置MySQL复制时,replicate-ignore-db模式下如何正常工作

    在复制中,如果启用参数 replicate-ignore-db / replicate-do-db 后想要让复制正常运行,只需在连接数据库后不执行 "use db" 语句即可,如果 ...

  8. 5.1 vim介绍 5.2-5.3 vim颜色显示和移动光标、vim一般模式下移动光标 5.4 vim 一般模式下复制剪切粘贴...

    2019独角兽企业重金招聘Python工程师标准>>> 5.1 vim介绍 vim 是 vi 的升级版 vim 是带有颜色显示的 mini安装的系统,一般都不带有vim yum in ...

  9. 理解严格模式下JavaScript的this指向的变化

    全局代码中的this 全局中的代码不管是否处于严格模式下,它的this都执行Window console.log(this) // Window 复制代码 箭头函数的this 箭头函数的this由上下 ...

  10. xp系统mysql安装教程视频教程_Windows XP操作系统下的MYSQL安装过程_PHP教程

    一.下载安装文件 到mysql.com/" target=_blank>MySQL官方网站找到ZIP文件 提示:有些是安装文件,安装时会有提示,这里我们不做讲解 二.解压文件,选择位置 ...

最新文章

  1. Android编程获取网络连接状态及调用网络配置界面
  2. Spring Cloud Alibaba迁移指南2:一行代码从Hystrix迁移到Sentinel
  3. html复选框读取数据库,checkbox 读取数据库
  4. p20适配鸿蒙系统,适配鸿蒙OS,必须要升级到EMUI 11?最新机型升级名单公布
  5. KVM虚拟化的简单概论
  6. echart vue 图表大小_vue之将echart封装为组件
  7. 12306:春节抢票高峰已过,技术团队为自己打 90 分以上
  8. ExtJs UI框架学习五
  9. 20172324《程序设计与数据结构》第一周学习总结
  10. ceb怎么转换成word_win8.1系统将ceb文件格式转换成word的方法
  11. 信息收集--空间搜索引擎/网盘
  12. #include“stdafx.h”详解
  13. 堆和栈内存扩展方向问题
  14. tomcat映射本地磁盘路径
  15. 第二十六篇 request模块使用
  16. 计算机主机上有几个按钮,电脑键盘各个按键有哪些作用 电脑键盘各个按键作用介绍...
  17. 一文详解 Interpolator动画插值器
  18. dingdang robot:一个开源的中文智能音箱项目
  19. VSCode 插件大全
  20. 基于qt与mupdf库的pdf阅读器开发

热门文章

  1. WindowsXP、Windows2003本地密码清除方法
  2. 面试 多线程 MFC CSDN
  3. ORA-01501: CREATE DATABASE failed
  4. 娱乐篇第十期:互联网的事情you意思(十)
  5. 梦断代码----阅读笔记3
  6. 很不错的js幻灯片代码分享
  7. android service 的各种用法(IPC、AIDL)
  8. 数据结构利器之私房STL(中)
  9. practice:win2008 core基本管理(一)
  10. 禁止文本框输入空格和回车