在docker下安装pt-query-digest工具


前言

本章使用的测试数据库为GreatSQL8.0.25版本

(Wed Aug  3 16:17:03 2022)[root@GreatSQL][(none)]>select version();
+-----------+
| version() |
+-----------+
| 8.0.25-16 |
+-----------+
1 row in set (0.00 sec)

一、啥是pt-query-digest

对于数据库的日常管理工作,性能管理肯定会是占比最大的一块,“工欲善其事必先利其器”,一个好的性能分析工具会极大的提高数据库性能管理的效率,而pt-query-digest就是专门针对 MySQL 数据库慢查询日志的一个强力分析工具,相比于mysqldumpslow,其分析结果更加具体和完善。

pt-query-digest属于Percona Toolkit工具集中最常用的一种,号称 MySQL DBA 必备工具之一,其能够分析MySQL数据库的slow log 、 general log 、 binary log文件,同时也可以使用 show processlist 或从tcpdump 抓取的 MySQL 协议数据来进行分析。

二、开始安装

进入想安装的docker容器中

docker exec -it greatsql /bin/bash

安装最新的 percona release package

yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm

percona-toolkit

yum install percona-toolkit

验证 pt-queyr-digest

pt-query-digest --help

三、开始使用

安装完就可以使用percona-toolkit
记得要开启慢日志哦

# 查看慢日志是否开启
SHOW VARIABLES LIKE '%slow%';
(Wed Aug 17 10:30:22 2022)[root@GreatSQL][(none)]>SHOW VARIABLES LIKE '%slow%';
+-----------------------------------+-------------------------+
| Variable_name                     | Value                   |
+-----------------------------------+-------------------------+
| log_slow_admin_statements         | ON                      |
| log_slow_extra                    | ON                      |
| log_slow_filter                   |                         |
| log_slow_rate_limit               | 1                       |
| log_slow_rate_type                | session                 |
| log_slow_slave_statements         | ON                      |
| log_slow_sp_statements            | ON                      |
| log_slow_verbosity                |                         |
| slow_launch_time                  | 2                       |
| slow_query_log                    | ON                      |
| slow_query_log_always_write_time  | 10.000000               |
| slow_query_log_file               | /data/GreatSQL/slow.log |
| slow_query_log_use_global_control |                         |
+-----------------------------------+-------------------------+
13 rows in set (0.03 sec)
我们GreatSQL慢日志默认放在/data/GreatSQL/slow.log下
 
# 查看慢日志执行时间
(Wed Aug 17 10:30:27 2022)[root@GreatSQL][(none)]>SHOW VARIABLES LIKE '%long_query_time%';
+-----------------+----------+
| Variable_name   | Value    |
+-----------------+----------+
| long_query_time | 0.100000 |
+-----------------+----------+
1 row in set (0.00 sec)
 
# 开启慢日志命令
set global slow_query_log=on/off;
# 配置慢日志执行时间
set global long_query_time=0.5;

用法

语法:pt-query-digest [OPTIONS] [FILES] [DSN]

OPTIONS作用
–hostmysql地址
–usermysql用户名
–passwordmysql密码
–since从指定时间点开始分析,如 指定日期YYYY-MM-DD [HH:MM:SS],1d/h/m等
–until配合–since,指定时间段内的日志分析,从xx日期开始,xx日期截止
–type指定类型,默认是slowlog,还可以指定binlog,tcpdump,genlog等类型

其它选项可以查阅官方文档pt-query-digest (percona.com)

常见用法

直接分析慢日志文件,并将结果输出到txt文本

[root@greatsql GreatSQL]# pt-query-digest /data/GreatSQL/slow.log > /tmp/slow-digest2.txt
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
	LANGUAGE = (unset),
	LC_ALL = (unset),
	LANG = "en_US.utf8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

分析最近xx小时内的慢日志

如最近1小时内的慢日志分析

pt-query-digest --since=1h /data/GreatSQL/slow.log > /tmp/slow-digest2.txt

分析指定时间范围内的慢日志

pt-query-digest --since '2022-08-17 00:00:00' --until '2022-08-17 23:59:59' /data/GreatSQL/slow.log > /tmp/slow-digest2.txt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白努力学数据库

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值