Skip to content

460.obdiag‐root‐cause‐analysis

jingshun.tq edited this page May 14, 2024 · 1 revision

一键根因分析

本文适用于独立部署 obdiag 的场景,使用 obdiag rca 命令可帮助 OceanBase 数据库相关的诊断信息分析,目前支持对 OceanBase 的异常场景进行分析,找出可能导致问题的原因。

如果是 OBD 部署的集群,可直接通过 OBD 侧诊断命令组对所选集群进行信息收集,详细命令可参考 诊断工具命令组

注:由于根因分析需要大量的内部表数据来进行分析,因此obdiag配置文件中的tenant_sys用户需要有oceanbase库下的表及视图的读权限

rca 命令组总览

obdiag rca list 
obdiag rca run --scene=<scene_name>

scene_name 包含如下:

  • disconnection:一键断连诊断,基于obproxy的诊断日志。
  • major_hold: 一键卡合并诊断。
  • lock_conflict: 一键锁冲突诊断。
  • ddl_disk_full: DDL 过程中报磁盘空间不足的问题诊断。

obdiag rca list

使用该命令可以获取根因分析目前支持的场景

obdiag rca run

使用该命令可执行指定场景的根因分析

obdiag rca run --scene=<scene_name>

选项说明如下:

选项名 是否必选 数据类型 默认值 说明
--scene string 默认为空 需要进行的根因分析场景,可通过 obdiag rca list 查看支持的场景列表
--store_dir string 默认为./rca 根因分析结果保存路径
--input_parameters string 默认为空 根因分析场景额外传递的参数, 可通过 obdiag rca list 查看帮助

示例:分析断连的场景

obdiag rca run --scene=disconnection 
结果:
+-----------------------------------------------------------------------------------------------------------+
|                                                   record                                                  |
+------+----------------------------------------------------------------------------------------------------+
| step | info                                                                                               |
+------+----------------------------------------------------------------------------------------------------+
|  1   | node:xxx.xxx.xxx obproxy_diagnosis_log:[2024-01-18 17:48:37.667014] [23173][Y0-00007FAA5183E710] |
|      | [CONNECTION](trace_type="CLIENT_VC_TRACE", connection_diagnosis={cs_id:1065, ss_id:4559,           |
|      | proxy_session_id:837192278409543969, server_session_id:3221810838,                                 |
|      | client_addr:"xxx.xxx.xxx.xxx:xxxx", server_addr:"xxx.xxx.xxx.xxx:2883", cluster_name:"obcluster",     |
|      | tenant_name:"sys", user_name:"root", error_code:-10010, error_msg:"An unexpected connection event  |
|      | received from client while obproxy reading request", request_cmd:"COM_SLEEP", sql_cmd:"COM_END",   |
|      | req_total_time(us):5315316}{vc_event:"VC_EVENT_EOS", user_sql:""})                                 |
|  2   | cs_id:1065, server_session_id:3221810838                                                           |
|  3   | trace_type:CLIENT_VC_TRACE                                                                         |
|  4   | error_code:-10010                                                                                  |
+------+----------------------------------------------------------------------------------------------------+
The suggest: Need client cooperation for diagnosis