分享
 
 
 

Oracle 9i新特性研究三(撤销段的自动管理)

王朝oracle·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

Oracle 9i新特性研究

三 撤销段的自动治理

在Oracle 9i里,一个很显著的新特性就是引入了自动的回滚段治理,当使用了AUM (Automatic Undo Management)时,为了区别,名称也由原来的ROLLBACK SEGMENT(回滚段)变成UNDO SEGMENT(撤销段),相对应的是UNDO TABLESPACE。当然我们也可以继续使用传统的MANUAL方式来治理撤销段。

一、初始化参数

使用下面的参数来设置有ORACLE自动治理撤销段:

UNDO_MANAGEMENT = AUTO

ORACLE会自动完成撤销段的创建、删除以及ONLINE/OFFLINE,而DBA将无法干预所有以上操作。

假如想自己来治理回滚段可以将UNDO_MANAGEMENT设成MANUAL(DEFAULT就是MANUAL的)。虽然我们可以在UNDO表空间上创建回滚段,但ORACLE并不建议这样做。

当使用了AUM,我们唯一需要做的就是至少创建一个UNDO表空间,我们可以创建多个UNDO表空间,然后使用下面的参数来指定具体使用哪个。

UNDO_TABLESPACE =UNDORBS1

SQL> l

1* select name ,value from v$parameter where name like 'undo%'

SQL> /

undo_management MANUAL

undo_tablespace UNDOTBS1

undo_suppress_errors FALSE

undo_retention 10800

创建多个UNDO表空间的好处是,我们可以根据不同的应用在不同大小的UNDO表空间之间进行切换。

二、UNDO表空间的创建

1、在建数据库是创建UNDO表空间,具体方法参见本人写的Oracle 9i安装、建库与升级。文章在www.ncn.cn上有下载。

2、我们也可以通过下面的语句来创建:

Create undo tablespace undotbs2 datafile ‘/dev/rundotbs2_1.dbf’ size 100m;

三、UNDO表空间特性

1、UNDO表空间默认就是LOCAL治理方式:

SQL> l

1 select TABLESPACE_NAME, CONTENTS,EXTENT_MANAGEMENT, ALLOCATION_TYPE,

2 SEGMENT_SPACE_MANAGEMENT

3* from dba_tablespaces where contents='UNDO'

SQL> /

TABLESPACE_NAME CONTENTS EXTENT_MANAGEMENT ALLOCATION_TYPE SEGMENT_SPAC

-------------------- ------------------ -------------------- ------------------ ------------

UNDOTBS1 UNDO LOCAL SYSTEM MANUAL

UNDOTBS2 UNDO LOCAL SYSTEM MANUAL

2、除撤销段外,我们不能在UNDO表空间上作其他操作:

SQL> create table gototop_t1(c1 number) tablespace undotbs1;

create table gototop_t1(c1 number) tablespace undotbs1

*

ERROR 位于第 1 行:

ORA-30022: Cannot create segments in undo tablespace

SQL> l

1* create rollback segment ncn_rb1 tablespace undotbs1

SQL> /

create rollback segment ncn_rb1 tablespace undotbs1

*

ERROR 位于第 1 行:

ORA-30019: Illegal rollback Segment operation in Automatic Undo mode

3、一个实例职能使用一个UNDO表空间:

除了在INIT.ORA中指定UNDO表空间外,我们还可以使用下面的语句来在线更改实例所用的UNDO表空间:

SQL> alter system set undo_tablespace=undotbs2;

系统已更改。

四、撤销段的特性

1、撤销段自动创建:

Ø n个撤销段(n基于SESSIONS参数,后面会具体讲)

Ø 名字为_SYSSMUn$

Ø OWNER为PUBLIC(在RAC配置中有用)

Ø 选择AUM后,无法手动治理

SQL> l

1 select owner,segment_name,tablespace_name,status

2* from dba_rollback_segs order by 4

SQL> /

OWNER SEGMENT_NAME TABLESPACE_NAME STATUS

---------- ------------------ -------------------- --------------------------------

PUBLIC _SYSSMU1$ UNDOTBS1 OFFLINE

PUBLIC _SYSSMU2$ UNDOTBS1 OFFLINE

PUBLIC _SYSSMU3$ UNDOTBS1 OFFLINE

PUBLIC _SYSSMU5$ UNDOTBS1 OFFLINE

PUBLIC _SYSSMU7$ UNDOTBS1 OFFLINE

PUBLIC _SYSSMU9$ UNDOTBS1 OFFLINE

