MySQL pt-slave-restart工具的使用简介


Posted in MySQL onApril 07, 2021

    在MySQL主从复制环境的搭建中,常常会遇到一种场景,主库和从库都要初始化用户的账号密码,正常的情况下,需要在主库和从库都关闭session级别的binlog,然后再进行用户信息导入。

    但是有时候会忽略关闭session级别binlog这个前置动作,例如在基于GTID的复制模式下,主从库都直接导入了用户的账号密码信息,主库和从库都将账号密码的事务记录到了自己的GTID中,此时我们如果利用GTID的方式搭建复制,会出现报错,因为从库已经有账号了,所以主库上同步到从库的用户信息会出现报错现象,提示用户已经存在,这种情况下,我们需要在从库跳过从主库复制过来的创建用户的SQL语句。

    在GTID模式下,通过下面的办法可以跳过一个事务:

stop slave;
set gtid_next=xxxxx;
begin;
commit;
set gtid_next=automatic;
start slave;

但是在事务数很多的情况下,我们不能一个一个跳过,需要批量跳过同一个错误,这里有几种方式可以进行处理;

分别是调整slave_skip_errors参数或者slave_exec_mode 参数

今天我们来看另外一种方法,就是利用pt-slave-restart工具来进行事务跳过,命令如下:

./pt-slave-restart -uroot -proot123 --error-numbers=1062

命令很容易理解,写清楚错误编码,直接跳过就行,它会打印出来很多信息,默认情况下打印内容为:时间戳、连接信息、中继日志文件、中继日志位置以及上一个错误号。例如:

2020-09-22T00:59:09 P=3306,h=192.168.7.194,p=...,u=root relay-bin.000005         369 1032 
2020-09-22T00:59:09 P=3306,h=192.168.7.194,p=...,u=root relay-bin.000005         726 1032 
2020-09-22T00:59:09 P=3306,h=192.168.7.194,p=...,u=root relay-bin.000005        1085 1032 
2020-09-22T00:59:09 P=3306,h=192.168.7.194,p=...,u=root relay-bin.000005        1444 1032 
2020-09-22T00:59:09 P=3306,h=192.168.7.194,p=...,u=root relay-bin.000005        1800 1032

你可以使用--verbose选项添加更多信息,也可以使用--quiet选项阻止所有输出。

注意事项:

当采用多线程复制(slave_parallel_workers > 0)时,pt-slave-restart不能跳过事务。pt-slave-restart不能确定GTID事件是哪个特定slave线程执行失败的事务。

如果需要使用,请暂时关闭多线程复制的workers

关于pt-slave-restart的其他参数,可以使用pt-slave-restart --help的命令查看,也可以参考下面的常见参数列表:

--always        :永不停止slave线程,手工停止也不行

--ask-pass      :替换-p命令,防止密码输入被身后的开发窥屏

--error-numbers :指定跳过哪些错误,可用,进行分隔

--error-text    :根据错误信息进行匹配跳过

--log           :输出到文件

--recurse       :在主端执行,监控从端

--runtime       :工具执行多长时间后退出:默认秒,m=minute,h=hours,d=days

--slave-user --slave-password :从库的账号密码,从主端运行时使用

--skip-count    :一次跳过错误的个数,胆大的可以设置大些,不指定默认1个

--master-uuid   :级联复制的时候,指定跳过上级或者上上级事务的错误

--until-master  :到达指定的master_log_pos,file位置后停止,格式:”file:pos“

--until-relay   :和上面一样,但是根据relay_log的位置来停止

以上就是MySQL pt-slave-restart工具的使用简介的详细内容,更多关于MySQL pt-slave-restart工具的使用的资料请关注三水点靠木其它相关文章!

MySQL 相关文章推荐
MySQL中你可能忽略的COLLATION实例详解
May 12 MySQL
详解MySQL的Seconds_Behind_Master
May 18 MySQL
MySQL触发器的使用
May 24 MySQL
如何设计高效合理的MySQL查询语句
May 26 MySQL
Mysql数据库索引面试题(程序员基础技能)
May 31 MySQL
MySQL 时间类型的选择
Jun 05 MySQL
Unity连接MySQL并读取表格数据的实现代码
Jun 20 MySQL
MySQL 十大常用字符串函数详解
Jun 30 MySQL
浅谈MySql整型索引和字符串索引失效或隐式转换问题
Nov 20 MySQL
MySQL数据库索引的最左匹配原则
Nov 20 MySQL
Mysql中一千万条数据怎么快速查询
Dec 06 MySQL
mysql 生成连续日期及变量赋值
Mar 20 MySQL
MySQL主从复制断开的常用修复方法
Apr 07 #MySQL
MySQL infobright的安装步骤
Apr 07 #MySQL
MySQL表的增删改查基础教程
mysql批量新增和存储的方法实例
Apr 07 #MySQL
Mysql 性能监控及调优
数据库连接池
mysql优化
Apr 06 #MySQL
You might like
PHP中foreach()用法汇总
2015/07/02 PHP
javascript下阻止表单重复提交、防刷新、防后退
2007/08/17 Javascript
Javascript Tab 导航插件 (23个)
2009/06/11 Javascript
关于捕获用户何时点击window.onbeforeunload的取消事件
2011/03/06 Javascript
根据json字符串生成Html的一种方式
2013/01/09 Javascript
阻止子元素继承父元素事件具体思路及实现
2013/05/02 Javascript
jquery选择器之属性过滤选择器详解
2014/01/27 Javascript
jQuery元素选择器用法实例
2014/12/23 Javascript
封装好的js判断操作系统与浏览器代码分享
2015/01/09 Javascript
JavaScript编写页面半透明遮罩效果的简单示例
2016/05/09 Javascript
js 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示实例
2016/12/06 Javascript
jQuery实现百度登录框的动态切换效果
2017/04/21 jQuery
如何优雅地在vue中添加权限控制示例详解
2019/03/07 Javascript
Electron vue的使用教程图文详解
2019/07/05 Javascript
浅析JavaScript 函数防抖和节流
2020/07/13 Javascript
vue+echarts实现动态折线图的方法与注意
2020/09/01 Javascript
[00:32]2018DOTA2亚洲邀请赛VGJ.T出场
2018/04/03 DOTA
[54:18]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS BO3 第一场 1月22日
2021/03/11 DOTA
python实现的登录和操作开心网脚本分享
2014/07/09 Python
python django 实现验证码的功能实例代码
2017/05/18 Python
python+pyqt实现右下角弹出框
2017/10/26 Python
Python并行分布式框架Celery详解
2018/10/15 Python
Python音频操作工具PyAudio上手教程详解
2019/06/26 Python
Python基于gevent实现高并发代码实例
2020/05/15 Python
Pytorch转keras的有效方法,以FlowNet为例讲解
2020/05/26 Python
介绍CSS3使用技巧5个
2009/04/02 HTML / CSS
Ben Sherman官方网站:英国男装品牌
2019/10/22 全球购物
Emma Bridgewater官网:英国餐具制造商
2019/11/24 全球购物
求职意向书范文
2014/04/01 职场文书
重阳节演讲稿:尊敬帮助老人 弘扬传统美德
2014/09/25 职场文书
2014年社区教育工作总结
2014/12/02 职场文书
高中信息技术教学反思
2016/02/16 职场文书
《家庭教育》读后感3篇
2019/12/18 职场文书
Python图片检索之以图搜图
2021/05/31 Python
JavaScript严格模式不支持八进制的问题讲解
2021/11/07 Javascript
Docker 镜像介绍以及commit相关操作
2022/04/13 Servers