暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

pt工具之pt-kill

原创 龙舌兰地落🌏 2024-07-23
142

安装pt工具包

安装依赖:

yum install perl-DBI perl-DBD-MySQL

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

官网下载:

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

#2023-05
https://www.percona.com/software/database-tools/percona-toolkit

安装:

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
最后修改时间:2024-09-10 10:32:08
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论