ORACLE 查询被锁住的对象,并结束其会话的方法

使用oracle时,发现有表被锁,又不知道是谁(或者哪个程序)锁的,怎么办 ?

两步走:

1、查找出被锁对象的会话id和序列号

执行如下sql:

-- 查询出被锁对象,并提供 kill 脚本
select s.sid, s.machine, o.object_name, l.oracle_username, l.locked_mode, s.osusesr,
 'alter system kill session '''|| s.sid || ', '|| s.serial#||''';' as kill_command
 from v$locked_object l, v$session s, all_objects o
 where l.session_id=s.sid and l.object_id=o.object_id

2、kill

复制出第1步查询结果中的 kill_command 字段值,执行。

-- kill 的基本语法

alter system kill session '$sid, $serial#';
(0)
上一篇 2022年3月22日
下一篇 2022年3月22日

相关推荐