本文出自 “网站架构技术总结” 博客,请务必保留此出处http://mengphilip.blog.51cto.com/2243393/1685526
一、percona-toolkit工具简介
percona-toolkit是一组高级命令行工具的集合,主要用来执行各种通过手工执行非常复杂和麻烦的mysql和系统任务,这些任务包括:
1)检查master和slave数据的一致性
2)有效地对记录进行归档
3)查找重复的索引
4)对服务器信息进行汇总
5)分析来自日志和tcpdump的查询
6)当系统出问题的时候收集重要的系统信息
percona-toolkit是源自Maatkit 和Aspersa工具,这两个工具是管理mysql的最有名的工具,由于现在Maatkit工具已经不维护了,所以请大家还是使用percona-toolkit吧!这些工具主要包括开发、性能、配置、监控、复制、系统、实用等,作为一个优秀的DBA,里面有的工具非常有用,如果能掌握并加以灵活应用,将能极大的提高工作效率。
二、percona-toolkit工具安装过程
最新版本下载地址 https://www.percona.com/downloads/percona-toolkit/LATEST/
yum -y install perl-IO-Socket-SSL perl-DBI perl-DBD-MySQL perl-Digest-MD5
wget https://www.percona.com/downloads/percona-toolkit/3.0.4/binary/redhat/7/x86_64/percona-toolkit-3.0.4-1.el7.x86_64.rpm
rpm -ivh percona-toolkit-3.0.4-1.el7.x86_64.rpm
三、percona-toolkit工具使用
1.查看服务器信息
# pt-summary
详细文档 :http://www.percona.com/doc/percona-toolkit/2.2/pt-summary.html
2.查看磁盘开销使用信息
# pt-diskstats
详细文档 :http://www.percona.com/doc/percona-toolkit/2.2/pt-diskstats.html
3.查看mysql数据库信息
# pt-mysql-summary –user=root –password=123456
详细文档 :http://www.percona.com/doc/percona-toolkit/2.2/pt-mysql-summary.html
4.分析慢查询日志
# pt-query-digest /data/mysql/data/db-3-12-slow.log
详细文档:http://www.percona.com/doc/percona-toolkit/2.2/pt-query-digest.html
5.查找mysql的从库和同步状态
# pt-slave-find –host=localhost –user=root –password=123456
详细文档 :http://www.percona.com/doc/percona-toolkit/2.2/pt-slave-find.html
6.查看mysql的死锁信息
# pt-deadlock-logger –user=root –password=123456 localhost
详细文档:http://www.percona.com/doc/percona-toolkit/2.2/pt-deadlock-logger.html
7.从慢查询日志中分析索引使用情况
# pt-index-usage slow_20131009.log
详细文档:http://www.percona.com/doc/percona-toolkit/2.2/pt-index-usage.html
8.查找数据库表中重复的索引
# pt-duplicate-key-checker –host=localhost –user=root –password=123456
详细文档:http://www.percona.com/doc/percona-toolkit/2.2/pt-duplicate-key-checker.html
9.查看mysql表和文件的当前活动IO开销
# pt-ioprofile
详细文档:http://www.percona.com/doc/percona-toolkit/2.2/pt-ioprofile.html
10.查看不同mysql配置文件的差异
# pt-config-diff /etc/my.cnf /etc/my_master.cnf
详细文档:http://www.percona.com/doc/percona-toolkit/2.2/pt-config-diff.html
11. pt-find查找mysql表和执行命令,示例如下
查找数据库里大于2G的表:
# pt-find –user=root –password=123456 –tablesize +2G
查找10天前创建,MyISAM引擎的表:
# pt-find –user=root –password=123456 –ctime +10 –engine MyISAM
查看表和索引大小并排序
# pt-find –user=root –password=123456 –printf “%T\t%D.%N\n” | sort -rn
详细文档:http://www.percona.com/doc/percona-toolkit/2.2/pt-find.html
12) pt-kill 杀掉符合标准的mysql进程
显示查询时间大于60秒的查询
# pt-kill –user=root –password=123456 –busy-time 60 –print
kill掉大于60秒的查询
# pt-kill –user=root –password=123456 –busy-time 60 –kill
详细文档:http://www.percona.com/doc/percona-toolkit/2.2/pt-kill.html
13) 查看mysql授权
# pt-show-grants
–user=root –password=123456
# pt-show-grants
–user=root –password=123456 –separate
–revoke
详细文档:http://www.percona.com/doc/percona-toolkit/2.2/pt-show-grants.html
14)验证数据库复制的完整性
# pt-table-checksum –user=root –password=123456