首批通过分布式安全可靠测评,为关键业务系统打造
根因分析场景:锁冲突 lock_conflict
更新时间:2026-05-26 20:57:43
适用场景
本文适用于对于锁冲突的场景,基于 OceanBase 数据库内部表数据分析定位到持锁会话及等锁会话所在。
说明
自 obdiag V4.0.0 起,该场景新增日志分析能力,除基于内部表数据分析外,还会分析 OceanBase 集群日志中的锁冲突相关信息,提供更全面的诊断结果。
目前支持 OceanBase 数据库 V4.0.0.0 及之后的版本。使用 obdiag 时需根据选择在 ~/.obdiag/config.yml 文件中配置集群信息,或在命令中通过 --config 选项配置集群信息。
注意
由于内部表数据存在及时性,所以仅支持对当前时的数据进行分析。
OceanBase 数据库 V4.2.0.0 之前的版本与 V4.2.0.0 及之后的版本分析逻辑存在差异。
可导入环境变量
| 变量名 | 是否必选 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|---|
| tenant_name | 是 | string | "" | 所需分析的租户名 |
使用示例
默认执行命令如下,仅在当前情况下基于 OceanBase 数据库内部表数据分析定位持锁会话及等锁会话所在。
# xxx 为租户名
obdiag rca run --scene=lock_conflict --env tenant_name=xxx
鉴于未开启事务的时候等锁 ID 会由于不断变化,在 obdiag rca 的锁冲突策略中,record 中的分析为持锁 session(与 OCP 表现相同),同时会打印查询时期的信息,并进行标注是持锁的 ID。等锁 session 信息若查询得到会进行记录,但是不作为关键节点进行说明。