【 使用环境 】生产环境
【 OB or 其他组件 】OB For MySql
【 使用版本 】5.7.25-0ceanBase_CE-v4.2.1.4
【问题描述】如何获取某个时间范围的慢SQL。对方夜晚调用我这边接口,总是超时。前台又无法复现。
【复现路径】无,只是调用我的接口
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):
【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)
【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手 ] 即可召唤小助手,欢迎试用!
1 个赞
论坛小助手
2026 年2 月 11 日 10:34
#3
针对您所描述的问题,建议您可以使用 obdiag 工具来收集特定时间范围内的慢 SQL 信息。这将有助于我们了解在超时发生的时间段内,数据库中执行了哪些 SQL 语句,进而找到可能的原因。
日志采集场景: SQL性能问题
日志采集命令: obdiag gather scene run --scene=observer.perf_sql --env “{db_connect=’-h<您的数据库IP> -P<您的数据库端口> -u<您的用户名> -p<您的密码> -D<您的数据库名>’, trace_id=’<您可能有的trace_id>’}”
请您按照上述命令格式填写对应的数据库 IP 地址、端口号、用户名、密码及数据库名称等必要信息,并选择一个与夜间调用接口时间相近的时间点来设置 trace_id。如果您不知道具体的 trace_id,可以忽略该项参数。
同时,为了更全面地定位问题,请您回答以下几个问题:
能否提供超时现象发生的大概时间段?
是否有执行过大规模的数据操作或修改表结构的操作?
在发生超时前后的系统资源使用情况(如 CPU、内存、I/O 等)是否有明显变化?
是否启用了审计日志?如果有,能否提供相关时段的审计日志文件?
能否分享一下相关的 SQL 语句及其执行计划?
这些问题的答案将有助于我们更快地找到问题的根源。感谢您的配合!
附上敏捷诊断工具 obdiag 使用帮助链接
1 个赞