-
Notifications
You must be signed in to change notification settings - Fork 33
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库下的表及视图的读权限
obdiag rca list
obdiag rca run --scene=<scene_name>
scene_name
包含如下:
- disconnection:一键断连诊断,基于obproxy的诊断日志。
- major_hold: 一键卡合并诊断。
- lock_conflict: 一键锁冲突诊断。
- ddl_disk_full: DDL 过程中报磁盘空间不足的问题诊断。
使用该命令可以获取根因分析目前支持的场景
使用该命令可执行指定场景的根因分析
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
OceanBase是原生分布式数据库系统,故障根因分析通常是比较繁琐的,因为涉及的因素可能有很多,如机器环境、配置参数、运行负载等等。专家在排查问题的时候需要获取大量的信息来分析故障,如何高效的获取故障场景下分散在各个节点的信息,挖掘出其中的关联性,帮助用户自助诊断问题便是obdiag的价值。