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 角色(role)功能介绍
Apr 24 MySQL
MySQL慢查询的坑
Apr 28 MySQL
MySQL创建高性能索引的全步骤
May 02 MySQL
MySQL主从搭建(多主一从)的实现思路与步骤
May 13 MySQL
你知道哪几种MYSQL的连接查询
Jun 03 MySQL
mysql 如何获取两个集合的交集/差集/并集
Jun 08 MySQL
解析MySQL binlog
Jun 11 MySQL
为什么代码规范要求SQL语句不要过多的join
Jun 23 MySQL
python中的mysql数据库LIKE操作符详解
Jul 01 MySQL
MySQL修炼之联结与集合浅析
Oct 05 MySQL
Mysql存储过程、触发器、事件调度器使用入门指南
Jan 22 MySQL
MySQL时区造成时差问题
Apr 13 MySQL
MySQL主从复制断开的常用修复方法
Apr 07 #MySQL
MySQL infobright的安装步骤
Apr 07 #MySQL
MySQL表的增删改查基础教程
mysql批量新增和存储的方法实例
Apr 07 #MySQL
Mysql 性能监控及调优
数据库连接池
mysql优化
Apr 06 #MySQL
You might like
允许phpmyadmin空密码登录的配置方法
2011/05/29 PHP
php实现使用正则将文本中的网址转换成链接标签
2014/12/03 PHP
微信access_token的获取开发示例
2015/04/16 PHP
PHP如何通过传引用的思想实现无限分类(代码简单)
2015/10/13 PHP
PHP+redis实现添加处理投票的方法
2015/11/14 PHP
关于扩展 Laravel 默认 Session 中间件导致的 Session 写入失效问题分析
2016/01/08 PHP
PC端微信扫码支付成功之后自动跳转php版代码
2017/07/07 PHP
PHP封装的page分页类定义与用法完整示例
2018/12/24 PHP
使用Zookeeper分布式部署PHP应用程序
2019/03/15 PHP
一些mootools的学习资源
2010/02/07 Javascript
js 可拖动列表实现代码
2011/12/13 Javascript
jQuery动态添加 input type=file的实现代码
2012/06/14 Javascript
jQuery之DOM对象和jQuery对象的转换与区别分析
2015/01/08 Javascript
JavaScript Window浏览器对象模型方法与属性汇总
2015/04/20 Javascript
jQuery技巧之让任何组件都支持类似DOM的事件管理
2016/04/05 Javascript
手机端js和html5刮刮卡效果
2020/09/29 Javascript
Spring Boot+AngularJS+BootStrap实现进度条示例代码
2017/03/02 Javascript
JavaScript 事件流、事件处理程序及事件对象总结
2017/04/01 Javascript
Angular 2 利用Router事件和Title实现动态页面标题的方法
2017/08/23 Javascript
微信小程序页面缩放式侧滑效果的实现代码
2018/11/15 Javascript
vue修改Element的el-table样式的4种方法
2020/09/17 Javascript
python模拟登录百度代码分享(获取百度贴吧等级)
2013/12/27 Python
Python3下错误AttributeError: ‘dict’ object has no attribute’iteritems‘的分析与解决
2017/07/06 Python
python发送告警邮件脚本
2018/09/17 Python
python求最大值,不使用内置函数的实现方法
2019/07/09 Python
Python数据持久化存储实现方法分析
2019/12/21 Python
Python3合并两个有序数组代码实例
2020/08/11 Python
python中四舍五入的正确打开方式
2021/01/18 Python
澳大利亚优质葡萄酒专家:Vintage Cellars
2019/01/08 全球购物
365 Tickets英国:全球景点门票
2019/07/06 全球购物
专升本自我鉴定
2013/10/10 职场文书
学校纪律作风整改措施思想汇报
2014/10/11 职场文书
电子商务实训报告总结
2014/11/05 职场文书
任命书怎么写
2015/03/02 职场文书
考试后的感想
2015/08/07 职场文书
《火烧云》教学反思
2016/02/23 职场文书