【mysql】pt-kill 工具使用说明

工作过程说明

pt-kill是percona工具箱里的成员之一,也是用perl写的。

其主要工作过程为

  1. 远程连上mysql实例
  2. 根据指定规则对会话进行筛选
  3. 对筛选出的问话执行操作,如kill。
  4. 根据指定的重复规则,重复执行以上2、3步骤。

参数说明

pt-kill  --help 可以查看帮助信息,参数信息分类也十分的清晰。

对照pt-kill的工作过程,参数内容也分为以下几类:

  1. 连接DB的参数
  2. 匹配会话的参数
  3. 执行动作的参数
  4. 其他的一些参数

pt-kill使用的方式 pt-kill [ para = value ] 搞清楚参数定义就能灵活组合使用了。

下面分别对参数做下说明:

1、连接DB的参数

以下参数应该不用多介绍,跟mysql客户端定义一样。

--host=

--port=

--user=

--password=

2、筛选会话的规则

先看mysql  show  processlist命令的输出,主要包含的信息有user、host、db、command、time、state、info这几个。pt-kill响应的筛选规则也一一对应。

可以匹配match或者忽略ignore指定规则。

--match-user=

--match-host=

--match-db=

--match-command=

--busy-time/idle-time=    默认单位是s

--match-state=

--match-info=

把match改成ignore就是忽略指定的规则。

以上匹配规则的value部分都可以输入perl的正则表达式。

关于perl的正则写法不清楚的可以百度。

基本的有

多个条件用“|”隔开

( ) * 这些字符都需要\转义

^标识行首,$标识行尾。

3、执行动作的参数

         --kill  杀掉连接并且退出会话

         --kill-query 只杀掉执行的语句,不退出会话

         --print    只打印出匹配的会话,不杀

         --victims  默认是oldest,只杀匹配出的最古老的查询,若指定为all,则杀死所有匹配出的查询。

4、其他的一些参数

--daemonize 放在后台以守护进程的形式运行

--interval=  间隔多久运行一次,默认30s

--run-time=  运行多久后退出

 

示例:

1、打印指定机器名的会话

pt-kill  --host="31.67.72.21"  --port=3367 --user=mysqla --password=mysqla --interval=5  --victims all --match-host="31.67.160.193"    --print

 

2、打印指定查询

pt-kill  --host="31.67.72.21"  --port=3367 --user=mysqla --password=mysqla --interval=5  --victims all --match-info="select count\(\*\) from transaction_history"  --print

 

3、打印指定类型的语句

pt-kill  --host="31.67.72.21"  --port=3367 --user=mysqla --password=mysqla --interval=5  --victims all --match-command="Query"  --print

 

补充说明几点:

  1. sqlmap_id不会出现在info中,因此无法使用sqlmap_id进行过滤。
  2. 多个匹配规则可以组合使用
  3. --match-command 在mysql中可取的值有

Query
Sleep
Binlog Dump
Connect
Delayed insert
Execute
Fetch
Init DB
Kill
Prepare
Processlist
Quit
Reset stmt
Table Dump

4、–match-state在mysql中可取的值有

Locked
login
copy to tmp table
Copying to tmp table
Copying to tmp table on disk
Creating tmp table
executing
Reading from net
Sending data
Sorting for order
Sorting result
Table lock
Updating

 

 

你可能感兴趣的:(mysql)