部署mysql工具是一个非常重要的部分,所以工具的可靠性和很好的设计非常重要。percona toolkit是一个有30多个mysql工具的工具箱。兼容mysql,percona server,mariadb;它可以帮助DBA自动化的管理数据库和系统任务。因为他有很多工具,所以从哪里开始是一个难题,因为这个原因,所以我们下面介绍一些可能会常用到的percona toolkit工具集。
安装percona-toolkit
1)软件下载:https://www.percona.com/downloads/percona-toolkit
2)安装该工具依赖的软件包
1
|
$ yum install perl-IO-Socket-SSL perl-DBD-MySQL perl-Time-HiRes perl-TermReadKey perl-IO-Socket-SSL -y
|
3)软件安装
1
|
$ yum localinstall https://www.percona.com/downloads/percona-toolkit/2.2.20/RPM/percona-toolkit-2.2.20-1.noarch.rpm
|
3)工具集列表
1
2
3
4
5
6
7
|
pt-align pt-find pt-mext pt-slave-delay pt-table-usage
pt-archiver pt-fingerprint pt-mysql-summary pt-slave-find pt-upgrade
pt-config-diff pt-fk-error-logger pt-online-schema-change pt-slave-restart pt-variable-advisor
pt-deadlock-logger pt-heartbeat pt-pmp pt-stalk pt-visual-explain
pt-diskstats pt-index-usage pt-query-digest pt-summary ptx
pt-duplicate-key-checker pt-ioprofile pt-show-grants pt-table-checksum
pt-fifo-split pt-kill pt-sift pt-table-sync
|
pt-archive
数据库归档工具,查询源数据,导出数据到文件表不做操作,然后删除源数据。小心使用,这个工具在归档数据以后默认会把源数据删除,所以需要手工加上-no-delete,我少有归档需求,而且偶尔用不熟练的话,风险也较大。
pt-duplicate-key-checker
用来检查mysql表是否有重复的索引和外键。这个工具审查show create table的结果,如果发现不同索引包含相同的列,或者一个覆盖索引最左边的类和其他索引一样,它会打印出可疑的索引,默认只会针对同一种类型的索引做比较。它也可以用来查找重复的外键,一个重复的外键必须是在同一个表中和其他外键包含相同的列,而且参考的父表也相同。
pt-mysql-summary
返回MySQL的状态和配置统计信息。
pt-config-diff
比较MySQL配置文件的不同之处。
pt-online-schema-change
在线变更数据库表结构,工具的工作原理是先创建一张和源表相同的空表,然后修改它的表结构。然后从源表拷贝数据过来,当所有数据拷贝过来以后,删除源表,将新表改名为源表。在变更过程中,任何对源表的改变都会通过触发器,应用到新表,所以源表默认不能有触发器。
pt-query-digest
是用于分析mysql慢查询的一个工具,它可以分析binlog、General log、slowlog,也可以通过SHOWPROCESSLIST或者通过tcpdump抓取的MySQL协议数据来进行分析。可以把分析结果输出到文件中,分析过程是先对查询语句的条件进行参数化,然后对参数化以后的查询进行分组统计,统计出各查询的执行时间、次数、占比等,可以借助分析结果找出问题进行优化。
pt-stalk
用来收集mysql的信息,通常数据库如果有一些突发的性能问题,这种问题又不是随时出现的话,就可以用到pt-stalk了,他可以监控数据库,然后设定一个阀值,超过阀值,就记录数据库和系统相关的数据,以便分析。
pt-summary
查看系统的相关统计信息。
pt-diskstats
查看系统磁盘IO相关信息。
pt-table-checksum
通过在master执行checkum检查复制的一致性,如果slave产生不一致的结果,那么证明slave和master数据不一致。使用DSN参数指定master的连接方式,如果任何不一致的数据被发现的话,EXIT STATUS状态都是非0的,或者产生了一些warnings或者错误。
这个工具专注于查找出不同的数据,如果你需要解决数据不同步的问题,可以使用pt-table-sync。
pt-table-sync
同步mysql服务器之间的数据。这个工具会改变数据,为了最大程度的安全,你需要在使用之前备份你的数据,如果同步一个复制的slave服务器使用–replicate或者–sync-to=master方法,通常是通过改变master,而不是直接改变slave,这是通常最安全的方法来完成主从的一致性。改变slave是解决问题的根源,但是通过改变master的数据,不会对master产生影响,实际上只会影响slave。
pt-show-grants
列出MySQL所有用户及权限。
pt-slave-delay
检查从库复制延迟。