常见的mysql优化策略(MySQL pt-slave-restart工具的使用简介)
常见的mysql优化策略
MySQL pt-slave-restart工具的使用简介在MySQL主从复制环境的搭建中,常常会遇到一种场景,主库和从库都要初始化用户的账号密码,正常的情况下,需要在主库和从库都关闭session级别的binlog,然后再进行用户信息导入。
但是有时候会忽略关闭session级别binlog这个前置动作,例如在基于GTID的复制模式下,主从库都直接导入了用户的账号密码信息,主库和从库都将账号密码的事务记录到了自己的GTID中,此时我们如果利用GTID的方式搭建复制,会出现报错,因为从库已经有账号了,所以主库上同步到从库的用户信息会出现报错现象,提示用户已经存在,这种情况下,我们需要在从库跳过从主库复制过来的创建用户的SQL语句。
在GTID模式下,通过下面的办法可以跳过一个事务:
|
stop slave; set gtid_next=xxxxx; begin ; commit ; set gtid_next=automatic; start slave; |
但是在事务数很多的情况下,我们不能一个一个跳过,需要批量跳过同一个错误,这里有几种方式可以进行处理;
MySQL复制问题的三个参数介绍
分别是调整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工具的使用的资料请关注开心学习网其它相关文章!
原文链接:https://mp.weixin.qq.com/s/QD9M2rp5XtbhGoMTa-KBNA
- mysql中怎么删除整张表(MySQL如何优雅的删除大表实例详解)
- MySql存储过程
- phpmysql网站开发入门与提高(PHP+MySQL+sphinx+scws实现全文检索功能详解)
- mysql char和varchar区别(MySQL CHAR和VARCHAR存储、读取时的差别)
- mysql实验总结分析(MySQL查询截取的深入分析)
- 2021-10-18 11:58:15
- mysql如何定义外键(MySQL外键设置的方法实例)
- mysql默认的事务隔离级别是哪一种(MySql学习笔记之事务隔离级别详解)
- mysql数据库迁移命令(MySQL数据迁移相关总结)
- mysql的存储性能优化(MySQL的查询缓存和Buffer Pool)
- mysql8.0.25安装及配置超详细教程(MySQL8.0.21安装步骤及出现问题解决方案)
- mysql各种锁详解(MySQL 查看事务和锁情况的常用语句分享)
- mysql读写分离怎么实现的(详解MySQL主从复制及读写分离)
- mysql怎么做教材信息管理系统(python+mysql实现学生信息查询系统)
- mysql将字符串转换成整数(MYSQL字符串强转的方法示例)
- mysql程序中判断select返回空值(解决MySQL读写分离导致insert后select不到数据的问题)
- 花不语 下 如果重来一次的话,你还会这么选择吗(花不语下如果重来一次的话)
- 城市记忆之上海 最难忘的是老弄堂里的市井味道(城市记忆之上海)
- 太鸡贼了,这老小区轻松搞定了停车问题(这老小区轻松搞定了停车问题)
- 太鸡贼了,这老小区轻松搞定了停车问题(这老小区轻松搞定了停车问题)
- 节日我在岗|警景相融 平安相伴(节日我在岗警景相融)
- 战 疫 时刻 致敬每一位石化大学的 守护者(战疫时刻)
热门推荐
- vue双向数据绑定js如何实现(纯JS如何实现vue.js下的双向绑定功能)
- dedecms路径设置(dedecms V5.7修改表前缀的方法及出现不显示文章内容的解决方法)
- php添加到数组的用法(详解PHP 7.4 中数组延展操作符语法知识点)
- Javascript计算密码的强度
- python解析视频源码(基于python实现高速视频传输程序)
- parseInt()和parseFloat()
- css3画出苹果手机(基于CSS3画一个iPhone)
- mysql类型转换函数推荐(mysql 数据类型转换的实现)
- mysql突然报错206无法连接(详解MySQL连接挂死的原因)
- dedecms关闭站点(dedecms恶意注册与发广告文章的解决办法)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9