Oracle 数据库查询锁信息和释放锁

查询锁级别

select
    oracle_username
        os_user_name,
    locked_mode,
    object_name,
    object_type
from
    v$locked_object a,dba_objects b
where
        a.object_id = b.object_id;

查询出来的 locked_mode 就是锁的级别,如果有结果就代表数据库当前持有锁。

0:none 
1:null 空 
2:Row-S 行共享(RS):共享表锁,sub share  
3:Row-X 行独占(RX):用于行的修改,sub exclusive  
4:Share 共享锁(S):阻止其他DML操作,share 
5:S/Row-X 共享行独占(SRX):阻止其他事务操作,share/sub exclusive  
6:exclusive 独占(X):独立访问使用,exclusive

查询锁信息

SELECT 
    object_name, 
    machine, 
    s.sid, 
    s.serial# 
FROM 
    gv$locked_object l, 
    dba_objects o, 
    gv$session s 
WHERE 
    l.object_id = o.object_id AND l.session_id = s.sid; 

删除锁/释放锁

alter system kill session 'sid, serial#';

把上面查询到的 sid 和 serial# 填入即可删除锁。

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Scroll to Top