转自:http://www.cnblogs.com/wjoyxt/p/6025810.html
percona-toolkit工具,可以监控系统一些东西, 主要是监控mysql一些状态,慢查询之类的
常用命令:
pt-mysql-summary查询状态
pt-query-digest慢日志分析
pt-slave-find主从状态
pt-slave-delay从延迟状况
pt-online-schema-change在线进行dml操作,防止死锁:
1)、创建一个和你执行alter表相同的表结构 tmp
2)、执行tmp表结构修改,从原表copy数据到修改后的表
3)、在原表上创建触发器,将copy过程中产生的数据,更新到新表。
4)、copy完成。rename(把原表改成其他的,把tmp表改成原表)
1、安装与Perl相关的模块
PT工具是使用Perl语言编写和执行的,所以需要系统中有Perl环境
# yum install -y perl perl-devel perl-Time-HiRes perl-DBI perl-DBD-MySQL perl-IO-Socket-SSL perl-TermReadKey perl-Digest-MD5
如果缺少相应的包会有相应的报错提示,例如:
perl(Digest::MD5) is needed by percona-toolkit-2.2.19-1.noarch
2、下载和安装percona toolkit的包,具体可查看官网下载地址:https://www.percona.com/downloads/percona-toolkit/
# wget http://www.percona.com/get/percona-toolkit.rpm (默认下载安装的是最新版本)
# rpm -ivh percona-toolkit.rpm
安装后,可以通过下面的命令确认是否安装成功:
# pt-query-digest –help
# pt-table-checksum –help
如果命令提示可以正常显示,则说明pt工具已经正常安装和使用了。
有的32个命令,可以分为7大类:
工具类别 | 工具命令 | 工具作用 | 备注 |
开发类 | pt-duplicate-key-checker | 列出并删除重复的索引和外键 | |
pt-online-schema-change | 在线修改表结构 | ||
pt-query-advisor | 分析查询语句,并给出建议,有bug | 已废弃 | |
pt-show-grants | 规范化和打印权限 | ||
pt-upgrade | 在多个服务器上执行查询,并比较不同 | ||
性能类 | pt-index-usage | 分析日志中索引使用情况,并出报告 | |
pt-pmp | 为查询结果跟踪,并汇总跟踪结果 | ||
pt-visual-explain | 格式化执行计划 | ||
pt-table-usage | 分析日志中查询并分析表使用情况 | pt 2.2新增命令 | |
配置类 | pt-config-diff | 比较配置文件和参数 | |
pt-mysql-summary | 对mysql配置和status进行汇总 | ||
pt-variable-advisor | 分析参数,并提出建议 | ||
监控类 | pt-deadlock-logger | 提取和记录mysql死锁信息 | |
pt-fk-error-logger | 提取和记录外键信息 | ||
pt-mext | 并行查看status样本信息 | ||
pt-query-digest | 分析查询日志,并产生报告 | 常用命令 | |
pt-trend | 按照时间段读取slow日志信息 | 已废弃 | |
复制类 | pt-heartbeat | 监控mysql复制延迟 | |
pt-slave-delay | 设定从落后主的时间 | ||
pt-slave-find | 查找和打印所有mysql复制层级关系 | ||
pt-slave-restart | 监控salve错误,并尝试重启salve | ||
pt-table-checksum | 校验主从复制一致性 | ||
pt-table-sync | 高效同步表数据 | ||
系统类 | pt-diskstats | 查看系统磁盘状态 | |
pt-fifo-split | 模拟切割文件并输出 | ||
pt-summary | 收集和显示系统概况 | ||
pt-stalk | 出现问题时,收集诊断数据 | ||
pt-sift | 浏览由pt-stalk创建的文件 | pt 2.2新增命令 | |
pt-ioprofile | 查询进程IO并打印一个IO活动表 | pt 2.2新增命令 | |
实用类 | pt-archiver | 将表数据归档到另一个表或文件中 | |
pt-find | 查找表并执行命令 | ||
pt-kill | Kill掉符合条件的sql | 常用命令 | |
pt-align | 对齐其他工具的输出 | pt 2.2新增命令 | |
pt-fingerprint | 将查询转成密文 | pt 2.2新增命令 |
上面是pt工具各个命令的基本功能介绍,可以使用 command –help 来查看每个命令的具体作用和使用方法;
有的命令也可以使用 man command 命令查询相关命令详细信息。
官网上也有比较详细的教程:https://www.percona.com/doc/percona-toolkit
目前使用的比较多的命令是: pt-query-digest ,pt-kill等命令。
[root@7-node1 tools]# pt-slave-find --use=root --password "123" --socket "/application/mysql/tmp/mysql.sock"
Localhost
Version 5.7.16-log
Server ID 3
Uptime 01:58:07 (started 2017-01-10T09:52:57)
Replication Is a slave, has 0 slaves connected, is read_only
Filters replicate_ignore_db=mysql
Binary logging ROW
Slave status 0 seconds behind, running, no errors
Slave mode STRICT
Auto-increment increment 1, offset 1
InnoDB version 5.7.16
[root@7-node1 tools]#
中文及官方文档如下:
percona-toolkit-manual%e4%b8%ad%e6%96%87
加字段例子:
pt-online-schema-change --alter "ADD COLUMN c1 INT" h=192.168.60.64,P=3306,p=123,u=root,D=td,t=so_item -print -statistics -EXECUTE
原文链接:percona-toolkit工具包的安装和使用,转载请注明来源!