楼主: jiangzx

[精华] db2回滚处理问题

[复制链接]
论坛徽章:
2
参与2007年甲骨文全球大会(中国上海)纪念
日期:2007-08-06 15:19:01
81#
发表于 2004-6-5 16:13 | 只看该作者

而且银行也不都是DB2 呀?

工行是IBM 大型主机数据库,不是DB2 UDB,
农行是SYBASE,
建行是UNISYS大型主机或者INFORMIX,
中行很多是ORACLE。
基本上都有,
不过没有DB2 UDB。

使用道具 举报

回复
论坛徽章:
78
ITPUB15周年纪念
日期:2020-08-28 17:23:53双鱼座
日期:2016-03-19 19:38:31秀才
日期:2016-02-18 09:31:52秀才
日期:2016-01-25 15:02:04双子座
日期:2016-01-19 20:35:54秀才
日期:2016-01-13 12:14:26秀才
日期:2015-12-25 15:31:10秀才
日期:2015-12-18 09:28:57秀才
日期:2015-12-14 14:56:09秀才
日期:2015-12-14 14:51:16
82#
发表于 2004-6-8 16:34 | 只看该作者

当然要分析具体情况

最初由 sunfire_bj 发布
[B]呵呵,

你老兄也太早下结论了吧!
我们省上的系统全部都是4 个节点的4CPU4G内存的Oracle RAC服务器,大体还是很好用的,至少比8个CPU8G内存的小型机性能要好不少,不过硬件成本可低多了。

[/B]

不过从你用PC SERVER做4节点RAC,估计你的应用不见得很大,至于和8CPU的小型机比较,你说的那种,SUN3K这样的8CPU和P670的8CPU差异很大。

使用道具 举报

回复
论坛徽章:
0
83#
发表于 2004-6-9 16:43 | 只看该作者
转:
工行是IBM 大型主机数据库,不是DB2 UDB,
农行是SYBASE,
建行是UNISYS大型主机或者INFORMIX,
中行很多是ORACLE。
基本上都有,
不过没有DB2 UDB。


如果是说核心的交易处理的话,4大银行还不都是主机
其他系统里有用DB2的,比如Call Center,不过用得比较少的确是个事实

使用道具 举报

回复
论坛徽章:
0
84#
发表于 2004-6-9 16:53 | 只看该作者
这样下去要把TP Monitor也扯进来了,竟然已经讨论到两阶段递交了,这也扯得太远了吧,跟原来讨论的有什么关系呀

使用道具 举报

回复
论坛徽章:
0
85#
发表于 2004-6-16 12:39 | 只看该作者

能不能再详细点?

最初由 sunfire_bj 发布
[B]工行是IBM 大型主机数据库,不是DB2 UDB,
农行是SYBASE,
建行是UNISYS大型主机或者INFORMIX,
......
[/B]


省级银行与地市银行的通讯及数据交换方案是怎么样的?
银联的数据交换方案是怎样的?用了什么技术?
异地银行汇兑的数据交换方案是怎样的?用了什么技术?
请用实例说明.

请赐教.....

使用道具 举报

回复
论坛徽章:
0
86#
发表于 2004-6-18 15:50 | 只看该作者
看各位高手的畅谈,在下虽不太看得懂,但深表佩服,开了眼界。我为各位大侠鼓鼓掌,以后会经常来恭听。

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2005-10-30 17:05:33
87#
发表于 2004-6-20 14:24 | 只看该作者
WOLFOP你的火气太大了.

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2005-10-30 17:05:33
88#
发表于 2004-12-22 12:24 | 只看该作者
好贴,不过似乎没有什么结论

使用道具 举报

回复
论坛徽章:
0
89#
发表于 2004-12-22 17:18 | 只看该作者
本人做了一个简单的对比,有不当的地方请DX指点

DB2 V8.11与ORACLE 9I RELEASE 2的区别
1
DB2的表中的列只可以添加,不可以删除,改名,并且只有VARCHAR类型的长度可以增加 udb V8.2可以改字段

名称,删除字段,字段类型转换等,但是有时会发生错误
ORACLE的表的列中可以添加,删除,改名,某些字段类型可以相互转换

