前言

Percona Toolkit 是一套专为 MySQL 和 MongoDB 数据库打造的强大运维工具集,涵盖监控、诊断、优化、数据维护等核心场景。无论你是 DBA 还是开发者,它都能帮助你更高效、更安全地管理数据库,堪称数据库运维中的“瑞士军刀”。

下载与安装

Percona Toolkit 下载地址:https://www.percona.com/percona-toolkit

版本选择建议

  • CentOS 7:推荐使用 3.6.0 版本
  • CentOS 8 及以上:可直接使用最新版(目前为 3.7.1)

以 3.6.0 为例:

下载后解压即可使用:

1
2
3
4
5
6
7
8
9
10
11
12
13
tar -xf /soft/percona-toolkit-3.6.0_x86_64.tar.gz

# 查看全部工具
ls /soft/percona-toolkit-3.6.0/bin

pt-align pt-find pt-kill pt-pmp pt-stalk
pt-archiver pt-fingerprint pt-mext pt-query-digest pt-summary
pt-config-diff pt-fk-error-logger pt-mongodb-index-check pt-secure-collect pt-table-checksum
pt-deadlock-logger pt-galera-log-explainer pt-mongodb-query-digest pt-show-grants pt-table-sync
pt-diskstats pt-heartbeat pt-mongodb-summary pt-sift pt-table-usage
pt-duplicate-key-checker pt-index-usage pt-mysql-summary pt-slave-delay pt-upgrade
pt-eustack-resolver 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

Percona Toolkit 3.6 版本共包含 40 个工具,覆盖数据库运维的方方面面。

重要更新

Percona Toolkit 3.7.0 起,为与 MySQL 8.0+ 官方术语保持一致,以下工具名称进行了更新:

旧命令 新命令 功能描述
pt-slave-find pt-replica-find 发现并展示复制拓扑结构
pt-slave-restart pt-replica-restart 监控并自动重启复制进程

注意:在 3.7.x 版本中,旧名称可能仍作为别名保留,确保向后兼容,但官方推荐使用新命令。

验证方法:

1
2
$ diff pt-slave-find pt-replica-find
$ diff pt-slave-restart pt-replica-restart

输出为空则表示两者完全相同。

工具分类

一、性能分析与查询优化工具

帮助定位 SQL 性能瓶颈,优化查询效率。

工具 主要用途
pt-query-digest 分析慢查询日志,生成可视化报告
pt-visual-explain EXPLAIN 结果转为树形图,直观展示执行计划
pt-fingerprint 将 SQL 查询标准化,便于归类与统计
pt-index-usage 分析慢日志,找出未使用或低效的索引
pt-pmp 对 MySQL 进程进行堆栈采样,定位性能瓶颈
pt-ioprofile 监控进程的 I/O 行为,识别磁盘瓶颈
pt-mext 并行监控 MySQL 状态变量变化
pt-variable-advisor 分析 MySQL 配置参数,给出调优建议

典型场景:定期使用 pt-query-digest 分析慢日志,结合 pt-index-usage 优化索引策略。

二、复制管理与高可用工具

专注于 MySQL 复制环境的监控、维护与故障恢复。

工具 主要用途
pt-heartbeat 实时测量主从复制延迟
pt-slave-delay / pt-replica-delay 设置从库延迟复制(常用于数据恢复测试)
pt-slave-find / pt-replica-find 自动发现并展示复制拓扑
pt-slave-restart / pt-replica-restart 监控从库错误并自动重启复制
pt-table-checksum 在线校验主从数据一致性
pt-table-sync 安全修复主从数据不一致
pt-galera-log-explainer 分析 Galera Cluster 日志

典型场景:使用 pt-heartbeat 监控延迟,配合 pt-table-checksum 定期校验数据一致性。

三、数据维护与模式管理工具

支持在线数据归档、表结构变更,最小化业务影响。

工具 主要用途
pt-archiver 安全归档或删除大表数据,避免锁表
pt-online-schema-change 在线执行 DDL,无需锁表(类似 GitHub 的 gh-ost)
pt-fifo-split 将大文件分割为 FIFO 管道,便于并行处理
pt-duplicate-key-checker 检测冗余或重复的索引
pt-fk-error-logger 记录外键约束错误
pt-upgrade 验证不同 MySQL 版本间的查询结果一致性
pt-table-usage 分析表的访问模式

典型场景:使用 pt-online-schema-change 安全增加字段,用 pt-archiver 定期清理历史数据。

四、系统监控与诊断收集工具

系统级监控与故障信息收集,便于事后分析。

工具 主要用途
pt-stalk 根据触发条件自动收集系统诊断信息
pt-deadlock-logger 记录 MySQL 死锁信息
pt-diskstats 监控磁盘 I/O 统计
pt-secure-collect 安全收集诊断数据并上传至 Percona 平台
pt-summary 汇总系统硬件与配置信息
pt-k8s-debug-collector 在 Kubernetes 环境中收集诊断信息

典型场景:当系统负载突增时,pt-stalk 自动收集当时的进程、内存、IO 等状态。

五、数据库配置与安全工具

协助进行配置管理、权限分析与安全审查。

工具 主要用途
pt-config-diff 比较 MySQL 配置文件差异
pt-show-grants 规范化显示用户权限,便于审计
pt-sift 强大的日志浏览与搜索工具
pt-fingerprint 查询标准化,便于日志分析

典型场景:使用 pt-config-diff 对比测试与生产环境配置,用 pt-show-grants 进行权限复核。

六、多数据库平台支持

除了 MySQL,还支持 MongoDB 与 PostgreSQL。

工具 数据库 主要用途
pt-mysql-summary MySQL 快速概览 MySQL 环境
pt-mongodb-summary MongoDB MongoDB 环境概览
pt-mongodb-query-digest MongoDB 分析 MongoDB 慢查询
pt-mongodb-index-check MongoDB 检查索引使用情况
pt-pg-summary PostgreSQL PostgreSQL 环境概览

七、实用辅助工具

提升日常运维效率的小工具。

工具 主要用途
pt-align 美化文本输出对齐
pt-find 查找数据库文件(类似 find 命令)
pt-kill 根据规则终止查询
pt-show-grants 清晰展示用户权限

总结

Percona Toolkit 的强大之处在于它覆盖了数据库生命周期的各个环节,从日常监控到紧急故障处理,从性能优化到数据安全。

  1. 按场景选用工具:根据需求直接找到对应工具,无需全部掌握。
  2. 版本注意:若使用 MySQL 8.0+,建议使用 3.7.x 并以 pt-replica-* 系列命令为主。
  3. 安全第一:在生产环境使用前,务必在测试环境验证命令效果。
  4. 组合使用:很多工具可组合使用,例如 pt-query-digest + pt-visual-explain 进行深度 SQL 分析。
  5. 官方文档https://www.percona.com/doc/percona-toolkit 是进一步学习的最佳资源。

熟练掌握其中部分核心工具,将极大提升你的数据库运维能力与工作效率。