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 Shell的介绍以及安装
Apr 24 MySQL
MySQL中in和exists区别详解
Jun 03 MySQL
面试被问select......for update会锁表还是锁行
Nov 11 MySQL
MySQL Innodb索引机制详细介绍
Nov 23 MySQL
Linux7.6二进制安装Mysql8.0.27详细操作步骤
Nov 27 MySQL
解析MySQL索引的作用
Mar 03 MySQL
MySQL中IO问题的深入分析与优化
Apr 02 MySQL
mysql 8.0.27 绿色解压版安装教程及配置方法
Apr 20 MySQL
MySQL 计算连续登录天数
May 11 MySQL
Mysql将字符串按照指定字符分割的正确方法
May 30 MySQL
MySQL自定义函数及触发器
Aug 05 MySQL
MySQL主从复制断开的常用修复方法
Apr 07 #MySQL
MySQL infobright的安装步骤
Apr 07 #MySQL
MySQL表的增删改查基础教程
mysql批量新增和存储的方法实例
Apr 07 #MySQL
Mysql 性能监控及调优
数据库连接池
mysql优化
Apr 06 #MySQL
You might like
SMARTY学习手记
2007/01/04 PHP
PHP获取一个字符串中间一部分字符的方法
2014/08/19 PHP
php遍历删除整个目录及文件的方法
2015/03/13 PHP
PHP使用http_build_query()构造URL字符串的方法
2016/04/02 PHP
thinkPHP5.0框架配置格式、加载解析与读取方法
2017/03/17 PHP
PHP实现求解最长公共子串问题的方法
2017/11/17 PHP
微信公众号之主动给用户发送消息功能
2019/06/22 PHP
for 循环性能比较 提高for循环的效率
2009/03/19 Javascript
javascript 遍历验证所有文本框的值
2009/08/27 Javascript
javascript 设计模式之单体模式 面向对象学习基础
2010/04/18 Javascript
jQuery焦点图切换简易插件制作过程全纪录
2014/08/27 Javascript
angularJS Provider、factory、service详解及实例代码
2016/09/21 Javascript
Angular.js中$apply()和$digest()的深入理解
2016/10/13 Javascript
详解AngularJS跨页面传值(ui-router)
2017/08/23 Javascript
详解tween.js 中文使用指南
2018/01/05 Javascript
JS实现图片旋转动画效果封装与使用示例
2018/07/09 Javascript
详解vue.js根据不同环境(正式、测试)打包到不同目录
2018/07/13 Javascript
vue 实现cli3.0中使用proxy进行代理转发
2019/10/30 Javascript
你可能从未使用过的11+个JavaScript特性(小结)
2020/01/08 Javascript
vue 导出文件,携带请求头token操作
2020/09/10 Javascript
Python中如何获取类属性的列表
2016/12/26 Python
python爬虫实现教程转换成 PDF 电子书
2017/02/19 Python
Python 基础教程之str和repr的详解
2017/08/20 Python
Python绘制七段数码管实例代码
2017/12/20 Python
解决已经安装requests,却依然提示No module named requests问题
2018/05/18 Python
使用python socket分发大文件的实现方法
2019/07/08 Python
Python集合基本概念与相关操作实例分析
2019/10/30 Python
Python如何在循环内使用list.remove()
2020/06/01 Python
英国顶级家庭折扣店:The Works
2017/09/06 全球购物
2014年国培研修感言
2014/03/09 职场文书
初中优秀班集体申报材料
2014/05/01 职场文书
团代会宣传工作方案
2014/05/08 职场文书
白酒代理协议书范本
2014/10/26 职场文书
投标承诺函范文
2015/01/21 职场文书
2016关于预防职务犯罪的心得体会
2016/01/21 职场文书
Python+OpenCV实现图片中的圆形检测
2022/04/07 Python