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


    --首先查看有哪些锁
    select /*+ rule */ s.username,
          decode(l.type,'TM','TABLE LOCK','TX','ROW LOCK',null) lock_level,
          o.owner,
          o.object_name,
          o.object_type,
          s.sid,s.serial#,
          s.terminal,
          s.machine,
          s.program,
          s.osuser
    from v$session s,v$lock l,dba_objects o
    where l.sid = s.sid
    and l.id1 = o.object_id(+)
    and s.username is not null
    
    --如果发生了锁等待,看是谁锁了表而引起谁的等待
    --以下的语句可以查询到谁锁了表,而谁在等待。 如果有子节点,则表示有等待发生
    select /*+ rule */ lpad(' ',decode(l.xidusn ,0,3,0))||l.oracle_username user_name,
           o.owner,
           o.object_name,
           o.object_type,
           s.sid,
           s.serial#
    from v$locked_object l,dba_objects o,v$session s
    where l.object_id=o.object_id
    and l.session_id=s.sid
    order by o.object_id,xidusn desc
    
    
    --找到引起等待的session,杀掉该session:
    alter system kill session 'sid,serial#';
    

      

    作者:大可 • Duke

    出处:

    声明:本博客所有文章仅用于学习、研究和交流目的,欢迎非商业性质转载(请注明出处)。
  • 相关阅读:
    JAVA 正则表达式 (超详细)
    <select>改造成<s:select>实现表单的回显功能
    打开新界面
    list删除操作 java.util.ConcurrentModificationException
    C# 增加 删除 更新 方法
    C# 网页内容获取
    excel 处理方法
    C# 读取excel
    sql 导入excel 遇到问题
    DataSet
  • 原文地址:https://www.cnblogs.com/xuke/p/4053396.html
Copyright © 2020-2023  润新知