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 InnoDB ReplicaSet(副本集)简单介绍
Apr 24 MySQL
MySQL 存储过程的优缺点分析
May 20 MySQL
MySQL大小写敏感的注意事项
May 24 MySQL
新手入门Mysql--sql执行过程
Jun 20 MySQL
MySQL非空约束(not null)案例讲解
Aug 23 MySQL
MySQL去除重叠时间求时间差和的实现
Aug 23 MySQL
Prometheus 监控MySQL使用grafana展示
Aug 30 MySQL
MySQL表类型 存储引擎 的选择
Nov 11 MySQL
MySQL中order by的使用详情
Nov 17 MySQL
MySQL创建管理KEY分区
Apr 13 MySQL
MYSQL中文乱码问题的解决方案
Jun 14 MySQL
SQL语句中EXISTS的详细用法大全
Jun 25 MySQL
MySQL主从复制断开的常用修复方法
Apr 07 #MySQL
MySQL infobright的安装步骤
Apr 07 #MySQL
MySQL表的增删改查基础教程
mysql批量新增和存储的方法实例
Apr 07 #MySQL
Mysql 性能监控及调优
数据库连接池
mysql优化
Apr 06 #MySQL
You might like
PHP原生模板引擎 最简单的模板引擎
2012/04/25 PHP
PHP使用mysql_fetch_object从查询结果中获取对象集的方法
2015/03/18 PHP
php输出全球各个时区列表的方法
2015/03/31 PHP
php版微信自定义回复功能示例
2016/12/05 PHP
List the Stored Procedures in a SQL Server database
2007/06/20 Javascript
js获取浏览器的可视区域尺寸的实现代码
2011/11/30 Javascript
一个基于jquery的文本框记数器
2012/09/19 Javascript
DWZ刷新dialog解决方法
2013/03/03 Javascript
javascript实现的一个带下拉框功能的文本框
2014/05/08 Javascript
jQuery弹出层插件Lightbox_me使用指南
2015/04/21 Javascript
JavaScript实现身份证验证代码
2016/02/17 Javascript
Wireshark基本介绍和学习TCP三次握手
2016/08/15 Javascript
利用JQuery直接调用asp.net后台的简单方法
2016/10/27 Javascript
Angular2 多级注入器详解及实例
2016/10/30 Javascript
jquery实现用户登陆界面(示例讲解)
2017/09/06 jQuery
微信小程序上传图片到php服务器的方法
2019/05/23 Javascript
[59:30]完美世界DOTA2联赛PWL S3 access vs LBZS 第二场 12.20
2020/12/23 DOTA
python解析xml文件实例分析
2015/05/27 Python
Python中的下划线详解
2015/06/24 Python
python中reload(module)的用法示例详解
2017/09/15 Python
python生成lmdb格式的文件实例
2018/11/08 Python
Pandas 重塑(stack)和轴向旋转(pivot)的实现
2019/07/22 Python
Python 字符串、列表、元组的截取与切片操作示例
2019/09/17 Python
基于Python 中函数的 收集参数 机制
2019/12/21 Python
python字典和json.dumps()的遇到的坑分析
2020/03/11 Python
PyInstaller运行原理及常用操作详解
2020/06/13 Python
python中导入 train_test_split提示错误的解决
2020/06/19 Python
浅谈matplotlib 绘制梯度下降求解过程
2020/07/12 Python
在 Python 中使用 MQTT的方法
2020/08/18 Python
python 将Excel转Word的示例
2021/03/02 Python
HTML5 device access 设备访问详解
2018/05/24 HTML / CSS
巴西最大的珠宝连锁店:Vivara
2019/04/18 全球购物
机械工程师岗位职责
2014/06/16 职场文书
律师催款函范文
2015/06/24 职场文书
毕业欢送会致辞
2015/07/29 职场文书
党员公开承诺书(2016最新版)
2016/03/24 职场文书