欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 金融 > Oracle 的V$LOCK 视图详解

Oracle 的V$LOCK 视图详解

2025/5/27 5:55:48 来源:https://blog.csdn.net/lee_vincent1/article/details/148239946  浏览:    关键词:Oracle 的V$LOCK 视图详解

Oracle 的V$LOCK 视图详解

V$LOCK 是 Oracle 数据库中最重要的动态性能视图之一,用于显示当前数据库中锁的持有和等待情况。

一、V$LOCK 视图结构

列名数据类型描述
SIDNUMBER持有或等待锁的会话标识符
TYPEVARCHAR2(2)锁类型标识符
ID1NUMBER锁标识符1(含义取决于锁类型)
ID2NUMBER锁标识符2(含义取决于锁类型)
LMODENUMBER锁模式(当前持有的模式)
REQUESTNUMBER请求的锁模式
CTIMENUMBER锁已持有或等待的时间(秒)
BLOCKNUMBER是否阻塞其他会话(1=阻塞,0=不阻塞)

二、主要锁类型(TYPE字段)

1. 基本锁类型

类型描述
TX事务锁(行级锁)
TMDML锁(表级锁)
UL用户自定义锁(DBMS_LOCK创建)

2. 系统级锁类型

类型描述
ST空间事务锁
TT临时表锁
SQ序列锁
CF控制文件锁

三、锁模式(LMODE/REQUEST)

Oracle 锁模式数值定义:

锁模式描述
0None无锁
1Null (N)空模式
2Row-S (SS)行共享
3Row-X (SX)行排他
4Share (S)共享
5S/Row-X (SSX)共享行排他
6Exclusive (X)排他

四、ID1 和 ID2 的含义

1. TX 锁(事务锁)

  • ID1:Undo 段号 + 事务槽号(USN.SLT)
  • ID2:事务序列号(WRAP)

2. TM 锁(表锁)

  • ID1:被锁定对象的 OBJECT_ID
  • ID2:通常为 0

3. UL 锁(用户锁)

  • ID1:DBMS_LOCK.ALLOCATE_UNIQUE 分配的锁ID
  • ID2:通常为 0

五、实用查询示例

1. 查看所有锁信息

SELECT * FROM v$lock ORDER BY ctime DESC;

2. 查找阻塞会话

SELECT l1.sid AS "阻塞会话ID",s1.username AS "阻塞用户",s1.osuser AS "阻塞OS用户",s1.machine AS "阻塞机器",l2.sid AS "被阻塞会话ID",s2.username AS "被阻塞用户",l1.type AS "锁类型",DECODE(l1.type,'TX', '事务锁','TM', '表锁','UL', '用户锁',l1.type) AS "锁描述",l1.ctime AS "持有时间(秒)"
FROM v$lock l1, v$lock l2, v$session s1, v$session s2
WHERE l1.block = 1 
AND l2.request > 0
AND l1.id1 = l2.id1
AND l1.id2 = l2.id2
AND l1.sid = s1.sid
AND l2.sid = s2.sid;

3. 查询特定对象的锁

SELECT l.sid, s.username, s.status, l.type, l.lmode, l.ctime, o.object_name
FROM v$lock l, dba_objects o, v$session s
WHERE l.id1 = o.object_id(+)
AND l.type = 'TM'
AND l.sid = s.sid
AND o.object_name = 'EMPLOYEES';

六、锁诊断与问题解决

1. 常见锁问题

  • TX锁等待:最常见的事务冲突
  • TM锁冲突:DDL与DML操作冲突
  • 死锁:ORA-00060错误

2. 解锁方法

-- 1. 查找阻塞会话
SELECT sid, serial#, username FROM v$session 
WHERE sid IN (SELECT blocking_session FROM v$session WHERE blocking_session IS NOT NULL);-- 2. 终止会话
ALTER SYSTEM KILL SESSION 'sid,serial#' IMMEDIATE;

V$LOCK 视图是诊断 Oracle 锁问题的关键工具,结合 V$SESSION 和 V$LOCKED_OBJECT 等视图可以全面分析锁情况。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词