美文网首页
pt工具之pt-kill

pt工具之pt-kill

作者: 这货不是王马勺 | 来源:发表于2022-09-01 15:09 被阅读0次

安装pt工具包

安装依赖:

yum install perl-DBI perl-DBD-MySQL

yum install perl-ExtUtils-Embed -y
yum install perl-Digest-MD5
yum install perl-devel

官网下载:

https://www.percona.com/downloads/percona-toolkit/LATEST/

安装:

tar –xvf percona-toolkit-3.4.0_x86_64.tar.gz
cd percona-toolkit-3.4.0
perl Makefile.PL
make
make install

安装后工具目录在 /usr/local/下,如需要可配置环境变量

pt-kill使用

说明:默认会过滤掉复制线程,请不必担心杀掉复制线程。

每10s记录一下超过30s的查询语句 输出到/tmp/pt_select.log文件中

pt-kill --host=127.0.0.1 --port=3306 --user=root --password=123456 --match-db='test_db' --match-info "select|SELECT" --busy-time 30 --victims all --interval 10 --daemonize --print --log=/tmp/pt_select.log

每10s找出超过30s的查询语句 直接杀掉

pt-kill --host=127.0.0.1 --port=3306 --user=root --password=123456 --match-db='test_db' --match-info "select|SELECT" --busy-time 30 --victims all --interval 10 --daemonize --kill --log=/tmp/pt_select_kill.log

其中 --daemonize参数表示守护进程;
--victims all 表示kill多个连接,否则只kill最长的那一个

只打印-某IP来源的会话

pt-kill --host=127.0.0.1 --port=3306 --user=root --password=123456 --match-db='test_db' --match-host "192.168.65.129" --busy-time 30 --victims all --interval 10 --daemonize --print --log=/tmp/pt_select.log

执行杀操作-查杀某IP来源的会话

pt-kill --host=127.0.0.1 --port=3306 --user=root --password=123456 --match-db='test_db' --match-host "192.168.65.129" --busy-time 30 --victims all --interval 10 --daemonize --kill --log=/tmp/pt_select_kill.log

只打印-某IP来源的会话

pt-kill --host=192.168.65.128 --port=3306 --user=root --password=rootpwd  --match-db='db222'  --match-host "192.168.65.129" --busy-time 30 --victims all --interval 10 --daemonize  --print --log=/tmp/pt_select.log

执行杀操作-查杀某IP来源的会话

pt-kill --host=192.168.65.128 --port=3306 --user=root --password=rootpwd  --match-db='db222'  --match-host "192.168.65.129" --busy-time 30 --victims all --interval 10 --daemonize --kill --log=/tmp/pt_select_kill.log

只打印-某用户的会话

pt-kill --host=192.168.65.128 --port=3306 --user=root --password=rootpwd  --match-db='db222'  --match-user "u2" --busy-time 30 --victims all --interval 10 --daemonize  --print --log=/tmp/pt_select.log

执行杀操作-查杀访问某用户的会话

pt-kill --host=192.168.65.128 --port=3306 --user=root --password=rootpwd  --match-db='db222'  --match-user "u2" --busy-time 30 --victims all --interval 10 --daemonize --kill --log=/tmp/pt_select_kill.log

只打印-正在进行filesort的sql

pt-kill --host=192.168.65.128 --port=3306 --user=root --password=rootpwd  --match-db='db222'  --match-command Query --match-state "Sorting result"  --run-time 1 --busy-time 30 --victims all --interval 10 --daemonize  --print --log=/tmp/pt_select.log

执行杀操作-杀掉正在进行filesort的sql

pt-kill --host=192.168.65.128 --port=3306 --user=root --password=rootpwd  --match-db='db222'  --match-command Query --match-state "Sorting result"  --run-time 1 --busy-time 30 --victims all --interval 10 --daemonize --kill --log=/tmp/pt_select_kill.log

如要停止pt-kill,需要ps-ef过滤然后在操作系统上结束进程,或者直接:

kill -9 $(ps -ef| grep pt-kill |grep -v grep |awk '{print $2}')

参考文章:

https://zhuanlan.zhihu.com/p/192830473

https://blog.csdn.net/weixin_42386617/article/details/102459197

相关文章

网友评论

      本文标题:pt工具之pt-kill

      本文链接:https://www.haomeiwen.com/subject/kfhsnrtx.html