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