* GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。
Percona Toolkit 神器全攻略
Percona Toolkit 神器全攻略系列共八篇分为
文章名 文章名 Percona Toolkit 神器全攻略 Percona Toolkit 神器全攻略(实用类) Percona Toolkit 神器全攻略(配置类) Percona Toolkit 神器全攻略(监控类) Percona Toolkit 神器全攻略(系统类) Percona Toolkit 神器全攻略(开发类) Percona Toolkit 神器全攻略(复制类) Percona Toolkit 神器全攻略(性能类)
全文约定:$
为命令提示符、greatsql>
为GreatSQL数据库提示符。在后续阅读中,依据此约定进行理解与操作
Percona Toolkit 简介
Percona Toolkit简称(PT工具),是一组高级命令行工具,用于管理MySQL/GreatSQL的工具。可以用它来执行各种难以手动执行的MySQL/GreatSQL和系统任务。其功能包括检查主从复制的数据一致性、检查重复索引、定位IO占用高的表文件、在线DDL等,DBA熟悉掌握PT工具后将极大提高工作效率。
介绍文档:https://docs.percona.com/percona-toolkit/index.html
本系列只介绍和探讨Percona Toolkit中针对MySQL/GreatSQL数据库的实用工具
Percona Toolkit 安装
本系列所使用环境如下
名称 配置 操作系统 Linux myarch 6.6.3-arch1-1 x86_64 GNU/Linux GNU Libc ldd (GNU libc) 2.38 数据库 GreatSQL 8.0.32-25, Release 25, Revision 79f57097e3f
使用包管理器安装
对于 Debian 或 Ubuntu:
$ sudo apt-get install percona-toolkit
对于 RHEL 或 CentOS:
$ sudo yum install percona-toolkit
包管理器安装较为简单,这里就不做示范
使用TAR包安装
前往➥https://www.percona.com/downloads,选择合适的版本下载Percona Toolkit
选择合适自己的CPU架构和操作系统版本Percona Toolkit包
创建文件夹pt,将下载的安装包保存于此,并检查sha256sum码,确保完整性:
$ mkdir /usr/local/pt
$ sha256sum -c percona-toolkit-3.5.7_x86_64.tar.gz.sha256sum
percona-toolkit-3.5.7_x86_64.tar.gz: OK
解压文件,并添加到环境变量
$ tar -xvf percona-toolkit-3.5.7_x86_64.tar.gz
$ echo 'export PATH=/usr/local/pt/percona-toolkit-3.5.7/bin:$PATH' >> ~/.bash_profile
$ source ~/.bash_profile
随机选择一个工具查看版本号,确认安装成功
$ pt-online-schema-change --version
pt-online-schema-change 3.5.7
使用RPM包安装
以下示范环境为 Centos7 - X86_64架构 - ldd (GNU libc) 2.17
下载好3.5.7版本的Centos7 RPM包
$ ls
percona-toolkit-3.5.7-1.el7.x86_64.rpm
使用rpm命令安装Percona Toolkit,如果此时有报缺失依赖,用YUM安装即可
$ rpm -ivh --nodeps percona-toolkit-3.5.7-1.el7.x86_64.rpm
随机选择一个工具查看版本号,确认安装成功
$ pt-online-schema-change --version
pt-online-schema-change 3.5.7
Percona Toolkit 包含的工具
3.5.7版本Percona Toolkit工具拥有39个工具,将这39个工具分为七大类(实用类、配置类、监控类、系统类、开发类、复制类、性能类)
$ ls
pt-align pt-fingerprint pt-mext pt-query-digest pt-summary
pt-archiver pt-fk-error-logger pt-mongodb-index-check pt-secure-collect pt-table-checksum
pt-config-diff pt-galera-log-explainer pt-mongodb-query-digest pt-show-grants pt-table-sync
pt-deadlock-logger pt-heartbeat pt-mongodb-summary pt-sift pt-table-usage
pt-diskstats pt-index-usage pt-mysql-summary pt-slave-delay pt-upgrade
pt-duplicate-key-checker pt-ioprofile pt-online-schema-change pt-slave-find pt-variable-advisor
pt-fifo-split pt-k8s-debug-collector pt-pg-summary pt-slave-restart pt-visual-explain
pt-find pt-kill pt-pmp pt-stalk`
实用类
工具命令 工具用途 pt-align 将其它工具输出内容与列对齐 pt-archiver 将表中的行存档到另一个表或文件中 pt-find 查找表并执行命令 pt-fingerprint 将查询转成密文 pt-kill Kill掉符合条件的SQL pt-k8s-debug-collector 从 k8s/OpenShift 集群收集调试数据(日志、资源状态等) pt-secure-collect 收集、清理、打包和加密数据
配置类
工具命令 工具描述 pt-config-diff 比较数据库配置文件和参数 pt-mysql-summary 对MySQL/GreatSQL配置和STATUS进行汇总 pt-variable-advisor 分析参数,并提出建议
监控类
工具命令 工具描述 pt-deadlock-logger 提取和记录MySQL/GreatSQL死锁 pt-fk-error-logger 提取和记录外键信息 pt-mext 并行查看STATUS样本信息 pt-query-digest 分析查询日志,并产生报告 pt-mongodb-summary 收集有关 MongoDB 集群的信息 pt-pg-summary 收集有关 PostgreSQL 集群的信息
系统类
工具命令 工具描述 pt-diskstats 查看系统磁盘状态 pt-fifo-split 模拟切割文件并输出 pt-ioprofile 查询进程IO并打印一个IO活动表 pt-sift 浏览由pt-stalk创建的文件 pt-stalk 出现问题时,收集诊断数据 pt-summary 收集和显示系统概况
开发类
工具命令 工具描述 pt-duplicate-key-checker 列出并删除重复的索引和外键 pt-online-schema-change 在线修改表结构 pt-show-grants 规范化和打印权限 pt-upgrade 在多个服务器上执行查询,并比较不同
复制类
工具命令 工具描述 pt-heartbeat 监控MySQL/GreatSQL复制延迟 pt-slave-delay 设定从落后主的时间 pt-slave-find 查找和打印所有MySQL/GreatSQL复制层级关系 pt-slave-restart 监控Salve错误,并尝试重启Salve pt-table-checksum 校验主从复制一致性 pt-table-sync 高效同步表数据 pt-galera-log-explainer 对多个Galera日志进行过滤、聚合和汇总
性能类
工具命令 工具描述 pt-index-usage 分析日志中索引使用情况,并出报告 pt-pmp 查询结果跟踪,并汇总跟踪结果 pt-table-usage 分析日志中查询并分析表使用情况 pt-visual-explain 格式化执行计划 pt-mongodb-index-check MongoDB 索引执行检查 pt-mongodb-query-digest 通过聚合来自 MongoDB 查询分析器的查询来报告查询使用统计信息
接下来的章节中将对这七类的工具进行详细讲解 :)
Percona Toolkit 神器全攻略
Percona Toolkit 神器全攻略系列共八篇分为
文章名 | 文章名 |
---|---|
Percona Toolkit 神器全攻略 | Percona Toolkit 神器全攻略(实用类) |
Percona Toolkit 神器全攻略(配置类) | Percona Toolkit 神器全攻略(监控类) |
Percona Toolkit 神器全攻略(系统类) | Percona Toolkit 神器全攻略(开发类) |
Percona Toolkit 神器全攻略(复制类) | Percona Toolkit 神器全攻略(性能类) |
全文约定:
$
为命令提示符、greatsql>
为GreatSQL数据库提示符。在后续阅读中,依据此约定进行理解与操作
Percona Toolkit 简介
Percona Toolkit简称(PT工具),是一组高级命令行工具,用于管理MySQL/GreatSQL的工具。可以用它来执行各种难以手动执行的MySQL/GreatSQL和系统任务。其功能包括检查主从复制的数据一致性、检查重复索引、定位IO占用高的表文件、在线DDL等,DBA熟悉掌握PT工具后将极大提高工作效率。
介绍文档:https://docs.percona.com/percona-toolkit/index.html
本系列只介绍和探讨Percona Toolkit中针对MySQL/GreatSQL数据库的实用工具
Percona Toolkit 安装
本系列所使用环境如下
名称 | 配置 |
---|---|
操作系统 | Linux myarch 6.6.3-arch1-1 x86_64 GNU/Linux |
GNU Libc | ldd (GNU libc) 2.38 |
数据库 | GreatSQL 8.0.32-25, Release 25, Revision 79f57097e3f |
使用包管理器安装
对于 Debian 或 Ubuntu:
$ sudo apt-get install percona-toolkit
对于 RHEL 或 CentOS:
$ sudo yum install percona-toolkit
包管理器安装较为简单,这里就不做示范
使用TAR包安装
前往➥https://www.percona.com/downloads,选择合适的版本下载Percona Toolkit
选择合适自己的CPU架构和操作系统版本Percona Toolkit包
创建文件夹pt,将下载的安装包保存于此,并检查sha256sum码,确保完整性:
$ mkdir /usr/local/pt
$ sha256sum -c percona-toolkit-3.5.7_x86_64.tar.gz.sha256sum
percona-toolkit-3.5.7_x86_64.tar.gz: OK
解压文件,并添加到环境变量
$ tar -xvf percona-toolkit-3.5.7_x86_64.tar.gz
$ echo 'export PATH=/usr/local/pt/percona-toolkit-3.5.7/bin:$PATH' >> ~/.bash_profile
$ source ~/.bash_profile
随机选择一个工具查看版本号,确认安装成功
$ pt-online-schema-change --version
pt-online-schema-change 3.5.7
使用RPM包安装
以下示范环境为 Centos7 - X86_64架构 - ldd (GNU libc) 2.17
下载好3.5.7版本的Centos7 RPM包
$ ls
percona-toolkit-3.5.7-1.el7.x86_64.rpm
使用rpm命令安装Percona Toolkit,如果此时有报缺失依赖,用YUM安装即可
$ rpm -ivh --nodeps percona-toolkit-3.5.7-1.el7.x86_64.rpm
随机选择一个工具查看版本号,确认安装成功
$ pt-online-schema-change --version
pt-online-schema-change 3.5.7
Percona Toolkit 包含的工具
3.5.7版本Percona Toolkit工具拥有39个工具,将这39个工具分为七大类(实用类、配置类、监控类、系统类、开发类、复制类、性能类)
$ ls
pt-align pt-fingerprint pt-mext pt-query-digest pt-summary
pt-archiver pt-fk-error-logger pt-mongodb-index-check pt-secure-collect pt-table-checksum
pt-config-diff pt-galera-log-explainer pt-mongodb-query-digest pt-show-grants pt-table-sync
pt-deadlock-logger pt-heartbeat pt-mongodb-summary pt-sift pt-table-usage
pt-diskstats pt-index-usage pt-mysql-summary pt-slave-delay pt-upgrade
pt-duplicate-key-checker pt-ioprofile pt-online-schema-change pt-slave-find pt-variable-advisor
pt-fifo-split pt-k8s-debug-collector pt-pg-summary pt-slave-restart pt-visual-explain
pt-find pt-kill pt-pmp pt-stalk`
实用类
工具命令 | 工具用途 |
---|---|
pt-align | 将其它工具输出内容与列对齐 |
pt-archiver | 将表中的行存档到另一个表或文件中 |
pt-find | 查找表并执行命令 |
pt-fingerprint | 将查询转成密文 |
pt-kill | Kill掉符合条件的SQL |
pt-k8s-debug-collector | 从 k8s/OpenShift 集群收集调试数据(日志、资源状态等) |
pt-secure-collect | 收集、清理、打包和加密数据 |
配置类
工具命令 | 工具描述 |
---|---|
pt-config-diff | 比较数据库配置文件和参数 |
pt-mysql-summary | 对MySQL/GreatSQL配置和STATUS进行汇总 |
pt-variable-advisor | 分析参数,并提出建议 |
监控类
工具命令 | 工具描述 |
---|---|
pt-deadlock-logger | 提取和记录MySQL/GreatSQL死锁 |
pt-fk-error-logger | 提取和记录外键信息 |
pt-mext | 并行查看STATUS样本信息 |
pt-query-digest | 分析查询日志,并产生报告 |
pt-mongodb-summary | 收集有关 MongoDB 集群的信息 |
pt-pg-summary | 收集有关 PostgreSQL 集群的信息 |
系统类
工具命令 | 工具描述 |
---|---|
pt-diskstats | 查看系统磁盘状态 |
pt-fifo-split | 模拟切割文件并输出 |
pt-ioprofile | 查询进程IO并打印一个IO活动表 |
pt-sift | 浏览由pt-stalk创建的文件 |
pt-stalk | 出现问题时,收集诊断数据 |
pt-summary | 收集和显示系统概况 |
开发类
工具命令 | 工具描述 |
---|---|
pt-duplicate-key-checker | 列出并删除重复的索引和外键 |
pt-online-schema-change | 在线修改表结构 |
pt-show-grants | 规范化和打印权限 |
pt-upgrade | 在多个服务器上执行查询,并比较不同 |
复制类
工具命令 | 工具描述 |
---|---|
pt-heartbeat | 监控MySQL/GreatSQL复制延迟 |
pt-slave-delay | 设定从落后主的时间 |
pt-slave-find | 查找和打印所有MySQL/GreatSQL复制层级关系 |
pt-slave-restart | 监控Salve错误,并尝试重启Salve |
pt-table-checksum | 校验主从复制一致性 |
pt-table-sync | 高效同步表数据 |
pt-galera-log-explainer | 对多个Galera日志进行过滤、聚合和汇总 |
性能类
工具命令 | 工具描述 |
---|---|
pt-index-usage | 分析日志中索引使用情况,并出报告 |
pt-pmp | 查询结果跟踪,并汇总跟踪结果 |
pt-table-usage | 分析日志中查询并分析表使用情况 |
pt-visual-explain | 格式化执行计划 |
pt-mongodb-index-check | MongoDB 索引执行检查 |
pt-mongodb-query-digest | 通过聚合来自 MongoDB 查询分析器的查询来报告查询使用统计信息 |
接下来的章节中将对这七类的工具进行详细讲解 :)
《用三分钟学会一个MySQL知识》
GreatSQL数据库是一款开源免费数据库,可在普通硬件上满足金融级应用场景,具有高可用、高性能、高兼容、高安全等特性,可作为MySQL或Percona Server for MySQL的理想可选替换。
⏩GitHub : https://github.com/GreatSQL/
🆙BiliBili : https://space.bilibili.com/1363850082
(对文章有疑问或见解可去社区官网提出哦~)
加入微信交流群 | 加入QQ交流群 |