ITPUB??ì3
12月微软Hyper-V虚拟化沙龙主题征集
ITPUB论坛 » IBM数据库产品 » db2回滚处理问题

标题: [精华] db2回滚处理问题
离线 cliser
中级会员



精华贴数 0
个人空间 0
技术积分 467 (4216)
社区积分 35 (5914)
注册日期 2002-7-17
论坛徽章:1
授权会员     
      

发表于 2004-4-1 12:07 
我也是来学习的。请多多帮助。


只看该作者    顶部
离线 wolfop
老会员



精华贴数 0
个人空间 0
技术积分 846 (2270)
社区积分 2 (23520)
注册日期 2002-2-11
论坛徽章:1
ITPUB元老     
      

发表于 2004-4-1 20:54 
Re: 这种问题我当然知道



QUOTE:
最初由 wxz75 发布
一致性是可以通过isolation level解决,但这是以牺牲并发性为代价的.
DB2有四种隔离级别: 未提交读、游标稳定性(缺省)、读稳定性和可重复读. 未提交读的并发性最好,但是没有任何读一致性可言; 缺省的游标稳定性的并发性已经不如ORACLE(select 和update互相影响,ORACLE无此问题),而且读一致性也不能保证,其他两种级别应该可以保证读一致性,但并发性完全不可接受.
之所以银行可以用DB2有两个原因:
1.有些银行用的是390,机制不同
2.其他银行用UDB,但是银行和许多其他如电信等行业不同,对OLD IMAGE的要求不高,所以DB2的一致性和并发性的问题被掩盖.

这些问题我发现时也很疑惑,简直不敢相信.但我与IBM的资深工程师探讨过多次后,才一致共同确认DB2是存在此类缺陷.

这就是事情的经过,有些问题你光从DB2的角度看不出来,你如果能同时掌握DB2和ORACLE,就很容易看出来了.当然,以DB2的角度,ORACLE也不是没问题.


缺省的游标稳定性?我怎么记得是CR?。
看来我把几个数据库弄混淆了,INFORMIX ORACLE的缺省隔离级别是 CR (提交读),DB2是游标稳定性,但是ORACLE没有这个级别,似乎CR和游标稳定性不是一个概念,INFORMIX就同时有游标稳定性和提交读两个不同的隔离级别,而且认为CR比游标稳定性隔离级别低,当然并发性好。所以关于并发的东西,我看这个论述不完整,等我再查查资料再说。
对于没有回滚段会导致没有读一致性,我觉得简直是匪夷所思,能否讲你的完整思路写出来。


只看该作者    顶部
离线 wolfop
老会员



精华贴数 0
个人空间 0
技术积分 846 (2270)
社区积分 2 (23520)
注册日期 2002-2-11
论坛徽章:1
ITPUB元老     
      

发表于 2004-4-1 21:24 
Re: 这种问题我当然知道



QUOTE:
最初由 wxz75 发布
一致性是可以通过isolation level解决,但这是以牺牲并发性为代价的.
DB2有四种隔离级别: 未提交读、游标稳定性(缺省)、读稳定性和可重复读. 未提交读的并发性最好,但是没有任何读一致性可言; 缺省的游标稳定性的并发性已经不如ORACLE(select 和update互相影响,ORACLE无此问题),而且读一致性也不能保证,其他两种级别应该可以保证读一致性,但并发性完全不可接受.
之所以银行可以用DB2有两个原因:
1.有些银行用的是390,机制不同
2.其他银行用UDB,但是银行和许多其他如电信等行业不同,对OLD IMAGE的要求不高,所以DB2的一致性和并发性的问题被掩盖.
这些问题我发现时也很疑惑,简直不敢相信.但我与IBM的资深工程师探讨过多次后,才一致共同确认DB2是存在此类缺陷.

这就是事情的经过,有些问题你光从DB2的角度看不出来,你如果能同时掌握DB2和ORACLE,就很容易看出来了.当然,以DB2的角度,ORACLE也不是没问题.


