温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

MySQL 中怎么忽略binlog事件

发布时间:2021-07-24 16:22:38 来源:亿速云 阅读:145 作者:Leah 栏目:数据库

这期内容当中小编将会给大家带来有关MySQL 中怎么忽略binlog事件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

  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事件了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI