本站所有文章均为原创,如对您有帮助,恳请帮忙点击任何一处广告
  • 首页
  • MySQL
  • 【MySQL运维】Percona Toolkit工具安装与使用教程

【MySQL运维】Percona Toolkit工具安装与使用教程

发布:TangLu2020-3-5 17:00分类: MySQL 标签: mysql

percona-toolkit是一套命令行工具的集合,可以实现数据库主从一致性检查、查找重复索引、对服务器信息汇总、分析日志等很多有用功能。由于该工具包所提供的工具较多,一些不常用的就不做说明了。

一、安装percona toolkit

yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
yum install percona-toolkit
#也可以在官网下载与系统版本对应的rpm包进行安装


二、percona toolkit常用工具说明

1、pt-duplicate-key-checker:列出并删除重复的索引和外键

pt-duplicate-key-checker --host=192.168.94.10  --user=root --password=123456 --database=student
pt-duplicate-key-checker --host=192.168.94.10  --user=root --password=123456 --database=company --table=employee


2、pt-online-schema-change:在线修改表结构,不会锁表阻塞,其原理就是先创建一个新表,然后复制原表数据到新表,数据复制完成后删除原表,再将新表改名。通常在业务时间需要修改大表(如表有500M以上或者有上千万行数据时)结构的情况下使用

pt-online-schema-change --host=192.168.94.10 --user=root --ask-pass D=tanglu_test,t=ptocs --execute --alter "ADD COLUMN test_column INT"
#D:指定库
#t:指定表
#execute:真正执行后面的SQL

3、pt-show-grants:显示指定数据库所有用户权限

pt-show-grants --host=192.168.94.10  --user=root --password=123456


4、pt-kill:杀掉符合条件的慢SQL

pt-kill --busy-time 60 --print --host=192.168.94.10 --user=root --password=123456  #将执行时间超过60秒的SQL打印出来
pt-kill --busy-time 60 --kill --host=192.168.94.10 --user=root --password=123456  #杀掉执行时间超过60秒的SQL


5、pt-slave-delay:配置从库延迟,在需要做延迟的从库上使用该工具

pt-slave-delay --delay=60m --interval=15s --run-time=10m u=root,p=123456,h=192.168.1.100,P=3306
--delay:从库延迟的时间
--interval:检查的间隔,不配置的话默认为1分钟
--run-time:该命令运行时间,不配置的话代表永久生效,这里配置的是运行10分钟则关闭
--ask-pass:交互模式输入密码


6、pt-slave-find:查找指定主库的从库层级信息

pt-slave-find --host=192.168.1.100 --port=3306 --user=root --password=123456


pt-find.png



7、pt-table-checksum:检查主从数据一致性

pt-table-checksum --no-check-binlog-format --nocheck-replication-filters --replicate=test_database.test_table --databases=test_database --tables=test_table h=192.168.1.100,u=root,p=123456,P=3306
#--no-check-binlog-format:不检查二进制日志模式,否则row格式的话会报错
#--nocheck-replication-filters:不检查复制过滤器,然后用database来指定需要检查的库
#--replicate:把检查信息写入到指定的表中
#--databases:要检查的数据库,多个数据库用逗号分隔
#--tables:要检查的表,多个表用逗号分隔


8、pt-table-sync:主从同步修复工具

#方法1:在从库做修复
pt-table-sync --replicate=test_database.test_table h=$master_ip,u=root,p=123456 h=$slave_ip,u=root,p=123456 --charset=utf8 --print --databases=test_database  #在从库上执行该命令可以打印出没有同步的SQL,然后拿到结果后在从库执行即可
#方法2:在主库做修复
pt-table-sync --replicate=test_database.test_table h=$master_ip,u=root,p=123456 h=$slave_ip,u=root,p=123456 --charset=utf8 --databases=test_database --execute #在从库上执行该命令可以打印出没有同步的SQL,然后拿到结果后在从库执行即可


9、pt-query-digest:分析慢查询日志

pt-quert-digest mysql-slow.log > slow_log.report  #分析慢查询日志并将结果输出到文件
pt-quert-digest --since=12h mysql-slow.log > slow_log.report #分析最近12个小时的慢查询
pt-quert-digest --since '2020-02-11 09:30:00' --until '2020-02-11 11:30:00'mysql-slow.log > slow_log.report #指定时间范围进行分析


温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,谢谢合作!
et_highlighter51
版权所有:《Linux运维技术学习站点
文章标题:《【MySQL运维】Percona Toolkit工具安装与使用教程
除非注明,文章均为 《Linux运维技术学习站点》 原创
转载请注明本文短网址:http://www.linuxe.cn/post-562.html  [生成短网址]

已有 0/393 人参与

发表评论:

欢迎分享Linux运维技术学习站点

欢迎使用手机扫描访问本站,还可以关注微信哦~