oracle lock转换及oracle deadlock死锁系列一

结论

死锁

1,2个会话相互想获取对方的资源方可进行继续下去,就会发生死锁
2,死锁发生之前在另一个会话会产生DML HANG,因为不能获取到锁资源




会话17


SQL> select sid from v$mystat where rownum=1;


       SID
----------
        17


SQL> select * from t_lock;


         A
----------
         3
         1






会话162
SQL> select sid from v$mystat where rownum=1;


       SID
----------
       162




会话17
SQL> update t_lock set a=33 where a=3;


1 row updated.


会话162
SQL> update t_lock set a=11 where a=1;


1 row updated.




会话17
SQL> update t_lock set a=11 where a=1;
但此会话会HANG住,因为它不能持锁


会话162


SQL>  update t_lock set a=33 where a=3;
 update t_lock set a=33 where a=3
        *
ERROR at line 1:
ORA-00060: deadlock detected while waiting for resource


再看下锁模式的转化

锁模式的转换,针对lmode


监控会话
SQL> select sid,type,id1,id2,lmode,request,ctime,block from v$lock where sid in (17) and type in ('TX','TM');


no rows selected


会话17
SQL> select * from t_lock;


         A
----------
         3


SQL> lock table t_lock in row share mode;


Table(s) Locked.




监控会话
SQL> select sid,type,id1,id2,lmode,request,ctime,block from v$lock where sid in (17) and type in ('TX','TM');


       SID TYPE        ID1        ID2      LMODE    REQUEST      CTIME      BLOCK
---------- ---- ---------- ---------- ---------- ---------- ---------- ----------
        17 TM        74551          0          2          0         20          0


会话17
SQL> insert into t_lock values(1);


1 row created.


监控会话
SQL> select sid,type,id1,id2,lmode,request,ctime,block from v$lock where sid in (17) and type in ('TX','TM');


       SID TYPE        ID1        ID2      LMODE    REQUEST      CTIME      BLOCK
---------- ---- ---------- ---------- ---------- ---------- ---------- ----------
        17 TM        74551          0          3          0         22          0  --由原2级行共享锁转换为行排它锁(DML)
        17 TX     13500430       3776          6          0         22          0  --新增1条排它锁(事务锁)

个人简介:


8年oracle从业经验,具备丰富的oracle技能,目前在国内北京某专业oracle服务公司从事高级技术顾问。
   
   服务过的客户:
          中国电信
          中国移动
          中国联通
          中国电通
          国家电网
          四川达州商业银行
          湖南老百姓大药房
          山西省公安厅
          中国邮政
          北京302医院     
          河北廊坊新奥集团公司
  
 项目经验:
           中国电信3G项目AAA系统数据库部署及优化
           中国联通CRM数据库性能优化
           中国移动10086电商平台数据库部署及优化
           湖南老百姓大药房ERR数据库sql优化项目
           四川达州商业银行TCBS核心业务系统数据库模型设计和RAC部署及优化
           四川达州商业银行TCBS核心业务系统后端批处理存储过程功能模块编写及优化
           北京高铁信号监控系统RAC数据库部署及优化
           河南宇通客车数据库性能优化
           中国电信电商平台核心采购模块表模型设计及优化
           中国邮政储蓄系统数据库性能优化及sql优化
           北京302医院数据库迁移实施
           河北廊坊新奥data guard部署及优化
           山西公安厅身份证审计数据库系统故障评估
         
 联系方式:
          手机:18201115468
          qq   :   305076427
          qq微博: wisdomone1
          新浪微博:wisdomone9
          qq群:275813900    
          itpub博客名称:wisdomone1     http://blog.itpub.net/9240380/


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9240380/viewspace-1815967/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/9240380/viewspace-1815967/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值