请说明清楚390的DB2机制不同在什么地方?
IBM网站说DB2不能保证读一致性的原文在哪里,请给出,谢谢。
按照正常理解和ITPUB的文章,对于ORACLE缺省的CR隔离级别,一样不可能避免幻象读和不可重复读的问题。
"读一致性:当一个会话正在修改数据时,其他的会话将看不到该会话未提交的修改。而且,当一个语句正在执行时,该语句将看不到从该语句开始执行后的未提交的修改(语句级读一致性)。当ORACLE执行SELECT语句时,ORACLE依照当前的系统改变号(SYSTEM CHANGE NUMBER-SCN)来保证任何前于当前SCN的未提交的改变不被该语句处理。可以想象:当一个长时间的查询正在执行时,若其他会话改变了该查询要查询的某个数据块,ORACLE将利用回滚段的数据前影像来构造一个读一致性视图。"
对于INFORMIX,也没有回滚段,只有物理日志文件,用来保证修改前的映象,其实可以理解成为他也有回滚段,但是只有一个大的。
对于DB2,我的理解在于,他的日志不是好像ORACLE这样只记录修改,而是将INFORMIX那样的逻辑日志和物理日志都放到日志文件中,包括修改前印象和修改操作。


只看该作者    顶部
离线 wolfop
老会员



精华贴数 0
个人空间 0
技术积分 846 (2270)
社区积分 2 (23520)
注册日期 2002-2-11
论坛徽章:1
ITPUB元老     
      

发表于 2004-4-1 22:14 
Re: 你发现了DB2的一个大问题!



QUOTE:
最初由 wxz75 发布
没错,DB2没有rollback  segment,它只有log.
回退时使用的是online log.

你再往深处想想,这样一来缺省情况下DB2就失去了读一致性,可怕吧.
当然可以通过调整参数来强行保证读一致性,但又失去了并发性.

个人认为这是DB2的一个大缺陷!


没有想通,非常想不通,请说明清楚你的思路。


只看该作者    顶部
离线 wolfop
老会员



精华贴数 0
个人空间 0
技术积分 846 (2270)
社区积分 2 (23520)
注册日期 2002-2-11
论坛徽章:1
ITPUB元老     
      

发表于 2004-4-1 22:29 
http://www.dbforums.com/archives/t246823.html
关于rollback segment ,用来放修改前的映像,DB2无法把逻辑日志和修改前印象都放到LOG中了。仅此而已,可能有日志争用导致性能上的问题,但是绝对不可能导致读不一致。
连脏读都无法避免,还怎么玩。


只看该作者    顶部
离线 wolfop
老会员



精华贴数 0
个人空间 0
技术积分 846 (2270)
社区积分 2 (23520)
注册日期 2002-2-11
论坛徽章:1
ITPUB元老     
      

发表于 2004-4-1 23:17 
Re: to cliser



QUOTE:
最初由 wxz75 发布
冲你那几句话,我还真得说DB2不行.

我前面已经说了,有些问题要对ORACLE和DB2都有了解之后才能发现.....
从我个人经验来说,别的不说,我几乎可以肯定ORACLE真正做到了一致性和并发性的平衡,DB2则在这一点上存在差距.这种差距是否致命各人有个人的看法,我从我的实际经验判断认为还是比较严重的.你怎么认为是你的事.你我也没必要强求一致.这些不要再纠缠了吧,该说的我前面的贴子都说了,多说也无益.

还有,所谓国外DB2市场DB2占用如何如何优势这种言论,不信也罢.这种数据商业气息太浓,你知道它是怎么统计出来的?什么平台上的?什么行业的?ORACLE和DB2都可以认为自己是老大,关键看是从哪个角度去统计,看谁的文字游戏和商业欺诈玩得出色,仅此而已.

具我所知,似乎还是IBM的文字游戏和商业欺诈更出色些.上次有家公司招标,该公司的人对数据库不了解,于是要求做测试,谁快选谁.一开始怎么测都是DB2快,ORACLE很不解.后来发现,你猜怎么着?原来DB2把许多参数都调了,许多必要的校验都去掉了,速度那个快啊,和飞似的.(怎么调的?比如我就知道把隔离级别降低不就是公开的一招吗?别的还有.不过ORACLE可是没有这种公开招数的.)后来ORACLE也联系老美,如法炮制加上了内部参数,结果速度也一样快.不知道后来那公司选的是什么.我说这些,是想让你明白,技术是技术,商业是商业,呵呵!


