为Oracle 闪回特性设置撤消表空间(一)
2009-05-22 13:14:51 来源:WEB开发网2. 重启数据库实例,使参数设置有效;
3. 想要调整撤消表空间到合适大小,建议实际观测系统的工作负载,然后使用以下的代码让Oracle确定UNDO表空间的合适大小:
SQL> SET SERVEROUTPUT on
SQL> DECLARE
utbsiz_in_MB NUMBER;
BEGIN
utbsiz_in_MB := DBMS_UNDO_ADV.RBU_MIGRATION;
dbms_output.put_line('undo size : '||utbsiz_in_MB||'MB');
end;
/
undo size : 740MB
PL/SQL procedure successfully completed.
4. 如前文所述创建UNDO TABLESPACE。要记住,用户对数据库数据所作的更新越多,那么为回闪操作设置的撤消表空间所需的空间就越大。如果你按照前文所述创建了该表空间(启用AUTOEXTEND设置),那么Oracle就会管控这个表空间的大小,并使撤消数据的保存时间长于最长的查询持续时间及UNDO_RETENTION参数指定的时间(下面会谈到)。
5. 设置以下初始化参数。同样的,如果你用的是init.ora文件,则要确保在该文件中编辑并存储这些参数,并使用ALTER SYSTEM命令对这些参数进行设置。如果你使用的是spfile,那么在设置这些参数的时候,要指定SCOPE=spfile,这样通过重启数据库就能够使参数设置生效。
a) UNDO_MANAGEMENT:用于设置数据库实例的撤消管理模式
ALTER SYSTEM SET undo_management=auto SCOPE=spfile
b) UNDO_TABLESPACE:用于设置为AUM准备的撤消表空间
ALTER SYSTEM SET undo_tablespace=undotbs01 SCOPE=spfile
c) UNDO_RETENTION:用于设置撤消数据保存的保存时间(以秒为单位)
ALTER SYSTEM SET undo_retention=900 SCOPE=spfile
在设置这些参数时要记住,UNDO_MANAGEMENT是一个静态参数(无法设置为动态),而且需要重启数据库实例才能使设置生效。因此,建议只是修改init.ora文件或spfile,然后重启数据库。
如果你完成了每一个步骤,那么你的数据库实例就已经启用了自动撤消管理,并拥有一个撤消表空间。可见,切换到自动撤消管理以及创建撤消表空间并不是什么难事,难的部分是它的实际使用过程。如果你设置的UNDO_RETENTION时长太短,或者UNDO表空间的AUTOEXTEND没有启用,又会出现哪些问题呢?这些将在本文的第二部分进行讨论。
更多精彩
赞助商链接