pt工具之pt-kill

2024年 7月 23日 80.3k 0

安装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

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论