标题: [转贴]db2回滚处理问题讨论
zdygk
荣誉斑竹
Rank: 14Rank: 14Rank: 14Rank: 14
极品果壳大将军


LU爱心使者  
UID 114
精华 17
积分 1269
帖子 2408
活跃指数 107
LU金币 1031 个
LU金条 16619 个
阅读权限 200
注册 2003-9-24
 
发表于 2004-4-5 13:15  资料  个人空间  主页 短消息  加为好友 
个人整理了一下key words:
DSS OLTP CR 隔离级 脏读 RAC DB2分区数据库(SHARE-NOTHING) oracle并行服务器(ops,rac,share disk)。回滚段(rollback segment),SQL 92
-- db2回滚处理问题 (http://www.itpub.net/showthread.php?threadid=207514)


--------------------------------------------------------------------------------
由 jiangzx 于 04-03-25 17:57 发表:
db2回滚处理问题

本人是DB2的初学者,和oracle,sybase,sql server作比较,发现在处理rollback时有些疑问,象oracle是有rollback segment,sybase和sql server有日志段,但在DB2中好象是找不到类似于oracle的rollback segment或者是sybase之类的日志段,是不是其恢复和rollback都是利用其日志文件来实现,因为好象其日志文件有primary和secondary之分,而且有整个日志文件大小限制,是不是这个大小限制也决定了其能rollback的程度,不知道理解是否正确,请指导。


--------------------------------------------------------------------------------
由 wxz75 于 04-03-25 21:01 发表:
你发现了DB2的一个大问题!

没错,DB2没有rollback segment,它只有log.
回退时使用的是online log.

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

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


--------------------------------------------------------------------------------
由 jiangzx 于 04-03-25 22:02 发表:
db2

呵呵,其实发现db2在某些方面还是不错的,特别是在大型处理方面,可以比较方便的把数据库分散到多个节点上,但这其实也存在一个问题,在Unix平台下,好象需要把实例的相关代码放在共享NFS磁盘上,这好象又增加了安全方面的考虑了


--------------------------------------------------------------------------------
由 m505 于 04-03-26 11:10 发表:

呵呵,第一,任何由于日志空间满或主动roll back的交易,都可以被完整rollback;
第二,log file和读一致性没有关系。


--------------------------------------------------------------------------------
由 wxz75 于 04-03-26 15:04 发表:

没有ROLLBACK SEGMENT光靠LOG是可以rollback,但请你告诉我,DB2怎么实现同一时间点的读一致性?
IBM网站上自己承认DB2根本不支持读一致性,这样的数据库能用于关键业务吗?我很疑惑.


--------------------------------------------------------------------------------
由 m505 于 04-03-26 21:48 发表:

一致性通过isolation level解决

请告诉我ibm网址,我很有兴趣看一下。另外,如果你不相信db2可以用于关键业务,那你不要在工农中建交存钱


--------------------------------------------------------------------------------
由 zdygk 于 04-03-28 12:27 发表:

这怎么可能~ 居然对db2的这个基本问题有疑问?wxz75看来没有db2的应用经验啊。
__________________
I wanna to be a OCM!~~~


--------------------------------------------------------------------------------
由 wxz75 于 04-03-28 21:11 发表:
这种问题我当然知道

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

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

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


--------------------------------------------------------------------------------
由 cliser 于 04-03-29 08:35 发表:

在这个所谓的“问题”上,mssql 2000,sybase,db2都是一样的。他们都遵循sql92标准,只有ORACLE他独出心裁。呵呵。。。。而且上述3个都是NO SHARED DISK ,oracle 是 SHARED DISK。多说了一句。有利必有弊。体系不一样。看综合性能。所谓的缺点谁都有,可以通过其他手段弥补。


--------------------------------------------------------------------------------
由 jiangzx 于 04-03-29 09:02 发表:
tks

谢谢各位的意见,让我对DB2的了解增加了一些,谢谢


--------------------------------------------------------------------------------
由 wxz75 于 04-03-29 10:14 发表:
呵呵,看来我又得写上几句

没错,ROLLBACK 是ORACLE特有的,但可能恰恰是它的一个极大优势,这个问题不展开了.
说到结构,ORACLE使用的是share-disk结构, 4节点共享一块存储;DB2使用的是share-nothing结构, 4节点分别拥有各自的存储.如果ORACLE的一个节点宕,对其他节点几乎没有影响.而DB2一般来说表空间分散在nodegoup上,而nodegroup一般根据应用要求往往会包含至少2个节点.这样一来,DB2的一个节点宕,在相关资源切换完之前会对nodegroup内其他节点的可用性带来严重冲击.尽管如果设计得好, 切换时间可以控制在分钟级,但一个节点宕会影响其他节点这一点令电信类关键应用很难接受.DB2的share-nothing结构的提出主要是为了保证可扩展性和IO吞吐.但在目前高端存储和SAN网络开始流行的情况下,该架构的优点已经失去,相反稳定性上的缺点开始暴露.对ORACLE来说正相反.


--------------------------------------------------------------------------------
由 jiangzx 于 04-03-29 16:16 发表:
db2icrt

呵呵,DB2的分区数据库和群集应该是不同的概念吧,


--------------------------------------------------------------------------------
由 m505 于 04-03-29 16:32 发表:

1. 很重要,除了uncommited read以外,不存在读一致性的问题,而这不是ur所能提供的。
2. 很少有(几乎没有)rr/rs的应用,正如你所说,并发行很差(包括oracle)。
3. Oracle采用data page(block)上记录ITL来控制并发,代价是增加磁盘的开销。
4. 不管哪种方式都有其利弊,从实践上看,Oracle的机制好一些,db2的应用碰到的并发问题很多都是因为从Oracle移植过来 不过移植是很痛苦的
5. share-disk的问题不仅仅是IO吞吐,而是全局的锁,以及仅仅一个节点为请求工作。Oracle从未发布过比较好的/大的tpc-h cluster(RAC)测试。而这恰恰是SHARE-NOTHING的SCALABILITY的优势。我称之为inbeing
6. share-disk的可用性(inbeing)确实好,但不是宕机对其他节点没有影响,因为它涉及到remaster以及GCS重建 - 不知道10G有没有改进。DB2准备用Informix的HDR技术来解决这个问题。


--------------------------------------------------------------------------------
由 wxz75 于 04-03-29 17:30 发表:
看来版主果然有一定过人之处

很高兴与大家交流.由于时间关系很多观点我先不说了.
不过我想全局锁的问题,ORACLE9I的RAC比起原来的OPS来说,以我的实际经验来看,似乎确实长进不少.

实际上我现在的一个很强烈的感觉是:我不敢用DB2代替ORACLE.以前我曾经以为DB2可以,但自从我学DB2后就不敢了.我们电信业看重的是并发性能和稳定性,尤其是后者.考核也是很严的,可能外人会觉得不尽人情.在这种情况下,DB2的很多优点我都只能视而不见了,而稳定性和并发性上的缺陷对我而言几乎否定了DB2的一切.其实我还是就事论事纯粹讨论技术的,有些话我没有说,怕引起DB2爱好者的反感.实际上,DB2培训完之后,有ORACLE DBA说:'真想不到DB2这样一个具有如此致命缺陷的数据库竟然会有人感用!?连一致性都没有!?'实际上我当时也有类似想法,所以事后我才找IBM工程师探讨,谈了很多,谈到了390,还有IBM和银行业的关系,等等.后来我才明白DB2的许多特点(无论是优点还是缺点)是怎么来的.但现在我个人仍然认为在关键OLTP上,选择DB2类似于自杀,但在DSS或BATCH业务(如ERP和银行业务)上,DB2没问题.个人观点,欢迎指正.


--------------------------------------------------------------------------------
由 m505 于 04-03-29 17:54 发表:

呵呵,过奖了。有机会多探讨...

现在单台服务器的oltp性能已经很好了,单台p690上db2已经可以跑到1,000,000 tpmC(Oracle在Superdome上也做到了)。

想请教wxz75一个问题,您在用OPS/RAC吗?是如何使用的?


--------------------------------------------------------------------------------
由 wxz75 于 04-03-29 20:43 发表:
4-node RAC

用了没多久,也没太多经验.感觉性能还是比我预料的好,不过有BUG.对这些BUG ORACLE也没太多办法,有些BUG我们可能是全球首例,长时间查不出来.领导又不懂技术,对我们技术人员压力很大,唉......


--------------------------------------------------------------------------------
由 m505 于 04-03-29 23:16 发表:

有没有scalability的估计,比如4 node能有多少?


--------------------------------------------------------------------------------
由 bpmfhu 于 04-03-30 09:13 发表:

很受启发,我也一直对db2没有会滚段如何来保证数据库的读一致性,有疑惑。希望各位大虾们深入讨论,我搬个凳子来学习


--------------------------------------------------------------------------------
由 cliser 于 04-03-30 10:05 发表:

银行每天9点多业务高峰期的估计一个省也有3000个窗口在同时办业务。呵呵。。。你能说DB2不好。


--------------------------------------------------------------------------------
由 cliser 于 04-03-30 10:10 发表:

现在硬件太先进了。没有好的硬件,再好的数据库也不可以。我就不明白DB2在市场占有量占第一,外国人都傻啊?


--------------------------------------------------------------------------------
由 cliser 于 04-03-30 10:13 发表:

在DB28。1中有多维群集。也改进了索引。在大数据量上并发很好。


--------------------------------------------------------------------------------
由 bpmfhu 于 04-03-30 13:09 发表:

在DB28。1中有多维群集对存储空间的开销太大,在大数据量的数据库中觉得不太现实。
另外“改进了索引。在大数据量上并发很好“8的版本里面引入type2 index,具体好处,还没看出来。能具体说说吗?谢谢!


--------------------------------------------------------------------------------
由 m505 于 04-03-30 14:24 发表:

type 2 index使用psedo delete来避免next key lock


--------------------------------------------------------------------------------
由 m505 于 04-03-30 14:27 发表:

需要注意的是如果是从DB2 V7 migration到V8,type 1 index不会被自动转换


--------------------------------------------------------------------------------
由 bpmfhu 于 04-03-31 09:19 发表:

但是我在对一些大的查询做snapshot后,发现仍然出现ns锁,斑竹能否具体讲讲


--------------------------------------------------------------------------------
由 cliser 于 04-03-31 13:46 发表:

看来大家对DB2都很了解啊。


--------------------------------------------------------------------------------
由 wxz75 于 04-03-31 16:10 发表:
to cliser

冲你那几句话,我还真得说DB2不行.

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

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

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


--------------------------------------------------------------------------------
由 cliser 于 04-03-31 17:31 发表:

呵呵。。。火药味挺浓!不管怎么说都是数据库前3强。说明都不简单。以后继续交流。


--------------------------------------------------------------------------------
由 wxz75 于 04-03-31 20:10 发表:
哪里哪里,探讨而已,交流交流

有些话是看到过一些事情后有感而发.
不过我是搞技术的,商务我不管,只是知道一些.


--------------------------------------------------------------------------------
由 bpmfhu 于 04-03-31 20:32 发表:

不过db2确实最近在国内市场做得比较成功(:
我觉得db2这个板块比较冷清,楼上2位看来对db2都比较熟悉,能否多发表一些使用的宝贵经验,让我们学习,学习:)。


--------------------------------------------------------------------------------
由 cliser 于 04-04-01 12:07 发表:

我也是来学习的。请多多帮助。


--------------------------------------------------------------------------------
由 wolfop 于 04-04-01 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 于 04-04-01 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 于 04-04-01 22:14 发表:
Re: 你发现了DB2的一个大问题!


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

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

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


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


--------------------------------------------------------------------------------
由 wolfop 于 04-04-01 22:29 发表:

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


--------------------------------------------------------------------------------
由 wolfop 于 04-04-01 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 于 04-04-02 09:08 发表:

4节点的RAC确实比较少见


--------------------------------------------------------------------------------
由 wolfop 于 04-04-02 11:25 发表:

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


--------------------------------------------------------------------------------
由 cliser 于 04-04-02 12:29 发表:


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




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


--------------------------------------------------------------------------------
由 wxz75 于 04-04-02 14:11 发表:
唉,又一个长篇大论的

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


--------------------------------------------------------------------------------
由 cliser 于 04-04-02 14:56 发表:

听说IBM DB2在国内有8节点的成功例子(是IBM中国的人在由CSDN主持的论坛的讨论时说的).


--------------------------------------------------------------------------------
由 wolfop 于 04-04-02 21:41 发表:
是啊,而且你是什么都没有说


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


我仔细找了找ORACLE的读一致性资料,终于弄明白那个东西利用回滚段建立的一个幻象读的结果,也许有他的意义,也许是噱头而已。如果你认为这个东西是OLTP系统必要的东西,倒是让我很诧异,想法BATCH可能才需要这个东西。我倒是想看看你这个读一致性在OLTP系统中的用处。
顺便请你解释解释390上面的DB2的机制和开放系统的不同之处。


--------------------------------------------------------------------------------
由 wolfop 于 04-04-03 00:15 发表:


quote:
--------------------------------------------------------------------------------
最初由 cliser 发布
听说IBM DB2在国内有8节点的成功例子(是IBM中国的人在由CSDN主持的论坛的讨论时说的).
--------------------------------------------------------------------------------


32节点都有,不过那个是DSS的东西。


--------------------------------------------------------------------------------
由 wxz75 于 04-04-03 08:56 发表:
看来要和DB2的用户说明白读一致性的必要性等问题还真是累

要说清楚得打多少字啊!?我又没职责在这儿上课.我看你也是对数据库很有经验的人,讨论一下对大家或许都又提高.给个电话,OK?

不过关于这个问题我和IBM的人探讨过,最后结果是他们被我说服,承认这方面DB2存在不足.呵呵!所以我可决不是信口开河哦!


--------------------------------------------------------------------------------
由 wolfop 于 04-04-03 11:11 发表:

我看了http://asktom.oracle.com/pls/ask/f?...A:880343948514,
虽然有点道理,但是我还是不认为这个东西有多少作用。
这种东西,感觉和IBM指责ORACLE不存在真正的分区一样,属于比较无聊的东西,或者ORACLE指责DB2的集群如果一个节点DOWN整个集群就会完蛋一样,没有绝对正确的答案。
INFORMIX DB2 SQL SERVER都没有这个所谓的读一致性,照样大量用在关键场合;INTERBASE和MYSQL的INNODB实现了的又如何?
把这个当作一个DBMS是否适合作为关键的OLTP应用的评价标准,纯属搞笑。
关于这点http://dbforums.com/arch/49/2002/12/584474
也有类似讨论。至于并发性能,我还是认为这种通过提供幻象读解决问题的方法,并不见得很好。[/url]





Major :  ETL AIX+JAVA+DB2
Hobby: shell+os-developer

DB2 is the Best Pure RDBMS; Oracle is an aspirant
顶部
blueant
LU幼天使
Rank: 2



UID 188
精华 0
积分 32
帖子 64
活跃指数 0
LU金币 2006 个
LU金条 0 个
阅读权限 20
注册 2003-9-28
 
发表于 2004-4-5 14:35  资料  个人空间  短消息  加为好友 
首先最近也在学习DB2,我发现了这个问题。在我用一个session对数据作insert,update,delete操作的时候,出现了其他session访问此表数据的时候被无限期的挂起了,我当时就觉得很诧异。开始我以为是DB2用的是表级lock,觉得这简直不能忍受。现在看来这个问题是很严重呀!不能保证读一致性,这对大量并发的事物系统简直就是恶梦呀!

顶部
netsay
LU新生
Rank: 1



UID 4188
精华 0
积分 5
帖子 9
活跃指数 0
LU金币 2006 个
LU金条 0 个
阅读权限 10
注册 2003-12-1
 
发表于 2004-4-13 15:54  资料  个人空间  短消息  加为好友 
db2 在一个INSERT 操作没有COMMIT的情况下,其他任何SESSION如果不使用WITH UR选项的话不能查询出数据,一直在等提交(如果设置了TIMEOUT,则可返回查询错误)。所以对于DB2来说,不能按ORACLE的思维来干活!关键是他没有回滚段。所以一定要记得COMMIT。即使是DDL语句也是如此!

顶部
ccd1999
LU新生
Rank: 1



UID 21150
精华 0
积分 2
帖子 3
活跃指数 0
LU金币 2006 个
LU金条 0 个
阅读权限 10
注册 2004-5-19
 
发表于 2004-5-19 18:05  资料  个人空间  短消息  加为好友 
此前用SQLServer、Informix,刚刚接触Oracle,感觉Oracle的“读一致性”确实是不错的东东:逻辑上非常严谨,效率上达到了事务的隔离性和并发性的最佳统一。对于其它数据库(其实我也就懂SQLServer、Informix,而且大家都不把SQLServer看作专业的数据库),确实没有这个概念,在第一个事务修改数据时,第二个需要访问前一个事务操作的记录的查询事务只能等待。而且第二个事务的返回结果经常跨越第一个事务的前后,逻辑上非常不合理。

前面有说是否支持rollback与是否有回滚段有关,这显然不对。所有这些主要数据库(据我所知)的日志文件都包含了每个事务的前像和后像,回滚完全可以根据日志文件来完成,只不过Oracle的回滚段、Informix的物理日志便于事务的快速恢复罢了。

对Informix而言,其物理日志非常类似于Oracle的回滚段,当然也有区别,实质性的区别时Informix的事务可以跨越物理日志的范围,从而Informix不可能根据物理日志取得一个事务的所有前像,也就是不能支持类似Oracle的“读一致性”。

其实Informix的物理日志也有类似于Oracle回滚段“读一致性”的功能:Informix的在线备份就是采用物理日志中保存的前像,备份“一致性”的数据,而不是直接把数据缓冲中的“脏”数据备份下来。

顶部
ccd1999
LU新生
Rank: 1



UID 21150
精华 0
积分 2
帖子 3
活跃指数 0
LU金币 2006 个
LU金条 0 个
阅读权限 10
注册 2004-5-19
 
发表于 2004-6-3 10:03  资料  个人空间  短消息  加为好友 
发现上次回帖中,关于事务回滚与事务日志的关系我的说法有误。准确说法应为:
在Oracle中,事务的回滚是依据“回滚段”中的前像实现的(在最新的Oracle10g中,可以使用专用的回滚表空间),而Informix是根据逻辑日志、SQLServer是根据事务日志(SQLServer只有单一的事务日志)恢复的。
Informix的物理日志与Oracle的回滚段有很大不同。Informix的物理日志只保持自上次检查点开始时的事务前像(不会保存事务内重复修改记录的多份前像),目的是用于快速恢复到上次检查点的状态,以及用于数据库备份。
只有Oracle在任何隔离级别提供了SQL语句级的读一致性,Informix、SQLServer都在最高的隔离级别提供这个意义上的读一致性。

顶部
zdygk
荣誉斑竹
Rank: 14Rank: 14Rank: 14Rank: 14
极品果壳大将军


LU爱心使者  
UID 114
精华 17
积分 1269
帖子 2408
活跃指数 107
LU金币 1031 个
LU金条 16619 个
阅读权限 200
注册 2003-9-24
 
发表于 2004-6-4 11:24  资料  个人空间  主页 短消息  加为好友 
呵呵。各位大牛帮我拿了一个精华。感谢感谢! laugh.gif





Major :  ETL AIX+JAVA+DB2
Hobby: shell+os-developer

DB2 is the Best Pure RDBMS; Oracle is an aspirant
顶部
[广告] 记录自己的思想火花,留住每日的技术积累,尽在拥有属于自己独立域名的博客。
 



当前时区 GMT+8, 现在时间是 2008-11-23 07:25
乐悠LoveUnix论坛-京ICP备05005823号

Thanks to Discuz!  © 2001-2007    Power by LoveUnix.net
Processed in 0.069307 second(s), 6 queries , Gzip enabled

清除 Cookies - 联系我们 - 乐悠LoveUnix - Archiver