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