1.修改表结构时用:pt_online-schema-change
2.percona-toolkit 工具集
wget https://percona.com/downloads/percona-toolkit/2.2.16/tarball/percona-toolkit-2.2.16.tar.gz
tar zxvf percona-toolkit-2.2.16.tar.gz
wget https://www.percona.com/downloads/percona-toolkit/3.0.10/binary/tarball/percona-toolkit-3.0.10_x86_64.tar.gzmysql
yum install perl-DBD-MySQL
yum install perl-ExtUtils-Embed -y
yum install perl-Digest-MD5
yum install perl-develsql
perl Makefile.PL
make
make install数据库
安装后工具目录: /usr/local/binide
a.pt-kill
--victims all须要有,不然只会处理一个链接(最先连上数据库的那个),
--interval 30 默认每30秒循环执行一次,能够根据实际状况调整,若是不加,只执行一次;加上的话,会在后台不停的执行。
默认会过滤掉复制线程,请没必要担忧杀掉复制线程。
--run-time,若是指定此项,则执行指定长的时候,不然以循环时间每屡次时间执行一次。
--help能够查看帮助信息,除了--busy-time与--idle-time是否认的关系,只能选择一个;其他各个选项是并的关系,是A且B的关系,--ignore选项与--match信息能够一块儿使用。
使用的重点便是--ignore 与 --match的灵活结合
下面是help内容的部分信息,能够用来限制杀掉链接的条件。
--database (No value)
--defaults-file (No value)
--each-busy-time (No value)
--execute-command (No value)
--filter (No value)
--group-by (No value)
--help TRUE
--host localhost
--idle-time (No value)
--ignore-command (No value)
--ignore-db (No value)
--ignore-host (No value)
--ignore-info (No value)
--ignore-self TRUE
--ignore-state Locked
--ignore-user (No value)
--interval 30
--kill FALSE
--kill-query FALSE
--log (No value)
--log-dsn (No value)
--match-all FALSE
--match-command (No value)
--match-db (No value)
--match-host (No value)
--match-info (No value)
--match-state (No value)
--match-user (No value)工具
-- 每10秒杀掉全部sleep超过200秒的链接,并打印线程
/usr/local/bin/pt-kill --idle-time 200 --victims all --interval 10 -S
/var/lib/mysql/mysql.sock -uroot -p111111 --kill --print进程
-- 每10秒杀掉主机为127.0.0.1 全部sleep超过200秒的链接,并打印
/usr/local/bin/pt-kill --match-host='127.0.0.1' --idle-time 200 --victims all --interval 10 -S
/var/lib/mysql/mysql.sock -uroot -p123456 --kill --printget
-- 每10秒杀掉链接dbhospital 全部sleep超过200秒的链接,并打印
/usr/local/bin/pt-kill --match-db='hospital' --idle-time 200 --victims all --interval 10 -S
/var/lib/mysql/mysql.sock -uroot -p123456 --kill --printit
-- 每10秒杀掉执行时间超过特定时间、特定sql(5秒)的链接
/usr/local/bin/pt-kill --busy-time=1 --match-info='SELECT|select|Select' --victims all --interval 10 -S
/var/lib/mysql/mysql.sock -uroot -p123456 --kill --printclass
杀死pt-kill 进程
kill -9 $(ps -ef| grep pt-kill |grep -v grep |awk '{print $2}')
2.pt-align 对齐工具使用 pt-align filename