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新手入门的基本操作汇总
May 13 MySQL
修改MySQL的数据库引擎为INNODB的方法
May 26 MySQL
MySQL 十大常用字符串函数详解
Jun 30 MySQL
MySQL 聚合函数排序
Jul 16 MySQL
Prometheus 监控MySQL使用grafana展示
Aug 30 MySQL
MySQL对数据表已有表进行分区表的实现
Nov 01 MySQL
MySQL 服务和数据库管理
Nov 11 MySQL
Golang连接并操作MySQL
Apr 14 MySQL
MySQL 字符集 character
May 04 MySQL
MySQL数据库Innodb 引擎实现mvcc锁
May 06 MySQL
MySQL的prepare使用以及遇到的bug
May 11 MySQL
mysql序号rownum行号实现方式
Dec 24 MySQL
MySQL主从复制断开的常用修复方法
Apr 07 #MySQL
MySQL infobright的安装步骤
Apr 07 #MySQL
MySQL表的增删改查基础教程
mysql批量新增和存储的方法实例
Apr 07 #MySQL
Mysql 性能监控及调优
数据库连接池
mysql优化
Apr 06 #MySQL
You might like
php根据操作系统转换文件名大小写的方法
2014/02/24 PHP
php中json_encode处理gbk与gb2312中文乱码问题的解决方法
2014/07/10 PHP
ThinkPHP水印功能实现修复PNG透明水印并增加JPEG图片质量可调整
2014/11/05 PHP
网站防止被刷票的一些思路与方法
2015/01/08 PHP
详解Grunt插件之LiveReload实现页面自动刷新(两种方案)
2015/07/31 PHP
Yii2实现log输出到file及database的方法
2016/11/12 PHP
php删除一个路径下的所有文件夹和文件的方法
2018/02/07 PHP
php微信开发之关注事件
2018/06/14 PHP
PHP使用mongoclient简单操作mongodb数据库示例
2019/02/08 PHP
PHP中的异常处理机制深入讲解
2020/11/10 PHP
ASP中用Join和Array,可以加快字符连接速度的代码
2007/08/22 Javascript
JavaScript高级程序设计(第3版)学习笔记11 内建js对象
2012/10/11 Javascript
jQuery中on绑定事件后引发的事件冒泡问题如何解决
2016/05/25 Javascript
jQuery 3 中的新增功能汇总介绍
2016/06/12 Javascript
JS实现鼠标框选效果完整实例
2016/06/20 Javascript
通过BootStrap实现轮播图的实际应用
2016/09/26 Javascript
jQuery 出现Cannot read property ‘msie’ of undefined错误的解决方法
2016/11/23 Javascript
原生js实现日期计算器功能
2017/02/17 Javascript
Vue 父子组件、组件间通信
2017/03/08 Javascript
node.js利用mongoose获取mongodb数据的格式化问题详解
2017/10/06 Javascript
实例详解Node.js 函数
2018/06/10 Javascript
在Vue中获取组件声明时的name属性方法
2018/09/12 Javascript
vue中node_modules中第三方模块的修改使用详解
2019/05/31 Javascript
React实现阿里云OSS上传文件的示例
2020/08/10 Javascript
[01:12:08]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.24
2019/09/10 DOTA
[01:09:19]DOTA2-DPC中国联赛 正赛 VG vs Aster BO3 第二场 2月28日
2021/03/11 DOTA
公立医院改革实施方案
2014/03/14 职场文书
初中家长寄语
2014/04/02 职场文书
情人节寄语大全
2014/04/11 职场文书
教师教学评估方案
2014/05/09 职场文书
党员干部三严三实心得体会
2014/10/13 职场文书
初中信息技术教学计划
2015/01/22 职场文书
给下属加薪申请报告
2015/05/15 职场文书
2015年服务员个人工作总结
2015/05/27 职场文书
《中国古代诗歌散文欣赏》高中语文教材
2019/08/20 职场文书
Java实现斗地主之洗牌发牌
2021/06/14 Java/Android