首页 > 代码库 > 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一直处于执行状态)的处理办法。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。