本文出处:http://blog.chinaunix.net/uid-20639775-id-3206802.html

  • percona-toolkit简介

percona-toolkit是一组高级命令行工具的集合,用来执行各种通过手工执行非常复杂和麻烦的mysql和系统任务,这些任务包括:

  • 检查masterslave数据的一致性

  • 有效地对记录进行归档

  • 查找重复的索引

  • 对服务器信息进行汇总

  • 分析来自日志和tcpdump的查询

  • 当系统出问题的时候收集重要的系统信息

percona-toolkit源自Maatkit Aspersa工具,这两个工具是管理mysql的最有名的工具,现在Maatkit工具已经不维护了,请大家还是使用percona-toolkit吧!这些工具主要包括开发、性能、配置、监控、复制、系统、实用六大类,作为一个优秀的DBA,里面有的工具非常有用,如果能掌握并加以灵活应用,将能极大的提高工作效率。

  • percona-toolkit工具包安装

  • 软件包下载

访问http://www.percona.com/software/percona-toolkit/下载最新版本的Percona Toolkit 或者通过如下命令行来获取最新的版本:

wget percona.com/get/percona-toolkit.tar.gz

wget percona.com/get/percona-toolkit.rpm

我这里选择直接从网站上找到最新版本下载:

wget http://www.percona.com/redir/downloads/percona-toolkit/2.1.1/percona-toolkit-2.1.1-1.noarch.rpm

wget http://www.percona.com/redir/downloads/percona-toolkit/2.1.1/percona-toolkit-2.1.1.tar.gz

 http://pkgs.repoforge.org/perl-TermReadKey/下载最新的TermReadKey

wget http://pkgs.repoforge.org/perl-TermReadKey/perl-TermReadKey-2.30-1.el5.rf.x86_64.rpm

 

  1. 2. 软件包安装

我的环境是Centos 5.5 64 BIT

  1. A. percona-toolkitrpm安装方式

rpm -ivh perl-TermReadKey-2.30-1.el5.rf.x86_64.rpm

rpm -ivh percona-toolkit-2.1.1-1.noarch.rpm

注意:需要安装Term::ReadKey 包,否则会报perl(Term::ReadKey) >= 2.10 is needed by percona-toolkit-2.1.1-1.noarch错误

  1. B. percona-toolkit的编译安装方式

tar xzvf percona-toolkit-2.1.1.tar.gz

cd percona-toolkit-2.1.1

perl Makefile.PL

make

make test

make install


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

 

常用工具集:

 

1、服务器摘要

 

1.pt-summary  

 

2、服务器磁盘监测

 

1.pt-diskstats  

 

3、mysql服务状态摘要

 

1.pt-mysql-summary -- --user=root --password=root  

 

4、慢查询日志分析统计

 

1.pt-query-digest /data/logs/mysql/mysql-slow.log  

 

5、表同步工具,和mk-tables-sync功能一样, 用法上 稍有不一样 ,--print的结果更详细

 

1.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有没有在运行)。

 

[root@RHCE6 ~]# 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死锁监测

 

1.pt-deadlock-logger h='127.0.0.1' --user=root --password=123456  

 

8.主键冲突检查

 

1.pt-duplicate-key-checker --database=world h='127.0.0.1' --user=root --password=123456  

 

9.监测从库的复制延迟   ###经过测试 运行这个命令会使从库上的sql线程异常挂掉

 

1.pt-slave-delay --host 192.168.0.206 --user=root --password=123456  

 

更多介绍参考http://www.zhaokunyao.com/archives/3245,命令的使用可以通过--help获知