【MySQL运维】Percona Toolkit工具安装与使用教程
一、percona-toolkit介绍
percona-toolkit是一套由Percona所开发并运用于MySQL的一套命令行工具集,该工具集里包含了数据库主从一致性检查、查找重复索引、服务器信息汇总、分析日志等很多有用功能。只需要配置好Percona Yum源即可直接安装
yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm yum install percona-toolkit
二、percona toolkit常用工具使用说明
· pt-summary:格式化输出系统报表,包含详细的内存、CPU、磁盘、网络连接等信息
· pt-mysql-summary:格式化输出MySQL报表,包含每个用户连接数、mysql配置信息、变量信息等
pt-mysql-summary --user dba --password 123456 -S /tmp/mysql3307.sock
· pt-query-digest:慢日志分析工具,详细说明可以参考《【MySQL配置教程】慢日志slowlog配置与分析》
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 #指定时间范围进行分析
· 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
· pt-online-schema-change:在线DDL工具,详见《【MySQL运维】使用ptosc工具实现大表在线DDL》
· pt-show-grants:显示指定数据库所有用户权限,常用于账号整理或者账号迁移
pt-show-grants --host=192.168.94.10 --user=root --password=123456
· 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
· 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:交互模式输入密码
· pt-slave-find:查找指定主库的从库层级信息
pt-slave-find --host=192.168.1.100 --port=3306 --user=root --password=123456
· pt-table-checksum:检查主从数据一致性。该命令是在主库操作,可用于数据迁移后的数据校验、主从数据巡检,建议在业务低峰期执行。
#--recursion-method:指定发现从库的方法,如果主从端口一致的话用processlist即可,否则需要指定DSN信息 #--replicate:把检查结果写入一份到指定的库表中,然后查看是否有表存在this_crc字段和master_crc字段不一致 #--no-check-binlog-format:不检查二进制日志模式 #--nocheck-replication-filters:不检查复制过滤器,通常会用database选项来指定需要检查的库 #--databases:要检查的数据库,多个数据库用逗号分隔 #--tables:要检查的表,多个表用逗号分隔 pt-table-checksum --host='10.3.0.221' --user='dba' --password='123456' --port=3306 --databases="company" --recursion-method=processlist --replicate=company.checksums --no-check-binlog-format
· pt-table-sync:主从同步修复工具,一般和pt-table-checksum结合使用
#方法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,然后拿到结果后在从库执行即可
版权声明:本文章版权归数据库运维网(www.ywdba.cn)所有。如需引用本站内容,请注明来源及作者。
评论