Mysql 慢日志分析工具percona-toolkit

Percona Toolkit是一系列用于MySQL和MongoDB的高性能命令行工具,包括pt-query-digest用于分析查询性能,pt-archiver帮助归档旧数据,pt-config-diff对比MySQL配置,pt-kill杀死特定查询,pt-online-schema-change安全更改表结构,pt-mongodb-query-digest和pt-mongodb-summary则关注MongoDB的查询统计和集群信息。这些工具旨在提高数据库性能,管理和监控。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装必要的依赖以及软件

cd /usr/local/src
wget percona.com/get/percona-toolkit.tar.gz
tar zxf percona-toolkit.tar.gz
cd percona-toolkit-2.2.19
perl Makefile.PL PREFIX=/usr/local/percona-toolkit
make && make install

加入系统变量

export PATH="/usr/local/percona-toolkit/bin/:$PATH"
source  /etc/profile

使用方法

pt-query-digest mysql_slow_query.log --limit=20 > res.log
pt-query-digest --user=pt_query_digest --password=pbLTmEXetFCDYbjt --review  h=127.0.0.1,D=pt_query_digest,t=query_history--create-review-table mysql_slow_query.log

其他工具

pt-align
使用此工具将其他命令行工具(vmstat、iostat、pt-diskstats)的输出对齐为列格式,使其更易于阅读。

pt-archiver
该工具使用户可以归档特定表中的旧记录,尤其是在繁忙的大型 OLTP 数据库服务器上。其目的是使用影响低、只进的作业来运行作业,以从表中剔除旧数据,而不会对 OLTP 查询产生太大影响。

pt-config-diff
区分 MySQL 配置文件和服务器变量。它可以使用配置文件或通过指定的 DSN 执行差异。

pt-deadlock-logger
记录有关给定 DSN 上的 MySQL 死锁的信息。信息打印到 STDOUT(您可以使用管道或重定向将其存储到文件中),也可以通过指定--dest将其保存到表中。除非指定了--run-time 或--iterations ,否则该工具将永远运行。

pt-diskstats
打印 GNU/Linux 的磁盘 I/O 统计信息。它有点类似于 iostat,但它是交互式的并且更详细。它可以分析从另一台机器收集的样本。

pt-duplicate-key-checker
该工具检查 MySQL 表中是否存在重复或冗余索引和外键。连接选项从 MySQL 选项文件中读取。

pt-fifo-split
将文件和管道拆分为 fifo。如果没有指定文件,它将通过标准输入读取。当您要加载或读取一个大文件时,这很有用,然后将其分块以产生最小的影响并将其存储到您的数据库中。

pt-find
它搜索 MySQL 表并执行操作,类似于 GNU find。默认操作是打印数据库和表名。此工具非常有用,例如,如果您想查找非 InnoDB 格式的表,然后将其转换为您想要的操作之一。

pt-fingerprint
该工具将查询转换为指纹。查询可以来自任何 RDBMS 类型的查询,因为它根据给定的非确定性值转换查询。基本上,这是为 MySQL 类型的查询而设计的。使用–query选项,将选项的值转换为指纹。如果没有选项,则将命令行参数视为文件,并从文件中读取并转换分号分隔的查询。当文件不存在而不是 - 时,它会读取标准输入。

pt-fk-error-logger
记录有关给定 DSN 上的外键错误的信息。

pt-heartbeat
监控 MySQL 或 PostgreSQL 复制延迟。您可以使用它来更新主服务器或监控副本。如果可能,从您的 .my.cnf 文件中读取 MySQL 连接选项。

pt-index-usage
从日志中读取查询并分析它们如何使用索引。当您有未使用的索引或重复索引并将打印ALTER语句以删除索引时,它很有用。

pt-ioprofile
观察进程 IO 并打印文件和 I/O 活动表。它通过使用 ptrace() 将 strace 附加到进程来工作,这将使其运行非常缓慢,直到 strace 分离。除了冻结服务器之外,在 strace 与它分离后,进程可能会崩溃或性能不佳,或者 strace 没有干净地分离并使进程处于睡眠状态。因此,这应该被认为是一种侵入性工具,除非您对此感到满意,否则不应在生产服务器上使用它。

pt-kill
 杀死符合特定条件的 MySQL 查询。

pt-mext
对来自 mysqladmin extended 等程序的重复输出进行分列。

pt-mongodb-query-digest
通过聚合来自 MongoDB 查询分析器的查询来报告查询使用统计信息。

pt-mongodb-summary
只需从多个来源读取或收集有关 MongoDB 集群的信息,以提供集群的概览。

pt-mysql-summary
它根据给定的 DSN 从您的 MySQL 数据库中读取或收集信息。它总结了 MySQL 数据库的状态和配置,有助于了解和概述工作数据库节点。

pt-online-schema-change
它的目的是通过--alter选项在给定的修改操作上更改表。如果您在繁忙的服务器上积极使用此工具,则可能存在风险。您可以在此处阅读有关MySQL 和 MariaDB 迁移的顶级开源工具的更多信息,该工具解释了它适用于何处。

pt-pg-summary
此工具仅收集 PostgreSQL 服务器的信息。您可以在此处阅读更多信息使用 pt-pg-summary Percona Toolkit for PostgreSQL。

pt-pmp
聚合选定程序的 GDB 堆栈跟踪。它是一个只读工具,用于收集 GDB stactrace,已知 GDB 会冻结一段时间,并可能影响 MySQL 一段时间无响应。因此,如果您需要高级调查,例如无响应的 MySQL 数据库或导致您怀疑的特定事件崩溃,请使用此工具。除了冻结服务器之外,在 GDB 与服务器分离后,服务器还存在崩溃或性能不佳的风险。

pt-query-digest
分析来自慢速、进程列表、tcpdump、通用和二进制日志文件的MySQL 查询。默认情况下,查询按指纹分组(其他选项可以是表或提炼)并按查询时间的降序报告(即最慢的查询在前)。

pt-secure-collect
它具有与 pt-stalk 类似的任务,但集成了 pt-summary 和 pt-mysql-summary 然后加密数据。

pt-show-grants
规范化和打印 MySQL 授权,以便您可以有效地复制、比较和版本控制它们。当您必须保留用户授权并确定是否有更改以反映更改是否具有安全威胁时也很有用。

pt-sift
浏览 pt-stalk 创建的文件。

pt-slave-delay
使您的 MySQL 副本根据需要启动或停止,以使其落后于主服务器。如果您正在设置 DR 环境并要求延迟该节点,这将非常有用,这样它就不会影响主节点所经历的灾难并避免复制即时数据。

pt-slave-find
查找并打印 MySQL 副本的复制层次结构树。

pt-slave-restart
监视一个或多个 MySQL 复制从站是否有错误,如果复制停止,则尝试重新启动复制。当您想要跳过影响副本执行复制事件或事务的错误时,此工具很有用。

pt-stalk
出现问题时收集有关 MySQL 的取证数据。它等待触发条件发生,然后收集数据以帮助诊断问题。这是一个非常有用的工具,尤其适用于性能调整或诊断崩溃的 MySQL 数据库服务器,以确定罪魁祸首。

pt-总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值