常用的Percona-Toolkit工具
一.pt-kill 用来批量杀进程
常用场景
1.杀掉查询时间超过50的查询会话(info后可变条件如"select|SELECT|delete|DELETE|update|UPDATE")
pt-kill --host=localhost --port=3306 --user=root --password=root --match-db='test' --match-info "select|SELECT" --busy-time 50 --victims all --interval 10 --daemonize --kill --log=/tmp/pt_select_kill.log #加--print可只打印符合的进程#
2.杀掉来自某个IP的会话
pt-kill --host=localhost --port=3306 --user=root --password=root --match-db='test' --match-host "192.168.**.**" --busy-time 30 --victims all --interval 10 --daemonize --kill --log=/tmp/pt_select_kill.log
3.杀掉来自某个用户的会话
pt-kill --host=localhost --port=3306 --user=root --password=root --match-db='test' --match-user "u2" --busy-time 30 --victims all --interval 10 --daemonize --kill --log=/tmp/pt_select_kill.log
4.杀掉正在执行某个操作的会话(stat后可变条件如Locked、login、copy to tmp table、Copying to tmp table、Copying to tmp table on disk、Creating tmp table、executing、Reading from net、Sending data、Sorting for order、Sorting result、Table lock、Updating)
pt-kill --host=localhost --port=3306 --user=root --password=rootp --match-db='test' --match-command Query --match-state "Creating sort index" --run-time 1 --busy-time 30 --victims all --interval 10 --daemonize --kill --log=/tmp/pt_select_kill.log
5.杀掉有query的进程(command后可变条件如Query、Sleep、Binlog Dump、Connect、Delayed insert、Execute、Fetch、Init DB、Kill、Prepare、Processlist、Quit、Reset stmt、Table Dump等)
pt-kill --host=192.168.65.128 --port=3306 --user=root --password=rootpwd --match-db='db222' --match-command="Query" --busy-time 30 --victims all --interval 10 --daemonize --kill --log=/tmp/kill.log
二.pt-slave-restart 跳过mysql同步错误
pt-slave-restart --error-numbers=1062 -h localhost -uroot -proot > /tmp/skip.log
三.pt-query-digest 慢日志分析
1.直接分析慢查询文件:
pt-query-digest slow.log > slow_report.log
2.分析最近12小时内的查询:
pt-query-digest --since=12h slow.log > slow_report2.log
3.分析指定时间范围内的查询:
pt-query-digest slow.log --since '2017-01-07 09:30:00' --until '2017-01-07 10:00:00'> > slow_report3.log
4.分析指含有select语句的慢查询
pt-query-digest --filter '$event->{fingerprint} =~ m/^select/i' slow.log> slow_report4.log
5.针对某个用户的慢查询
pt-query-digest --filter '($event->{user} || "") =~ m/^root/i' slow.log> slow_report5.log
6.查询所有所有的全表扫描或full join的慢查询
pt-query-digest --filter '(($event->{Full_scan} || "") eq "yes") ||(($event->{Full_join} || "") eq "yes")' slow.log> slow_report6.log
7.把查询保存到query_review表
pt-query-digest --user=root –password=abc123 --review h=localhost,D=test,t=query_review--create-review-table slow.log
8.把查询保存到query_history表
pt-query-digest --user=root –password=abc123 --review h=localhost,D=test,t=query_history--create-review-table slow.log_0001 pt-query-digest --user=root –password=abc123 --review h=localhost,D=test,t=query_history--create-review-table slow.log_0002