zoukankan      html  css  js  c++  java
  • ORACLE中表死锁的处理(转)

    在进行数据库管理的过程中,经常会出现数据表被用户的一些不合理操作而导致表被锁定的情况,以下主要介绍如何查找哪些表被哪个用户所锁定,以及如何解除锁定: 
    1.查找被锁定的表: 
    select object_name,session_id,os_user_name,oracle_username,process,locked_mode,status 
    from v$locked_object l, all_objects a 
    where l.object_id=a.object_id;
    image
    如果想知道具体是哪个进程阻塞了哪个进程,可用以下语句查看:
    select username,v$lock.sid,trunc(id1/power(2,16)) rbs,bitand(id1,to_number('ffff','xxxx'))+0 slot,id2 seq,lmode,request from v$lock, v$session where v$lock.type = 'TX' and v$lock.sid = v$session.sid and v$session.username = 'CENTER' ;

     select
      (select username||':'||sid||':'||serial# from v$session where sid=a.sid) || 
      ' 阻塞了 ' || 
      (select username ||':'||sid||':'||serial# from v$session where sid=b.sid) 
      from v$lock a, v$lock b 
      where a.block = 1 
      and b.request > 0 
      and a.id1 = b.id1 
     and a.id2 = b.id2;
    image
    2.确定锁定表用户的sid与serial编号(可通过oracle用户确定也可通过系统用户确定)
    a.通过oracle用户确定
    select sid,serial# from v$session where username=’center’;
    image
    b.通过系统用户确定
    select sid,serial# from v$session where username=’administrator’;
    image
    3.杀掉造成死锁的进程(已知是123阻塞了124号进程,杀掉即可解锁)
    alter system kill session ‘123,3935’;
     
    image
    image
    至此表死锁解除,现在存在的是数据表正常的锁定,等事务提交后自然消失.
  • 相关阅读:
    django框架进阶ModelForm组件长期维护
    crm项目stark组件
    前端html长期维护
    django框架进阶AJAX长期维护
    22python语法基础基础赋值与深浅拷贝
    django框架基础路由系统长期维护
    django框架基础ORM单表操作长期维护
    24python语法基础基础控制语句
    django框架基础ORM基础长期维护
    django框架基础ORM进阶长期维护
  • 原文地址:https://www.cnblogs.com/linjiancun/p/2729366.html
Copyright © 2011-2022 走看看