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.gz

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

perl Makefile.PL
make
make install

安装后工具目录: /usr/local/bin

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 --print

-- 每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 --print

-- 每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 --print

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

2.pt-align 对齐工具
使用 pt-align filename