PUBLIC _SYSSMU10$ UNDOTBS1 OFFLINE

PUBLIC _SYSSMU8$ UNDOTBS1 OFFLINE

PUBLIC _SYSSMU6$ UNDOTBS1 OFFLINE

PUBLIC RB1_CYX1 UNDOTBS1 OFFLINE

PUBLIC RB1_CYX UNDOTBS1 OFFLINE

SYS RB1_08 UNDOTBS1 OFFLINE

SYS RB1_07 UNDOTBS1 OFFLINE

SYS RB1_05 UNDOTBS1 OFFLINE

SYS RB1_04 UNDOTBS1 OFFLINE

SYS RB1_03 UNDOTBS1 OFFLINE

SYS RB1_02 UNDOTBS1 OFFLINE

SYS RB1_01 UNDOTBS1 OFFLINE

SYS RB3_06 UNDOTBS3 OFFLINE

SYS RB3_05 UNDOTBS3 OFFLINE

SYS RB3_04 UNDOTBS3 OFFLINE

SYS RB3_03 UNDOTBS3 OFFLINE

SYS RB3_02 UNDOTBS3 OFFLINE

SYS RB3_01 UNDOTBS3 OFFLINE

SYS RB2 INDX OFFLINE

PUBLIC _SYSSMU4$ UNDOTBS1 OFFLINE

SYS SYSTEM SYSTEM ONLINE

PUBLIC _SYSSMU11$ UNDOTBS2 ONLINE

PUBLIC _SYSSMU12$ UNDOTBS2 ONLINE

PUBLIC _SYSSMU13$ UNDOTBS2 ONLINE

PUBLIC _SYSSMU14$ UNDOTBS2 ONLINE

PUBLIC _SYSSMU15$ UNDOTBS2 ONLINE

PUBLIC _SYSSMU16$ UNDOTBS2 ONLINE

PUBLIC _SYSSMU17$ UNDOTBS2 ONLINE

PUBLIC _SYSSMU18$ UNDOTBS2 ONLINE

PUBLIC _SYSSMU19$ UNDOTBS2 ONLINE

PUBLIC _SYSSMU20$ UNDOTBS2 ONLINE

已选择37行。

SQL>

因为我在系统上作测试,之前手动建过回滚段,所以上面返回结果显一般多。

2、只有活动的UNDO表空间上的撤销段和系统回滚段是ONLINE的,其他的撤销段都是OFFLINE的。

这一点从上面的输出中可以清楚地看到。

不过,也不一定一开始所有的撤销段都会ONLINE的,这要依靠于初始化参数SESSIONS的值,默认SESSIONS = 1.1 * PROCESSES + 5,他决定了系统的并发用户数。下面的实验可以让你对这一情况有个明确的熟悉。

我们将SESSIONS调小后重起数据库,可以看到活动的UNDO表空间UNDOTBS1上共10个撤销段,但只ONLINE了5个。

SQL> show parameter sessions

NAME TYPE VALUE

------------------------------------ ---------------------- -----------

Java_max_sessionspace_size integer 0

java_soft_sessionspace_limit integer 0

license_max_sessions integer 0

license_sessions_warning integer 0

logmnr_max_persistent_sessions integer 1

mts_sessions integer 0

sessions integer 27

shared_server_sessions integer 0

SQL> select owner,segment_name,tablespace_name,status

2 from dba_rollback_segs;

OWNER SEGMENT_NAME TABLESPACE_NAM STATUS

------------ -------------------- -------------- ----------

SYS SYSTEM SYSTEM ONLINE

PUBLIC _SYSSMU1$ UNDOTBS1 ONLINE

PUBLIC _SYSSMU2$ UNDOTBS1 ONLINE

PUBLIC _SYSSMU3$ UNDOTBS1 ONLINE

PUBLIC _SYSSMU4$ UNDOTBS1 ONLINE

PUBLIC _SYSSMU5$ UNDOTBS1 ONLINE

PUBLIC _SYSSMU6$ UNDOTBS1 OFFLINE

PUBLIC _SYSSMU7$ UNDOTBS1 OFFLINE

PUBLIC _SYSSMU8$ UNDOTBS1 OFFLINE

PUBLIC _SYSSMU9$ UNDOTBS1 OFFLINE

PUBLIC _SYSSMU10$ UNDOTBS1 OFFLINE

PUBLIC _SYSSMU11$ UNDOTBS2 OFFLINE

