首页 > 代码库 > oracle表被锁(delete或update一直处于执行状态)的处理办法。

oracle表被锁(delete或update一直处于执行状态)的处理办法。

 1 --首先查看有哪些锁 2 select /*+ rule */ s.username, 3       decode(l.type,TM,TABLE LOCK,TX,ROW LOCK,null) lock_level, 4       o.owner, 5       o.object_name, 6       o.object_type, 7       s.sid,s.serial#, 8       s.terminal, 9       s.machine,10       s.program,11       s.osuser12 from v$session s,v$lock l,dba_objects o13 where l.sid = s.sid14 and l.id1 = o.object_id(+)15 and s.username is not null16  17 --如果发生了锁等待,看是谁锁了表而引起谁的等待18 --以下的语句可以查询到谁锁了表,而谁在等待。 如果有子节点,则表示有等待发生19 select /*+ rule */ lpad( ,decode(l.xidusn ,0,3,0))||l.oracle_username user_name,20        o.owner,21        o.object_name,22        o.object_type,23        s.sid,24        s.serial#25 from v$locked_object l,dba_objects o,v$session s26 where l.object_id=o.object_id27 and l.session_id=s.sid28 order by o.object_id,xidusn desc29  30  31 --找到引起等待的session,杀掉该session: 32 alter system kill session sid,serial#;

http://bbs.csdn.net/topics/370025735

oracle表被锁(delete或update一直处于执行状态)的处理办法。