关于回退段的获取规则,教材书上的一句话,我怎么读不明白?

[复制链接]
查看11 | 回复4 | 2015-8-18 12:18:21 | 显示全部楼层 |阅读模式
关于回退段的获取规则,书中写到:
规则1:实例必须至少获得一个回退段。如果仅有一个实例访问数据库,将为它分配SYSTEM回退段。如果同时有多个实例访问同一个数据库,除了将SYSTEM回退段作为各个实例的公用回退段来使用外,还必须至少为每个实例再分配一个非SYSTEM回退段。如果非SYSTEM回退段的数目不足,实例将无法启动。[/COLOR]
这红字包含的意思,我怎么觉得不太正确呢?
我个人经过书和网上的资料,对回退段的理解是:
一,仅有一个实例访问数据库时
1,假设该实例需要3个回退段(通过CEIL(TRAN/TRAN_PER_ROLLBACK_SEGEMENT算出)
如果已经为该实例指定了3个私有回退段
既:ROLLBACK_SEGMENT中定义了3个以上的回退段
那么它只用私有回退段保存用户数据,用SYSTEM段保存系统事务数据。
2,没有指定任何私有回退段,但定义了非SYSTEM回退段,则此时,实例从这个公有回退段中获取3个段。
3,如果指定了1个私有回,又定义了非SYSTEM回,此时,是私有用1个回,公有取2个回。
4,若没定义非SYSTEM段,用SYSTEM段。
二,多个实例访问数据库时
基本原则同上,但私有回退段的使用上,各实例只能用各自被指定的私有回退段。如果私有回不足,再共享公用回退段,但此时,一个公共段中可能同时保存着来自不同事务的数据。若没定义非SYSTEM段,用SYSTEM段。
不知道,是不是我的理解有偏差,我不认为多实例访问时,为什么
必须[/COLOR]要为每个[/COLOR]实例都分配非SYSTEM回退段啊?大家都共享使用SYSTEM段或定义好的非SYSTEM回段不就可以了吗?
还请各位好人,给帮忙指点一下!
回复

使用道具 举报

千问 | 2015-8-18 12:18:21 | 显示全部楼层
您看的什么教材啊?关于RAC的?
还是什么啊
回复

使用道具 举报

千问 | 2015-8-18 12:18:21 | 显示全部楼层
最初由 yanggq 发布
[B]您看的什么教材啊?关于RAC的?
还是什么啊 [/B]

对,是清大出版的ORACLE9I数据库培训教程
(另,个人人为这本书写的不错,易于理解)
回复

使用道具 举报

千问 | 2015-8-18 12:18:21 | 显示全部楼层
回退段是不在推荐使用的,还是使用UNDO TBS吧,这个意思是说,每个实例应该有自己的回滚段,以存放在这个实例上发生的DML的数据的前影响,就像每个实例的有自己的UNDOTBS一样
回复

使用道具 举报

千问 | 2015-8-18 12:18:21 | 显示全部楼层
最初由 myfraid 发布
[B]回退段是不在推荐使用的,还是使用UNDO TBS吧,这个意思是说,每个实例应该有自己的回滚段,以存放在这个实例上发生的DML的数据的前影响,就像每个实例的有自己的UNDOTBS一样 [/B]

多谢关心回复.
我们现在的项目,用的是ORA8I啊,不能用UNDOTBS,所以,偶才深究回退段.没办法啊~~~~~
书中的意思,是说,多实例时,还必须为每个实例至少定义一个私有回退段吗? 不定义可不可以,如果不定义任何非SYSTEM回退段,那么多实例访问时,是会出错吗? 虽然这样做是很恶劣的做法,但是想问,我就只用SYSTEM表空间做回退段,能不能处理多实例并行呢?
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行