oracle锁表与解表

查看锁表进程SQL语句1: 

select sess.sid, 
sess.serial#, 
lo.oracle_username, 
lo.os_user_name, 
ao.object_name, 
lo.locked_mode 
from v$locked_object lo, 
dba_objects ao, 
v$session sess 
where ao.object_id = lo.object_id and lo.session_id = sess.sid;

 

查看锁表进程SQL语句2: 

select * from v$session t1, v$locked_object t2 where t1.sid = t2.SESSION_ID;

 

杀掉锁表进程: 
如有記錄則表示有lock,記錄下SID和serial# ,將記錄的ID替換下面的738,1429,即可解除LOCK 
alter system kill session '738,1429';
另外附上锁定一个表的语句:
LOCK TABLE tablename IN EXCLUSIVE MODE;将锁定整个表

 

批量解锁

declare cursor mycur is
select b.sid,b.serial#
  from v$locked_object a,v$session b
  where a.session_id = b.sid group by b.sid,b.serial#;
 
 
begin
  for cur in mycur
    loop  
     execute immediate ( 'alter system  kill session  '''||cur.sid || ','|| cur.SERIAL# ||''' ');
     end loop;
 
end;

 

来自:https://blog.csdn.net/tall913/article/details/7963841

https://www.cnblogs.com/xiaohaizhuimeng/p/6543028.html

posted on 2019-03-08 13:52  luck666  阅读(312)  评论(0编辑  收藏  举报

导航