欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-07-01 19:09:26
使用oracle时,发现有表被锁,又不知道是谁(或者哪个程序)锁的,怎么办 ? 两步走: 1、查找出被锁对象的会话id和序列号 执行如下sql: -- 查询...

使用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#';