行了行了,别老是技术技术的,你们选用4节点的RAC,就说明你们根本不是认真从技术上考虑。我大概也可以猜到你是哪个公司的,4节点的RAC分明就是给ORACLE的商业手段给骗了,之前是否有成功的案例也没有仔细调查吧,而且没有先对选项做试验。当然IBM也这么玩,上次打算卖给我们的XPS,当然就直接找测试环境加应用测试,马上否决。
而且当时测试的还挺搞笑,因为用EMC的设备,EMC的一个销售(原来做ORACLE,而且据说做的挺高)偷偷低拉我过去说:“你们这么大的数据库,INFORMIX不行啊,干嘛不用ORACLE呢?如果在你们的库再大点,ORCLE也不行了,应该用DB2“。哈哈。


只看该作者    顶部
在线/呼叫 bpmfhu
风往北吹



精华贴数 11
个人空间 0
技术积分 8844 (141)
社区积分 1012 (966)
注册日期 2001-12-26
论坛徽章:29
现任管理团队成员ITPUB元老itpub2007年荐股参与纪念徽章管理团队2007贡献徽章管理团队2006纪念徽章会员2007贡献徽章
会员2006贡献徽章授权会员生肖徽章2007版:兔生肖徽章2007版:牛2008北京奥运纪念徽章:体操2008北京奥运纪念徽章:柔道

发表于 2004-4-2 09:08 
4节点的RAC确实比较少见


__________________
茅屋之下,或有贤良;蒿草之中,或有兰香. Blog:http://www.free2way.net
只看该作者    顶部
离线 wolfop
老会员



精华贴数 0
个人空间 0
技术积分 846 (2270)
社区积分 2 (23520)
注册日期 2002-2-11
论坛徽章:1
ITPUB元老     
      

发表于 2004-4-2 11:25 
对于并发问题我基本可以得到结论了,DB2缺省的隔离级别游标稳定性是比CR(ORACLE的缺省隔离级别)高的隔离级别。由于两者的隔离级别不相同,最好参考INFORMIX这种既有CR也有游标稳定性的数据库的隔离级别就清楚了。
隔离级别高当然导致可能并发性能的下降,就这样简单而已,ORACLE和INFORMIX是提供了一个满足SQL-92标准的东西,可以有比较好的并发性,DB2可能还是考虑原来主要在金融领域的应用,试图增加一些东西提供更强的隔离级别,但是自然并发就下降了。
至于DB2无法保证读一致性,纯属胡说。
当然由于DB2缺省的隔离级别的问题,要提高性能,DB2建议对读也要进行提交
http://www-900.ibm.com/developer ... at/0211sampat.shtml


只看该作者    顶部
离线 cliser
中级会员



精华贴数 0
个人空间 0
技术积分 467 (4216)
社区积分 35 (5914)
注册日期 2002-7-17
论坛徽章:1
授权会员     
      

发表于 2004-4-2 12:29 


QUOTE:
最初由 wolfop 发布
对于并发问题我基本可以得到结论了,DB2缺省的隔离级别游标稳定性是比CR(ORACLE的缺省隔离级别)高的隔离级别。由于两者的隔离级别不相同,最好参考INFORMIX这种既有CR也有游标稳定性的数据库的隔离级别就清楚了。
隔离级别高当然导致可能并发性能的下降,就这样简单而已,ORACLE和INFORMIX是提供了一个满足SQL-92标准的东西,可以有比较好的并发性,DB2可能还是考虑原来主要在金融领域的应用,试图增加一些东西提供更强的隔离级别,但是自然并发就下降了。
至于DB2无法保证读一致性,纯属胡说。
当然由于DB2缺省的隔离级别的问题,要提高性能,DB2建议对读也要进行提交
http://www-900.ibm.com/developer ... at/0211sampat.shtml


非常感谢你!也感谢楼上的各位。通过讨论,使我们对各大数据库更了解了。


只看该作者    顶部
离线 wxz75
一般会员



精华贴数 0
个人空间 0
技术积分 110 (15631)
社区积分 0 (85689)
注册日期 2003-5-12
论坛徽章:0
      
      

发表于 2004-4-2 14:11 
唉,又一个长篇大论的

我实在没有空继续长篇大论下去了,你要是想继续探讨,有没有电话,详细讨论?
另外奉劝你,说话注意点分寸,不要把我的论点断章取义,再说什么"纯属胡说"之类.在网上互相攻击,我已经没有兴趣了.有意思吗?
说到四节点RAC,你以为我想选啊?还是那句话:技术是技术,商务是商务.有时侯选型是领导的政治需要决定的,非完全取决于技术优劣.


只看该作者    顶部
相关内容


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