作为一名优秀的mysql dba也需要有掌握几个好用的mysql管理工具,所以我也一直在整理和查找一些能够便于管理mysql的利器。以后的一段时间内,将会花一大部分的精力去搜索这些工具。
性能的管理一直都是摆在第一位的,dba的很多工作管理层都看不到也没有办法衡量价值,但是如果一个系统慢的跟蜗牛一样,dba通过监控调优把系统从崩溃边 缘重新拉回到高铁时代。这种价值和触动应该是巨大的。(很多企业的领导认为系统跑不动了就需要换更快的CPU、更大的内存、更快的存储,而且这还不是少 数,所以DBA的价值也一直体现不出来,薪水自然也就不会很高)
mysql 的日志是跟踪mysql性能瓶颈的最快和最直接的方式了,系统性能出现瓶颈的时候,首先要打开慢查询日志,进行跟踪;这段时间关于慢查询日志的管理和查看 已经整理过两篇文章了,不经意间又发现了一个查看慢查询日志的工具:mk-query-digest,这个工具网上号称mysql dba必须掌握的十大工具之首。
wget https://www.percona.com/downloads/percona-toolkit/2.2.16/RPM/percona-toolkit-2.2.16-1.noarch.rpm && yum localinstall -y percona-toolkit-2.2.16-1.noarch.rpm
命令行中输入:pt-summary
显示如下图所示:说明安装成功!输入【[root@node03 mysql]# pt-query-digest --help
】
pt-summary –help
wget http://percona.com/get/pt-summary
1、查看服务器信息
命令:pt-summary
2、查看磁盘开销使用信息
命令:pt-diskstats
3、查看mysql数据库信息
命令:pt-mysql-summary --user=root --password=123456
命令:pt-query-digest /data/mysql/data/db-3-12-slow.log
5、查找mysql的从库和同步状态
命令:pt-slave-find --host=localhost --user=root --password=123456
6、查看mysql的死锁信息
pt-deadlock-logger --user=root --password=123456 localhost
7、从慢查询日志中分析索引使用情况
pt-index-usage slow_20131009.log
8、查找数据库表中重复的索引
pt-duplicate-key-checker --host=localhost --user=root --password=123456
9、查看mysql表和文件的当前活动IO开销
pt-ioprofile
10、查看不同mysql配置文件的差异
pt-config-diff /etc/my.cnf /etc/my_master.cnf
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
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
13、查看mysql授权
1、pt-show-grants --user=root --password=123456
2、pt-show-grants --user=root --password=123456 --separate –revoke
14、验证数据库复制的完整性
pt-table-checksum --user=root --password=123456