PerconaToolKit安装与命令简介

96
波罗学的草稿
2019.03.06 23:36* 字数 1478
image

简书不维护了,欢迎关注我的知乎:波罗学的个人主页

PerconaToolkits是基于MySQL常见使用场景并由percona开发出来的一套数据库管理优化的命令行工具集。本篇文章会在介绍该工具的安装过程,并在此基础上简要说明各个命令的主要用途。

实验的环境:CentOS 7.1 + Percona Server 5.6.34

简要介绍

PerconaToolKit是Percona为MySQL分支版本Percona开发的一套工具集,将过去那些常用繁重的手工执行的操作总结起来组织开发的一套工具。这些工具很多功能都同时适用于MySQL(官方)和MySQL(Percona版)的。

列举一些我们平时比较关心的功能:

分析索引使用情况;检查分析重复索引;获取用来分析事故现场的信息;统计分析查询性能问题;汇总服务配置状态等信息;实现不加锁修改表结构;检查master和slave的数据一致性 等等。

这些在工具集都有涉及,整套工具共有32个命令,涉及到了MySQL操作的方方面面。

如何安装

关于PerconaToolKit安装,Percona官网中针对不同系统都提供了针对性的方案。这里主要介绍centos7的两种安装方法:RPM和通用包。

RPM方式

此种方式优点在于yum可以帮助我们自动处理依赖关系。

$ wget percona.com/get/percona/percona-toolkit.rpm
$ yum install percona-toolkit

通用包方式

比较简单,只需将别人已打包好的可执行文件解压到相应目录即可使用。不同于RPM,这里的依赖包需自己手动解决。

本人遇到的系统依赖包有如下这些,可直接使用yum安装:

$ yum install -y perl-DBI perl-DBD-MySQL perl-IO-Socket-SSL perl-TermReadKey perl-Digest-MD5

下载并解压安装,三步三条命令,如下:

$ wget percona.com/get/percona-toolkit.tar.gz
$ tar zxvf percona.tar.gz -C /usr/local/percona-toolkit
$ ln -s percona-toolkit-2.2.20/ percona-toolkit

配置环境变量并执行source命令使环境变量生效:

$ vim /etc/profile.d/percona-toolkit.sh
PATH=/usr/local/percona-toolkit/bin:$PATH
export PATH
$ source /etc/profile.d/percona-toolkit.sh

PerconToolkit到此安装结束,不是太复杂。

命令介绍

PerconaToolkit提供了相当多的命令,每个命令都有其特定使用场景。我们可以进入到/usr/local/percona-toolkit/bin目录下查看。这里先对每个命令做简单的介绍。

pt-index-usage 检查数据库索引使用情况;
pt-slave-find 查找打印mysql主从服务器关系树;
pt-archiver 可用于清理与归档数据;
pt-ioprofile 查看进程IO,打印表文件及其IO活动;
pt-slave-restart 监控一个或多个从服务器,停止则自动重启;
pt-config-diff 快速比较MySQL配置,支持文件与服务器比较方式;
pt-kill 可以根据一定规则kill连接,如查询超过10秒的连接;
pt-stalk 出现问题时自动触发数据收集,规则自定义,如连接数大于某值触发;
pt-sift 用于浏览pt-stalk收集问题诊断数据
pt-deadlock-logger 导出记录死锁信息,当期只有Innodb死锁信息可用
pt-mext 多次采集变量数据,在同一行进行展示,便于数据比较
pt-summary 收集系统摘要信息,如CPU、内存、硬盘和网卡等等各种系统信息
pt-diskstats 一个交互式的I/O监控工具
pt-mysql-summary 汇总MySQL各种信息,如版本、命令统计、用户、变量等信息;
pt-table-checksum 可用于验证数据库主从数据的完整性一致性;
pt-duplicate-key-checker 可用于检查表中的重复索引,提供索引使用效率;
pt-online-schema-change 可用于无锁定修改表结构,减少对生产环境业务的影响;
pt-table-sync 实现快速高效同步表数据,可用来修复pt-table-checksum的错误表;
pt-fifo-split 模拟分隔文件,多次传递给FIFO,非正真切割。对大文件导入非常有用;
pt-pmp 选中程序获取GDB堆栈信息,并进行汇总
pt-table-usage 分析查询如何使用以及涉及哪些表,如一次查询更新,查询以及关联等;
pt-find 根据指定条件查询MySQL相关表和操作,如查找所有创建超过一天的表或者查找所有更改InnoDb表结构的操作等,与linux的find很相似;
pt-query-digest 查询性能分析利器,可通过慢查询日志,processlist信息和tcpdump抓包数据汇总查询数据,帮助我们分析;
pt-fingerprint 获取sql语句指纹,例如select name from user where id = 1指纹就是 select name from user where id = ?上面的pt-query-digest也是按类此方式进行分组汇总的;
pt-upgrade 可用于验证不同服务器上的查询结果或者日志是否相同;
pt-show-grants 规范化和打印mysql权限信息,让复制、比较mysql权限,而且还可以进行版本控制;
pt-variable-advisor 分析MySQL的变量,并就其可能出现的问题给出建议;
pt-fk-error-logger 可用于获取和记录MySQL外键的错误信息;
pt-visual-explain 格式化输出explain分析结果,以树状形式展示;
pt-heartbeat 可用于检测主从延迟时间;
pt-slave-delay 可实现从库延迟复制,防止某些错误操作主库执行,从库也立即执行;
pt-align 可用来对齐美化其他工具的输出,编者感觉用处不大;

32个命令介绍结束,想了解更多内容,可以查阅官方手册

MYSQL笔记