2
DB2和ORACLE都可以预读
DB2:可以针对每个表空间设定不同的预读大小ALTER TABLESPACE USERSPACE1 PREFETCHSIZE 4;
ORACLE:通过参数修改DB_FILE_MULTIBLOCK_READ_COUNT来指定ORACLE实例的预读大小

3
DB2的页相当于ORACLE的DB BLOCK
DB2表的EXTENT大小是相等的,ORACLE表的EXTENT可以是不等的

4
DB2在建立表空间时可以指定页的大小,ORACLE的主DB BLOCK SIZE在建立数据库时确定以后不可以更改,但

是可以修改参数DB_N_CACHE_SIZE,然后建立从块大小的表空间

5
DB2可以建立系统管理和数据库管理的表空间,系统管理表空间可以自动扩展,但数据库管理表空间不能自

动扩展
ORACLE可以建立字典管理和本地管理的表空间都可以自动扩展

6
DB2只有一种被表空间使用的缓冲池可以被手工创建并且可以创建多个,一个表空间只能选用一个缓冲池,D

B2也有日志缓冲等其它缓冲池但不可以人为创建或手工设定,ORACLE有多种类型的缓冲池如日志缓冲池,字

典缓冲池,数据缓冲池,JAVA池,LARGE池都可以通过参数据设定其大小,但是每种缓冲池只有一个

7
DB2的表空间类型有普通类型,大类型,系统临时类型,用户临时类型的表空间
ORACLE的表空间有永久,临时,还原类型的表空间

8
DB2创建表时可以指定CLOB 或BLOB型字段属于某一个大型表空间,索引属于某一个数据库管理的表空间,其

它的列属于一个数据库管理表空间,并且这样的表只能使用数据库管理的表空间,只有数据库管理的表空间

中的表可以跨表空间,表建立以后将不能更改所属表空间,可以更改主索引名称
CONNECT TO XYFDB;
ALTER TABLE ADMINISTRATOR.E DROP PRIMARY KEY ADD CONSTRAINT IDAAA PRIMARY KEY ( A) ;
CONNECT RESET;

ORACLE创建表时可以将多个字段和索引按照值的范围自动的属于多个表空间,但是如果表中有LONG字段将

不支持此表成为分区表,并且ORACLE的表只能含有一个LONG型字段,可以更改所属表空间如
ALTER INDEX "XYF"."IDX_AAAAAA"
    REBUILD
    PARTITION "A"  
    TABLESPACE "USERS"
但是不可以更改索引的名称

9
ORACLE有回滚段,ORACLE的回滚依赖回滚段,前滚依赖日志,能够实现读一致性(注意与数据库不同版本特性

WORKSPACE的区别),实现高度的事务隔离,对于大事务要求大的回滚段,回滚段不够大有可能出现快照太旧

的错误,含有活动事务的日志可以被归档,而不会影响数据库的运行.
DB2没有回滚段,前滚回滚都依赖于日志,因此,含有活动事务的日志不可以成为脱机归档日志,如果主日志

写满,就产生附加的日志,如果附加日志有数量限制,达到限制后数据库将会被挂起.个人认为DB2存在读一

致性的问题,UNCOMMIT READ隔离级可以并发读取,但是是脏读,Read Stability隔离级不能做到高度的事务
隔离,Repeatable Read可以实现事务隔离,但是并发性受到限制。

如果有人对ORACLE的读一致性有疑惑可以看一看以下的例子:
下面是几个关于回滚段和死锁的事例:
有表:Test (id number(10))  有记录1000000条
SQL> create table test (id number(10)) tablespace users;
表已创建。
SQL> begin
  2  for i in 1..1000000 loop
  3  insert into test values(i);
  4  end loop;
  5  commit;
  6  end;
  7  /
