ITPUB??ì3
新一届的微软MVP评选已经开始,欢迎各位推荐!
ITPUB论坛 » Oracle新技术/11g » 锁超时:11g的新特性

标题: [原创] 锁超时:11g的新特性
离线 xzh2000
仙人抚我须 结发授长生



精华贴数 13
个人空间 0
技术积分 46440 (14)
社区积分 5155 (284)
注册日期 2002-7-17
论坛徽章:30
现任管理团队成员ITPUB元老授权会员生肖徽章2007版:狗2008北京奥运纪念徽章:柔道2008北京奥运纪念徽章:帆船
生肖徽章2007版:虎ITPUB新首页上线纪念徽章数据库板块每日发贴之星数据库板块每日发贴之星数据库板块每日发贴之星数据库板块每日发贴之星

发表于 2007-8-10 17:00 
锁超时:11g的新特性

在11g中,oracle提供了一个新的可动态调整的参数ddl_lock_timeout,该参数允许存在未提交的事务的表上,执行DDL操作,如果事务在ddl_lock_timeout允许的时间内提交,则DDL操作将会成功,否则就会报ORA-00054错误,如果对该表执行ADD COLUMN操作,则会直接提交表上发生的未提交的事务,所以用11g时,有些东西还是要注意的,当然也不排除这是11g的一个bug哦。。。




11g以前的版本测试如下:
SESSION 1:
16:18:34 SQL> delete from tmp_lg_log where rownum < 2;
1 row deleted.

SESSION 2:
16:21:10 SQL> alter table tmp_lg_log add rn number;
alter table tmp_lg_log add rn number
*
ERROR at line 1:
ORA-00054: resource busy and acquire with NOWAIT specified

11g中测试DDL锁超时:
SESSION 1:
SQL> create table tmp_lg_log (id number,name varchar2(32),rn1 number, rn2 number);
Table created.
SQL> insert into tmp_lg_log values(1,'abc',1,2);
1 row created.

SESSION 2:
SQL> show parameter lock
NAME_COL_PLUS_SHOW_PARAM TYPE VALUE_COL_PLUS_SHOW_PARAM
------------------------- ----------- ---------------------
ddl_lock_timeout integer 0
--修改锁超时时间
SQL> alter system set ddl_lock_timeout=60 scope=both;
System altered.
--执行ddl(drop column)的操作,事务未在60s内提交,所以报timeout错误
SQL> alter table tmp_lg_log drop column rn2;
alter table tmp_lg_log drop column rn2
*
ERROR at line 1:
ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired
--执行ddl(add column)的操作,DDL则立即成功
SQL> alter table tmp_lg_log add rn4 number;
Table altered.


__________________
过目即忘  插柳成荫
只看该作者    顶部
离线 aprilbird
一般会员



精华贴数 0
个人空间 0
技术积分 216 (8829)
社区积分 2 (27130)
注册日期 2005-6-2
论坛徽章:0
      
      

发表于 2007-8-10 17:04 
新出来总是有bug的,不过终于等到了


只看该作者    顶部
离线 vongates
开门


精华贴数 3
个人空间 0
技术积分 19502 (48)
社区积分 10046 (157)
注册日期 2002-11-28
论坛徽章:83
现任管理团队成员2008北京奥运纪念徽章:羽毛球2008北京奥运纪念徽章:排球2008年新春纪念徽章  
      

发表于 2007-8-10 18:55 
大家全有的搞了.呀. 公司半天没有download下来.在家只要两个多小时.


__________________
只看该作者    顶部
离线 玉面飞龙
斧头帮帮主


精华贴数 1
个人空间 0
技术积分 10048 (118)
社区积分 3340 (407)
注册日期 2002-1-20
论坛徽章:23
现任管理团队成员ITPUB元老ITPUB北京九华山庄2008年会纪念徽章参与2007年甲骨文全球大会(中国上海)纪念管理团队2006纪念徽章蓝锆石
会员2007贡献徽章会员2006贡献徽章授权会员生肖徽章2007版:蛇生肖徽章2007版:龙2008北京奥运纪念徽章:排球

发表于 2007-8-10 22:28 
session 1的数据提交了?

太危险了


__________________
只看该作者    顶部
离线 blue_prince
永远的巴乔


精华贴数 21
个人空间 0
技术积分 16894 (58)
社区积分 5957 (253)
注册日期 2003-10-15
论坛徽章:64
现任管理团队成员     
      

发表于 2007-8-10 22:36 


QUOTE:
最初由 玉面飞龙 发布
session 1的数据提交了?

太危险了


没提交。但是另外一个会话ADD COLUMN可以,应该是ADD COLUMN不对现有的查询产生影响,所以11G更改了实现方式,更加灵活。


__________________
淘宝DBA团队Blog        我的Blog

We are what we repeatedly do. Excellence, then, is not an act, but a habit.——Aristotle
只看该作者    顶部
在线/呼叫 Fenng
版主


精华贴数 32
个人空间 0
技术积分 52953 (11)
社区积分 6595 (224)
注册日期 2001-12-18
论坛徽章:27
现任管理团队成员2007年度最佳版主    
      

发表于 2007-8-13 12:13 
我觉得这恐怕也是个鸡肋功能

在产品环境有几个敢用的 ?

一旦事务累积,几乎事务会异常一大片


__________________
我的Blog: www.dbanotes.net   

点击即可用 Google Reader 订阅   



4nyth1n9 th4t can 90 wr0n9 wi11 9o wr0ng  
不想做厨师的裁缝不是好司机
只看该作者    顶部
离线 xzh2000
仙人抚我须 结发授长生



精华贴数 13
个人空间 0
技术积分 46440 (14)
社区积分 5155 (284)
注册日期 2002-7-17
论坛徽章:30
现任管理团队成员ITPUB元老授权会员生肖徽章2007版:狗2008北京奥运纪念徽章:柔道2008北京奥运纪念徽章:帆船
生肖徽章2007版:虎ITPUB新首页上线纪念徽章数据库板块每日发贴之星数据库板块每日发贴之星数据库板块每日发贴之星数据库板块每日发贴之星

发表于 2007-8-13 12:36 


QUOTE:
最初由 Fenng 发布
我觉得这恐怕也是个鸡肋功能

在产品环境有几个敢用的 ?

一旦事务累积,几乎事务会异常一大片


确实如此,没有人敢在生产库上业务时间内运行drop column,但以前在生产库上添加字段也很难哦,有事执行了n次才成功,这样改确实也进步了很多...




__________________
过目即忘  插柳成荫
只看该作者    顶部
 
    

相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问