Oracle数据库如何查询被锁住的会话以及如何杀死该会话
当我们无论如何操作数据库都无效的时候,我们的数据就可能被锁住了,以致我们对所有表的操作都是无效的。
这时候我们就需要知道哪些会话是被锁定了,以及在不关机的情况下如何解锁,继续操作数据库。
查询:
select * from v$locked_object a,v$session b where a.SESSION_ID=b.SID ;
select b.SID,b.SERIAL# from v$locked_object a,v$session b where a.SESSION_ID=b.SID ;
解锁:
begin
for cur in(select distinct b.SID ,b.SERIAL# ser from v$locked_object a,v$session b where a.SESSION_ID=b.SID ) loop
execute immediate 'alter system kill session '''||cur.sid||','||cur.ser||''' immediate';
end loop;
end ;
/