租户查询不到sql诊断

【 使用环境 】测试环境
【 OB or 其他组件 】
【 使用版本 】4.2.2.0
【问题描述】ocp接管集群所有租户查询不到sql诊断

【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)

【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!

日志采集场景: SQL性能问题
日志采集命令: obdiag gather scene run --scene=observer.perf_sql --env “{db_connect=’-h127.0.0.1 -P2881 -utest@test -p****** -Dtest’, trace_id=‘Yxx’}”

推荐使用 obdiag 工具进行日志采集,通过采集 SQL 性能相关的日志信息,可以更好地定位为什么在 OCP 管理的集群中所有租户无法查询到 SQL 诊断信息的问题。请您执行上述命令并将采集到的日志提供给我们以便确认问题所在。

另外,为了确定具体的问题,在此需要您提供一些信息:

  1. 您是否确认当前集群中有正在运行或者历史运行的 SQL 任务?
  2. 在 OCP 界面中是否有任何告警信息提示与 SQL 执行或系统资源相关的问题?
  3. 是否对集群或者租户做过最近的配置变更(如资源调整、参数修改等)?
  4. 能否提供具体的 trace_id 或者一个可复现问题的时间段以便更精准地采集日志?

附上敏捷诊断工具 obdiag 使用帮助链接

2 个赞

ob_enable_sql_audit 没开?

2 个赞

:+1: :+1: :+1:

检查过了,开了的

根据您的补充说明,您已经确认 SQL 诊断功能是开启的。接下来我们可以从以下几个方面进一步排查问题:

1. 检查租户是否启用了 SQL 审计

虽然社区版不支持完整的审计功能(参考文档片段 8),但 SQL 诊断依赖于对 SQL 执行信息的记录。请确保租户的 audit_trail 参数配置正确。可以通过以下 SQL 查询当前租户的配置:

SHOW PARAMETERS LIKE 'audit_trail';

如果返回值为 NONE,则需要将其设置为 DB 或者 DB,EXTENDED 来记录 SQL 执行信息:

ALTER SYSTEM SET audit_trail='DB' SCOPE=MEMORY;

2. 检查 OCP 的权限和配置

OCP 管控平台需要足够的权限来访问租户的 SQL 执行信息。请确认以下几点:

  • OCP 使用的管理员账户是否具有足够的权限。
  • 在 OCP 中,是否正确配置了与目标集群和租户的连接。

3. 验证 SQL 执行历史是否存在

即使 SQL 诊断功能开启,如果没有实际运行的 SQL,也可能导致查询不到诊断信息。可以通过以下 SQL 检查最近一段时间内的 SQL 执行情况:

SELECT * FROM oceanbase.__all_virtual_sql_audit WHERE tenant_id = (SELECT tenant_id FROM oceanbase.__all_tenant WHERE tenant_name = 'your_tenant_name') ORDER BY sql_id DESC LIMIT 10;

your_tenant_name 替换为实际租户名称。如果有数据返回,则说明 SQL 执行历史存在。

4. 检查 OCP 和 OBServer 的日志

如果上述步骤均正常,但仍无法查询到 SQL 诊断信息,可以进一步检查 OCP 和 OBServer 的日志:

  • OCP 日志:查看 OCP 是否有与 SQL 诊断相关的错误或警告信息。
  • OBServer 日志:使用 obdiag 工具采集 OBServer 的日志,重点关注 SQL 执行和诊断相关的部分:
obdiag gather log --start_time="YYYY-MM-DD HH:MM:SS" --end_time="YYYY-MM-DD HH:MM:SS" -t observer

YYYY-MM-DD HH:MM:SS 替换为具体的时间范围。

5. 重启 OCP 和 OBServer 服务

有时缓存或临时状态可能导致功能异常。尝试重启 OCP 和 OBServer 服务后再次测试:

# 重启 OCP
ocp-control restart

# 重启 OBServer
obd cluster restart your_cluster_name

总结

如果以上步骤仍未解决问题,请提供以下信息以便进一步分析:

  1. 租户的 audit_trail 参数配置。
  2. oceanbase.__all_virtual_sql_audit 表中的数据是否存在。
  3. OCP 和 OBServer 的相关日志文件。

希望这些步骤能帮助您定位并解决问题!如果仍有疑问,建议联系 OceanBase 的技术支持团队获取进一步帮助。

具体信息可参考以下文档:

  1. OBServer 传输加密
  2. RPC 连接认证
  3. 数据传输加密
  4. 开启安全审计
  5. 安全审计

(小助手的答复已结束,如未能解决您的问题,请继续提问并等待其他同学的回复,谢谢!)

根据官方建议,我重新搭建4.2.5的试试

使用新版本后 如果还有问题可以在这里回复下

关了重开试试

试过没用

obclient(root@(none))[oceanbase]> ALTER SYSTEM SET audit_trail=‘DB’ SCOPE=MEMORY;
ERROR 4147 (HY000): Invalid config
audit_trail为none但是设置报错


根据小助手的回复执行后报错
且执行这个命令可以查询到数据

也尝试过重启oceanbase
ocp有一个告警不清楚是否有影响
image

ob_enable_sql_audit 没生效吗