第18章: OzLockTree - 锁争用排查与根阻塞源定位
概述: 本章介绍用于在数据库遭遇锁危机时快速梳理锁等待依赖关系、找出根源阻塞源(Root Blocker)并安全解除锁定的 OzLockTree 工具。该功能属于服务器管理套件,不适用于 SQLite。
本章内容:
18.1 实时锁依赖拓扑树
OzLockTree 将底层复杂的锁等待矩阵转化为结构清晰的层级树状报表:
- Root Blocker (根阻塞源): 引发连锁等待的最初始阻塞会话将被高亮标红显示。
- 等待会话列表 (Waiting Queries): 清晰罗列受阻会话及其依赖链路。
提示: 借助每行展示的关联摘要,可一眼识破究竟是哪个长事务阻碍了整个业务集群。
18.2 Kill Query 与 Kill Connection 的区别
选定特定问题会话后,系统提供两级终止策略:
- Kill Query (安全选项): 仅取消该会话当前正在执行并持有锁的 SQL 语句,保留客户端的网络连接与登录会话。
- Kill Connection (强力断开): 在数据库引擎层彻底掐断该客户端的连接。
警告: 应优先使用 Kill Query。仅在会话陷入死循环或无响应时才考虑使用 Kill Connection。
18.3 长期未提交事务监测
应用程序执行了 BEGIN 开启事务,却因代码异常或网络中断遗漏了 COMMIT,是锁堆积的最常见诱因。OzLockTree 会自动标红超过 5 分钟(300 秒)未提交的空闲事务。