一个限制回滚段大小的问题。

[复制链接]
查看11 | 回复1 | 2008-2-27 11:55:00 | 显示全部楼层 |阅读模式
一个限制回滚段大小的问题。
背景:我在测试做数据库升级,由8.16升级到10.2.0.3.0,测试过程中遇到回滚段的问题。
在8.16的数据库中回滚段是手工管理的,回滚段的创建语句如下:
CREATE PUBLIC ROLLBACK SEGMENT RBS1
TABLESPACE RBS
STORAGE ( INITIAL 512K NEXT 512K OPTIMAL 15360K MINEXTENTS 8 MAXEXTENTS 30);
升级过程采用exp/imp方式来做升级。10G的数据库按照典型安装,安装后发现10G采用自动UNDO管理,原来816中的
回滚段没有IMP到10G数据库中。可以通过以下语句查看到。
SQL> SELECT SEGMENT_NAME,OWNER,STATUS FROM DBA_ROLLBACK_SEGS ;
SEGMENT_NAME
OWNERSTATUS
------------------------------ ------ ----------------
SYSTEM
SYSONLINE
_SYSSMU1$
PUBLIC ONLINE
_SYSSMU2$
PUBLIC ONLINE
_SYSSMU3$
PUBLIC ONLINE
_SYSSMU4$
PUBLIC ONLINE
_SYSSMU5$
PUBLIC ONLINE
_SYSSMU6$
PUBLIC ONLINE
_SYSSMU7$
PUBLIC ONLINE
_SYSSMU8$
PUBLIC ONLINE
_SYSSMU9$
PUBLIC ONLINE
_SYSSMU10$
PUBLIC ONLINE
11 rows selected.
关于10G中的UNDO管理我看过有网友的测评,在管理方面应该是简化了许多,但在性能方面不会比以前手工管理的好。
我分析了还有以下两个隐患:
1。空间不容易控制,数据库自己管理UNDO空间,空间可能会因为大的操作,扩展的很大,给备份数据造成困难。
2。我们微机室的人可能有通过SQLPLUS/TOAD等工具进行数据操作可能会因为条件错误导致整表或不期望的数据删除或更新。
而在816中因为回滚段的大小有限制(在上面的建立回滚段的语句中有 MAXEXTENTS 30,保证了回滚段的大小不超过15M)
我想在10G中仍然延续以前的管理办法。于是做了以下更改
1. alter system set undo_management=manual scope=spfile;
2.shutdown immediate ;
3. startup ;
4.--在 system 表空间中先创建一个回滚段:(没有这个表空间就不能做以后所有的操作)
CREATE PUBLIC ROLLBACK SEGMENT SYSTEM_TMP
TABLESPACE SYSTEM STORAGE
( INITIAL 512K NEXT 512K OPTIMAL 15360K MINEXTENTS 8 MAXEXTENTS 30);

ALTER ROLLBACK SEGMENT SYSTEM_TMP ONLINE;
5.--创建一个专门容纳回滚段的表空间rbs,这个表空间segment管理使用MANUAL
--EXTENT管理使用统一的管理 uniform size 1M。
create tablespace RBS
datafile '&datafile/aprbs.dbf'
size 850M
reuse
autoextend on
next 10M
maxsize unlimited
extent management local uniform size 1M
segment space management manual ;

6.--在这个表空间上建立应用所需要的回滚段。
CREATE PUBLIC ROLLBACK SEGMENT RBS1 TABLESPACE RBS
STORAGE ( INITIAL 512K NEXT 512K OPTIMAL 15360K MINEXTENTS 8 MAXEXTENTS 30);
ALTER ROLLBACK SEGMENT RBS1 ONLINE ;
7.--检查所创建的回滚段是否符合要求。
SQL> select segment_name,max_extents from dba_rollback_segs ;
SEGMENT_NAME
MAX_EXTENTS
------------------------------ -----------
SYSTEM
32765
_SYSSMU1$
32765
_SYSSMU2$
32765
_SYSSMU3$
32765
_SYSSMU4$
32765
_SYSSMU5$
32765
_SYSSMU6$
32765
_SYSSMU7$
32765
_SYSSMU8$
32765
_SYSSMU9$
32765
_SYSSMU10$
32765
SYSTEM_TMP
32765
RBS1
32765

发现回滚段RBS1的最大可扩展次数是 32765,不是创建语句中指定的 30 次(MAXEXTENTS 30)。
也就是说 创建回滚段的STORAGE “MAXEXTENTS 30”没有生效,被10G中默认的规则取代了。
希望大家赐教,帮我解决这个问题。不胜感激!!!
回复

使用道具 举报

千问 | 2008-2-27 11:55:00 | 显示全部楼层
有劳高手们帮忙解决一下,再次感谢了!!!
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行