PL/SQL 过程已成功完成
一,大SELECT,小UPDATE
A会话----Select * from test;----设scn=101----执行时间09:10:11
B会话-----Update test set id=9999999 where id=1000000----设scn=102-----执行时间09:10:12
我们会发现B会话会在A会话前完成,A会话中显示的ID=100000是从回滚段中读取的,因为A会话在读到ID=1000000所在的BLOCK时发现BLOCK上有事务信息,因此要从回滚段中读,如果UPDATE在SELECT读到此BLOCK之前已经COMMIT,则SELECT 读到此BLOCK时发现其BLOCK上没有事务信息,但是会发现其BLICK的SCN比SELECT自己的SCN大,因此也会从回滚段中读取。因此是否从回滚段读一是看是否有事务信息,二是比较SCN大小。如果B会话在A会话结束前连续多次对同一条记录UPDATE并COMMIT,那么在回滚段中将记录多个“前映像”,而每个“前映像”中不但包括了原BLOCK的数据和SCN也记录了“前前映像”的回滚段地址,因此A会话在查询到被UPDATE过的BLOCK时,会根据BLOCK记录的回滚段的地址,找到回滚段中的“前映像”,发现这个“前映像”的SCN也比自己的大,因此将根据这个“前映像”中记录的“前前映像”的回滚段地址,在回滚段中找到“前前映像”,再与这个“前前映像”比较SCN,如果比自己小就读取,如果还比自己大,则重复以上步骤,直到找到比自己SCN小的“前…前映像”为止,如果找不到,就会报ORA-01555快照太旧这个错误。Oracle回滚段确保了事务的高度的隔离性。即只要回滚段足够大,那么一个SELECT不管执行多长,它读取的所有数据都将是在这条SELECT语句开始执行瞬间这个时间点的值,而不会被其它用户在SELECT读取期间对数据是做过修改而影响。
二、大UPDATE,小SELECT
A会话----Update test set id=1;----设scn=101----执行时间09:10:11
B会话-----select * from test where id=1000000----设scn=102-----执行时间09:10:12
我们会发现B会话会在A会话前完成,B会话中显示的ID=1000000是从BLOCK中直接读取的,因为B会话在读到ID=1000000所在的BLOCK时,A会话还没有来得及对其锁定,因此B会话既不会发现BLOCK上有事务信息,也不会发现BLOCK上的SCN比SELECT的大,因此会从BLOCK中直接读取,如果SELECT在UPDATE锁定此BLOCK后才发出,B会话读到此BLOCK时发现其BLOCK上有事务信息,因此会从回滚段中读取。

三、大UPDATE,小UPDATE
A会话----Update test set id=1;----设scn=101----执行时间09:10:11
B会话1-----Update test set id=999999 where id=1000000----设scn=102-----执行时间09:10:12
B会话2----- select * from test where id=2----设scn=103-----执行时间09:10:14
B会话3----- update test set id=3 where id=2----设scn=104-----执行时间09:10:15
我们会发现B会话1会完成,A会话将一直等待,因为B会话1会先于A会话锁定ID=1000000所在的BLOCK,并改写头部的事务信息,A会话在试图锁定此BLOCK时,发现其上有事务信息,将会一直等待B会话1事务结束后再行锁定, B会话2查询到的ID=2是从回滚段中读取的而不是从BLOCK中直接读出来的。因为A会话已将ID=2的BLOCK锁定,并写入了回滚段,从B会话3可以证明这一点,B会话3发出后,B会话3会收到死锁的信息,死锁的原因是A会话在等待B会话对ID=1000000所在的BLOCK解锁,现在B会话又在等待A会话对ID=2所在的BLOCK解锁,因此形成死锁,因此证明ID=2所在的BLOCK已被A会话锁定,然后A会话也会收到死锁的信息

使用道具 举报

回复
论坛徽章:
21
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20版主1段
日期:2012-05-15 15:24:11管理团队成员
日期:2013-05-02 11:19:53马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:13:20
90#
发表于 2004-12-22 22:14 | 只看该作者
并发性好不好和能否达到读一致性没有关系。
谈了这么多读一致性,也没有给出一个定义?没有定义的概念如何讨论?

ACID,数据库的重要理论之一
http://databases.about.com/od/specificproducts/a/acid.htm

另外,日志只要写满,就可以被归档,日志满数据库不会被挂起,达到日志满的交易会被回滚,可以用参数设定日志满时block新的交易。另外,db2 v8支持无限日志。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表