3.2.pt-query-digest

pt-query-digest常用命令详解

分析慢查询日志(重点)

命令:

pt-query-digest /var/lib/mysql/myshop02-slow.log

pt-query-digest --limit=100% /var/lib/mysq1/myshop02-slow.log

查找mysql的从库和同步状态

命令:

pt-slave-find --host=localhost --user=root --password=123456

查看mysql的死锁信息

命令:

pt-deadlock-logger --run-time=10 --interval=3 --create-dest-table --dest D=test,t=deadlocks u=root,p=123456

人为制造死锁

use test;
set autocommit=0;
select * from t1 where id=1 for update;
select * from t2 where id=1 for update;
use test;
set autocommit=0;
select * from t2 where id=1 for update;
select * from t1 where id=1 for update;

从慢查询日志中分析索引使用情况

命令∶

pt-index-usage --user=root --password=123456 --host=localhost /var/lib/mysql/myshop02-slow.log

从慢查找数据库表中重复的索引

命令:

pt-duplicate-key-checker --host=localhost --user=root --password=123456

查看mysql表和文件的当前活动IO开销(不要在高峰时用)

命令:

pt-ioprofile

查看不同mysql配置文件的差异(集群常用,双方都生效的变量)

命令:

pt-config-diff /etc/my.cnf /root/my_master.cnf

pt-find查找mysql表和执行命令

示例如下︰

# 查找数据库里大于1M的表
pt-find --user=root --password=123456 --tablesize +1M
# 查看表和索引大小并排序
pt-find --user=root --password=123456 --printf"%T\t%D.%N\n" | sort -rn

pt-kill杀掉符合标准的mysql进程

示例如下:

# 显示查询时间大于3秒的查询
pt-kill --user=root --password=123456 --busy-time 3 -print
# kill掉大于3秒的查询
pt-kill --user=root --password=123456 --busy-time 3 --kill

查看mysql授权(集群常用,授权复制)

示例如下:

pt-show-grants --user=root --password=123456
pt-show-grants --user=root --password=123456 --separate--revoke

验证数据库复制的完整性(集群常用,主从复制后检验)

示例如下:

pt-table-checksum --user=root --password=123456

Last updated

Was this helpful?