PUBLIC _SYSSMU12$ UNDOTBS2 OFFLINE

PUBLIC _SYSSMU13$ UNDOTBS2 OFFLINE

PUBLIC _SYSSMU14$ UNDOTBS2 OFFLINE

PUBLIC _SYSSMU15$ UNDOTBS2 OFFLINE

PUBLIC _SYSSMU16$ UNDOTBS2 OFFLINE

PUBLIC _SYSSMU17$ UNDOTBS2 OFFLINE

PUBLIC _SYSSMU18$ UNDOTBS2 OFFLINE

PUBLIC _SYSSMU19$ UNDOTBS2 OFFLINE

PUBLIC _SYSSMU20$ UNDOTBS2 OFFLINE

SYS RB1_01 UNDOTBS1 OFFLINE

SYS RB1_02 UNDOTBS1 OFFLINE

SYS RB1_03 UNDOTBS1 OFFLINE

SYS RB1_04 UNDOTBS1 OFFLINE

SYS RB1_05 UNDOTBS1 OFFLINE

SYS RB1_07 UNDOTBS1 OFFLINE

SYS RB1_08 UNDOTBS1 OFFLINE

PUBLIC RB1_CYX UNDOTBS1 OFFLINE

PUBLIC RB1_CYX1 UNDOTBS1 OFFLINE

SYS RB2 INDX OFFLINE

SYS RB3_01 UNDOTBS3 OFFLINE

SYS RB3_02 UNDOTBS3 OFFLINE

SYS RB3_03 UNDOTBS3 OFFLINE

SYS RB3_04 UNDOTBS3 OFFLINE

SYS RB3_05 UNDOTBS3 OFFLINE

SYS RB3_06 UNDOTBS3 OFFLINE

已选择37行。

SQL>

五、AUM和RAC

UNDO空间治理方式在RAC中会有一些非凡的要求。

1、RAC所有实例应使用相同UNDO治理模式。

2、不同的实例应使用不同的UNDO表空间,假如没有明确设置不同的UNDO_TABLESPACE参数,每个实例会自动使用第一个可用的UNDO表空间。

六、其它说明

1、当在AUTO模式下进行MANUAL操作时,我们可以设置初始化参数UNDO_SUPPRESS_ERRORS = TRUE来禁止所有报错信息,慎用!

SQL> l

1* alter rollback segment "_SYSSMU6$" online

SQL> /

alter rollback segment "_SYSSMU6$" online

*

ERROR 位于第 1 行:

ORA-30019: Illegal rollback Segment operation in Automatic Undo mode

SQL> alter system set UNDO_SUPPRESS_ERRORS = TRUE;

系统已更改。

SQL> alter rollback segment "_SYSSMU6$" online;

回退段已变更。

SQL>

这条语句看起来是操作成功了,但实际上什么事也没有干!

SQL> select owner,segment_name,tablespace_name,status

2 from dba_rollback_segs where status ='ONLINE';

OWNER SEGMENT_NAME TABLESPACE_NAM STATUS

------------ -------------------- -------------- ---------------

SYS SYSTEM SYSTEM ONLINE

PUBLIC _SYSSMU1$ UNDOTBS1 ONLINE

PUBLIC _SYSSMU2$ UNDOTBS1 ONLINE

PUBLIC _SYSSMU3$ UNDOTBS1 ONLINE

PUBLIC _SYSSMU4$ UNDOTBS1 ONLINE

PUBLIC _SYSSMU5$ UNDOTBS1 ONLINE

已选择6行。

SQL>

2、和手动删除了回滚段一样,查询事务信息假如位于已删除的UNDO表空间时,而快照又比UNDO表空间的DROP-SCN旧,同样会报ORA-01555 "snapshot too old (rollback segment too small)"错。

七、个人看法

无论是叫做ROLLBACK SEGMENT(回滚段)也好,还是叫做UNDO SEGMENT(撤销段)也好,作为用户,我们最关心的是给我们到底带来什么好处。正如Oracle所宣传的那样,自动治理确实给用户减轻了不少治理工作,但是作为企业级应用,我们不仅要考虑治理的复杂性,更要考虑它的性能问题,而在我们所进行的项目测试过程中,发现自动治理并不理想。

也就是说,自动治理是以性能为代价来减少治理的复杂性,这无疑会给用户以鸡肋的感觉。到目前为止我还没有发现一个合理解释,不知道在下一个版本中会不会在性能上有个很大的提高。

在这种情况下,是否采用自动治理?如何选择完全看你自己了。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有