概述
慢SQL一直是数据运维中的痛点问题,如何有效诊断慢SQL根因是当前一大难题,工具结合openGauss自身特点融合了现网DBA慢SQL诊断经验,支持慢SQL根因分析,能同时按照可能性大小输出多个根因并提供针对性的建议。
环境部署
- 数据库运行正常。
- 指标采集系统(即openGauss exporter、reprocessing exporter以及node exporter)运行正常。
使用指导
假设用户已经初始化配置文件目录confpath,则可以通过下述命令实现本特性的功能:
-
仅启动慢SQL诊断功能(输出Top3根因),启动命令如下(更多用法参考对service子命令的说明):
gs_dbmind service start -c confpath --only-run slow_query_diagnosis
-
用户交互式慢SQL诊断,命令如下:
gs_dbmind component slow_query_diagnosis show -c confpath --query SQL --start-time timestamps0 --end-time timestamps1
-
用户手动清理历史预测结果,命令如下:
gs_dbmind component slow_query_diagnosis clean -c confpath --retention-days DAYS
-
停止已启动的服务,命令如下:
gs_dbmind service stop -c confpath
更多示例请参见慢SQL诊断功能介绍与测试。
获取帮助
模块命令行说明:
gs_dbmind component slow_query_diagnosis --help
usage: [-h] -c DIRECTORY [--query SLOW_QUERY]
[--start-time TIMESTAMP_IN_MICROSECONDS]
[--end-time TIMESTAMP_IN_MICROSECONDS] [--retention-days DAYS]
{show,clean}
Slow Query Diagnosis: Analyse the root cause of slow query
positional arguments:
{show,clean} choose a functionality to perform
optional arguments:
-h, --help show this help message and exit
-c DIRECTORY, --conf DIRECTORY
set the directory of configuration files
--query SLOW_QUERY set a slow query you want to retrieve
--start-time TIMESTAMP_IN_MICROSECONDS
set the start time of a slow SQL diagnosis result to
be retrieved
--end-time TIMESTAMP_IN_MICROSECONDS
set the end time of a slow SQL diagnosis result to be
retrieved
--retention-days DAYS
clear historical diagnosis results and set the maximum
number of days to retain data
命令参考
表 1 gs_dbmind component slow_query_diagnosis 命令行说明
| ||
常见问题处理
- 如果用户对没有执行过的慢SQL执行交互式诊断命令,则无法给出诊断结果。
- exporter指标采集功能没有启动时运行慢SQL诊断功能,此时功能无法正常运行。
- 配置文件中的参数重新设置后,需要重新启动服务进程才能生效。
- 使用慢SQL的交互诊断功能时,工具基于RPC和数据采集服务获取必要的数据,因此如果RPC和数据采集服务没启动则无法诊断。
- 在使用diagnosis功能进行交互诊断时,工具会对输入的SQL,database进行检测,如果发现属于非法输入则无法诊断。
- 慢SQL诊断中,SMALL_SHARED_BUFFER需要采集相关表的字段信息,因此用户需要注意确保opengauss_exporter连接用户具有该表所在schema的权限。