Percona Toolkit 是一组高级的命令行工具,用来管理 MySQL 和系统任务,主要包括:
1、验证主节点和复制数据的一致性
2、有效的对记录行进行归档
3、找出重复的索引
4、总结 MySQL 服务器
5、从日志和 tcpdump 中分析查询
6、问题发生时收集重要的系统信息
一、安装步骤忽略
http://www.percona.com/downloads/percona-toolkit
二、常用工具集:
1、服务器摘要
pt-summary
2、服务器磁盘监测
pt-diskstats
3、mysql服务状态摘要
pt-mysql-summary -- --user=root --password=root
4、慢查询日志分析统计
分析一段时间的slow日志:
pt-query-digest slow.log --since '2014-04-17 09:30:00' --until '2014-04-17 10:00:00'> slow1.log
通过tcpdump抓取分析日志:
tcpdump -s 65535 -x -nn -q -tttt -i any -c 1000 port 3306 > mysql.tcp.txt
pt-query-digest --type tcpdump mysql.tcp.txt> slow_report9.log
分析binlog日志:
mysqlbinlog mysql-bin.000093 > mysql-bin000093.sql
pt-query-digest --type=binlog mysql-bin000093.sql > slow_report10.log
分析全日制:
pt-query-digest --type=genlog localhost.log > slow_report11.log
5、表同步工具,和mk-tables-sync功能一样, 用法上稍有不一样,--print的结果更详细
pt-table-sync --execute --print --no-check-slave --database=world h='127.0.0.1' --user=root --password=123456 h='192.168.0.212' --user=root --password=123456
6、主从状态监测,提供给它一台mysql服务器的IP用户名密码,就可以分析出整个主从架构中每台服务器的信息,包括但不限于mysql版本,IP地址,server ID,mysql服务的启动时间,角色(主/从),Slave Status(落后于主服务器多少秒,有没有错误,slave有没有在运行)。
pt-slave-find --host=localhost --user=rhce6 --password=rhce6
localhost
Version 5.5.23-log
Server ID 1
Uptime 05:16:10 (started 2012-08-08T09:32:03)
Replication Is not a slave, has 1 slaves connected, is not read_only
Filters
Binary logging STATEMENT
Slave status
Slave mode STRICT
Auto-increment increment 1, offset 1
InnoDB version 1.1.8
+- 192.168.0.168
Version 5.5.23-log
Server ID 10
Uptime 38:19 (started 2012-08-08T14:09:54)
Replication Is a slave, has 0 slaves connected, is not read_only
Filters
Binary logging STATEMENT
Slave status 0 seconds behind, running, no errors
Slave mode STRICT
Auto-increment increment 1, offset 1
InnoDB version 1.1.8
7、mysql死锁监测
pt-deadlock-logger --create-dest-table --dest D=test,t=deadlocks -S /home/data/mysql/tmp/mysql.sock u=root,p="123456"
pt-deadlock-logger --daemonize --run-time=300 --dest D=test,t=deadlocks -S /home/data/mysql/tmp/mysql.sock u=root,p="123456" &
8、主键冲突检查
pt-duplicate-key-checker --database=world h='127.0.0.1' --user=root --password=123456
9、监测从库的复制延迟 ###经过测试 运行这个命令会使从库上的sql线程异常挂掉
pt-slave-delay --host 192.168.0.206 --user=root --password=123456
10、杀掉全部的读 每一秒杀一次查询时间超过10秒的查询 记录日志
pt-kill --user=xxxxx --password=xxxxxx --busy-time 10 --victim all --interval 1 --kill --daemonize --print --log=/export/data/mysql/log/pt-kill.log
--daemonize这个参数是使用守护进程的方式运行