ITPUB??ì3
2010数据库技术大会
ITPUB论坛 » Oracle数据库管理 » 请教一个刚遇到的关于lock的问题

您有 2 条公共消息
  • 来自: 公共消息 标题: 新开"PLM/PDM产品 ... 内容: 讨论范围包括:产品研发管理(PDM),产品生命周期管理(PLM),工艺/ ...
  • 来自: 公共消息 标题: 2010数据库技术大 ... 内容: “2010数据库技术大会”将于2010年4月2日~4月3日,在北京歌华开元大酒 ...

    标题: [体系架构] 请教一个刚遇到的关于lock的问题
    离线 net pinaster
    游侠


    精华贴数 0
    个人空间 0
    技术积分 290 (7918)
    社区积分 1 (46641)
    注册日期 2005-8-4
    论坛徽章:4
    生肖徽章2007版:猪生肖徽章2007版:猪生肖徽章2007版:牛ITPUB新首页上线纪念徽章  
          

    发表于 2007-12-6 23:19 
    请教一个刚遇到的关于lock的问题

    请教一个刚遇到的关于lock的问题。
    用sql plus 分别开了三个session,然后对同一个表进行下面的操作:
    session 1:
    SQL> lock table test.test0001 in exclusive mode;

    表已锁定。

    session 2:
    SQL> insert into test.test0001(lsh) values(1);

    session 3:
    SQL> insert into test.test0001(lsh) values(2);

    然后,释放session 1 的锁
    SQL> rollback;

    回退已完成。

    此时session 2的反应为
    SQL> insert into test.test0001(lsh) values(1);

    已创建 1 行。

    但是session 3 仍然在等待锁,为什么呢?请高手能解释一下,十分感谢


    只看该作者    顶部
    离线 battleman
    一朵梨花压海棠


    来自 北京
    精华贴数 0
    个人空间 0
    技术积分 5006 (331)
    社区积分 93 (4391)
    注册日期 2004-4-13
    论坛徽章:25
    ITPUB元老会员2007贡献徽章授权会员生肖徽章2007版:兔生肖徽章2007版:马生肖徽章2007版:龙
    2009新春纪念徽章生肖徽章2007版:鸡生肖徽章2007版:猪2008北京奥运纪念徽章:皮划艇静水生肖徽章2007版:鸡生肖徽章2007版:龙

    发表于 2007-12-6 23:34 
    是这样的:
    当session 1执行lock table test.test0001 in exclusive mode;  这样对test0001加了一个TM锁,阻塞了session 2和session3对test0001的操作。同时session2和session3都会在test0001上加TM锁。
    当session 1执行roll时释放TM锁时,按照先后顺序,session2便完成了insert 操作,同时在test0001上面加了TM和TX锁,这样肯定阻塞session3对test0001的操作


    __________________
    北京晶锐恒通科技有限公司
                     ---专业的Oracle第三方服务公司
    MSN:         sleepingbag1124@hotmail.com
    TEL:          010-81966285
    MOBILE:    13811778831
    只看该作者    顶部
    离线 dhcwenOra
    中级会员



    精华贴数 0
    个人空间 20
    技术积分 1932 (1040)
    社区积分 29 (7795)
    注册日期 2006-11-4
    论坛徽章:2
    生肖徽章2007版:鼠ITPUB新首页上线纪念徽章    
          

    发表于 2007-12-6 23:52 
    不对吧,session1释放了tm锁,session2和session3不就相当于两条普通insert语句了吗,为啥会session2诸塞session3?


    __________________
    如果浪费了半小时时间,我就觉得很惭愧。后来我看到很多人不珍惜时间的时候,我就觉得这样的人真没出息。时间是自己的,你到一个公司打工的时候,偷懒,老板没有看见,就觉得自己又蒙了一下,玩猫和老鼠的游戏,真是没有必要。公司所付的那么一点钱,就买下了你一个月的青春?学会的东西首先是自己的,其次才是公司的。没有多少人真正计算过自己一个小时值多少钱。
    只看该作者    顶部
    离线 stronghearted
    beginner


    精华贴数 0
    个人空间 0
    技术积分 3149 (576)
    社区积分 135 (3621)
    注册日期 2007-4-19
    论坛徽章:10
    会员2007贡献徽章授权会员2009日食纪念生肖徽章2007版:蛇2008北京奥运纪念徽章:现代五项生肖徽章2007版:羊
    2008新春纪念徽章生肖徽章2007版:鸡生肖徽章2007版:鼠ITPUB新首页上线纪念徽章  

    发表于 2007-12-7 00:58 
    session1,session 2中加了tm的排他锁


    __________________
    我的茅庐

    佛曰:
    让我们成熟的,是经历,是磨难;
    让我们幸福的,是宽容,是爱;
    让我们心安的,是理解,是信任。
    只看该作者    顶部
    离线 funnyok



    精华贴数 0
    个人空间 0
    技术积分 3842 (452)
    社区积分 16 (10159)
    注册日期 2001-12-5
    论坛徽章:28
    ITPUB元老管理团队2006纪念徽章会员2006贡献徽章生肖徽章2007版:马生肖徽章2007版:虎生肖徽章2007版:虎
    生肖徽章2007版:牛数据库板块每日发贴之星操作系统板块每日发贴之星   

    发表于 2007-12-7 01:00 
    give us ddl of the table including all indexes and constraints


    __________________
    只看该作者    顶部
    离线 stronghearted
    beginner


    精华贴数 0
    个人空间 0
    技术积分 3149 (576)
    社区积分 135 (3621)
    注册日期 2007-4-19
    论坛徽章:10
    会员2007贡献徽章授权会员2009日食纪念生肖徽章2007版:蛇2008北京奥运纪念徽章:现代五项生肖徽章2007版:羊
    2008新春纪念徽章生肖徽章2007版:鸡生肖徽章2007版:鼠ITPUB新首页上线纪念徽章  

    发表于 2007-12-7 01:01 


    QUOTE:
    原帖由 dhcwenOra 于 2007-12-6 23:52 发表
    不对吧,session1释放了tm锁,session2和session3不就相当于两条普通insert语句了吗,为啥会session2诸塞session3?

    不是的。如果按你说的话,其实在session2中加的是tm的row排他锁。

    [ 本帖最后由 stronghearted 于 2007-12-7 01:02 编辑 ]


    __________________
    我的茅庐

    佛曰:
    让我们成熟的,是经历,是磨难;
    让我们幸福的,是宽容,是爱;
    让我们心安的,是理解,是信任。
    只看该作者    顶部
    在线/呼叫 ZALBB


    精华贴数 8
    个人空间 0
    技术积分 40298 (23)
    社区积分 18229 (107)
    注册日期 2001-10-15
    论坛徽章:129
          
          

    发表于 2007-12-7 08:29 


    QUOTE:
    原帖由 stronghearted 于 2007-12-7 00:58 发表
    session1,session 2中加了tm的排他锁

    SESSION2 插入纪录而已,怎么会用排他锁?

    应该是该表有唯一性索引造成的。


    __________________
    对内,共匪什么都要,就是不要脸;对外,共匪什么都不要,就是要脸。
    只看该作者    顶部
    离线 net pinaster
    游侠


    精华贴数 0
    个人空间 0
    技术积分 290 (7918)
    社区积分 1 (46641)
    注册日期 2005-8-4
    论坛徽章:4
    生肖徽章2007版:猪生肖徽章2007版:猪生肖徽章2007版:牛ITPUB新首页上线纪念徽章  
          

    发表于 2007-12-7 08:50 
    表 test.test0001 没有任何索引和约束。我现在没法拿到ddl,环境在家里呢...
    数据库版本是10.2。


    只看该作者    顶部
    在线/呼叫 ZALBB


    精华贴数 8
    个人空间 0
    技术积分 40298 (23)
    社区积分 18229 (107)
    注册日期 2001-10-15
    论坛徽章:129
          
          

    发表于 2007-12-7 10:15 
    作了测试,SESSION 1 没解锁之前,2,3都申请 tm=3  的锁,1 解锁后,
    2 获得 tm=3,但 3 要  tm=6, 结果被堵,奇怪,3 为什么要  tm=6 的锁?
    PHP code:


    SCOTT
    @bi>select b.* from (select id1,id2 from v$lock where block=1av$lock b

      2  where a
    .id1=b.id1 and a.id2=b.id2 order by b.id1,b.id2,b.ctime;



    ADDR             KADDR              SID TY        ID1        ID2      LMODE    REQUEST      CTIME      BLOCK

    ---------------- ---------------- ----- -- ---------- ---------- ---------- ---------- ---------- ----------

    00000000B68DAD80 00000000B68DADA8   108 TM    1232201          0          0          3         27          0

    00000000B68DAC80 00000000B68DACA8   148 TM    1232201          0          0          3         30          0

    00000000B68DAB80 00000000B68DABA8    20 TM    1232201          0          6          0         39          1





    SCOTT
    @bi>select b.* from (select id1,id2 from v$lock where block=1av$lock b

      2  where a
    .id1=b.id1 and a.id2=b.id2 order by b.id1,b.id2,b.block;



    ADDR             KADDR              SID TY        ID1        ID2      LMODE    REQUEST      CTIME      BLOCK

    ---------------- ---------------- ----- -- ---------- ---------- ---------- ---------- ---------- ----------

    00000000B68DAD80 00000000B68DADA8   108 TM    1232201          0          0          6         75          0

    00000000B68DAB80 00000000B68DABA8   148 TM    1232201          0          3          0         75       &nb




    __________________
    对内,共匪什么都要,就是不要脸;对外,共匪什么都不要,就是要脸。
    只看该作者    顶部
    离线 ora_pixies
    一般会员


    精华贴数 0
    个人空间 0
    技术积分 484 (4773)
    社区积分 159 (3300)
    注册日期 2006-10-10
    论坛徽章:0
          
          

    发表于 2007-12-7 10:23 
    是挺怪的


    只看该作者    顶部
    相关内容


    CopyRight 1999-2006 itpub.net All Right Reserved.
    北京皓辰网域网络信息技术有限公司. 版权所有
    E-mail:Webmaster@itpub.net
    网站律师 隐私政策 知识产权声明
    京ICP证:060528号 联系我们