oracle for Update 手艺加锁了ITeye - 众发娱乐

oracle for Update 手艺加锁了ITeye

2019-01-10 17:13:06 | 作者: 曜灿 | 标签: 没有,业务,操作 | 浏览: 2680

      

       oracel默许的“业务阻隔等级”是read commited ,经过业务给数据目标加“锁”来完成!

             在操作delete时,前台没有响应,后台没有报错,断点走到ps.executeUpdate()便消失没有持续下移,一个简略的delete句子,没有想放到pl/sql上检查,一向在找代码中的问题,重复编译,替换jar包,重启进程再测验,仍然无法定位到问题所在 , 然后测验了下在pl/sql上履行,没有报错,仅仅显现"正在履行...",然后一向显现“正在履行。。。”,然后显现了点“表被锁了的概念”,然后找到了些sql怎么kill 掉 session

 

       (1)形成表被锁的原因,也要注意下,由于做的是删去操作,为了便利增加操作,就在select table的时分用了 for update ,可是没有手动commit , 那么这表便是加上的锁没有开释

          (2)有时是代码中的业务没有commit, 当时业务A1没有履行完,加在表B上的锁便没有开释,再次操作这个逻辑,业务A2便无法操作表B(当然假如数据库断开了衔接,主动封闭,表B上的锁会不会被开释,那么业务A1履行的操作会被commit吗)

 

  //检查被锁住的表
SELECT b.owner,b.object_name,a.session_id,a.locked_mode 
    FROM v$locked_object a ,dba_objects b 
    WHERE b.object_id = a.object_id;

 

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 b.username,b.sid,b.serial#,logon_time 
    FROM v$locked_object a,v$session b 
    WHERE a.session_id = b.sid order by b.logon_time;

 

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


 
//kill session  
    Alter system kill session sid,serial#

 

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表众发娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章

阅读排行

  • 1

    用批处理文件履行SQL脚本ITeye

    履行,文件,批处理
  • 2
  • 3
  • 4

    oracle搜集ITeye

    假如,查询,成果
  • 5

    db2move 指令无法导出表ITeye

    导出,数据,字符
  • 6
  • 7

    Memcached的定位ITeye

    定位,数据,一个
  • 8

    PGA内存办理战略ITeye

    内存,办理,时刻
  • 9

    MySQL命令行ITeye

    输入,数据库,指令
  • 10

    Oracle 表空间与数据文件ITeye

    空间,数据文件,文件