当前位置导航:炫浪网>>网络学院>>编程开发>>Oracle教程

为Oracle 闪回特性设置撤消表空间(一)

  本文将为大家逐步解读Oracle使用手册中提及的如何为Oracle的闪回(Flashback)特性设置自动撤消管理(Automatic UNDO Management),相应地附上相关脚本和注意事项。

  Oracle数据库闪回特性在实际应用中的第一道坎就是自动撤消管理。对于并没有完全了解“undo”为何物的人来说,undo只是Oracle存储起来用于数据库回滚或撤消操作的信息。一谈到闪回技术,undo数据在某一时间点前的数据重建上的重要性可以说显而易见。然而,任何事情都是两面的,在闪回某特定时间点数据的实际操作中,undo也是一个制约因素;如果没有足够的undo数据,那么闪回查询就会失败,甚至触发一些异常的数据库错误。

  Oracle一直以来都极力支持使用自动撤消管理,当然是有原因的。相信那些曾经和手动撤消管理进行过奋战的DBA们是深谙其中的困难,你得花上相当的时间和精力来正确创建和控制回滚段,不停地重复调整回滚段的大小,才能避免出现ORA-1555快照过旧之类的错误。有了自动撤消管理(AUM)就不一样了,Oracle就可以为你自动监控和管理撤消段。从Oracle 11g开始,AUM成为默认设置,而且绝大部分数据库都会在创建时生成一个名为UNDOTBS1的自动扩展的撤消表空间。你可以用以下的SQL语句来查看该撤消表空间:

         SQL> SELECT dt.tablespace_name, dt.contents,

  ddf.file_name, ddf.bytes/1024/1024 size_MEG

  FROM dba_tablespaces dt,

  dba_data_files ddf

  WHERE dt.tablespace_name = ddf.tablespace_name

  AND dt.contents = 'UNDO';

  TABLESPACE_NAME CONTENTS FILE_NAME SIZE_MEG

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

  UNDOTBS1 UNDO /oradata/db11FS/undotbs01.dbf 2048

  如果你的数据库中没有撤消表空间,用CREATE TABLESPACE语句很容易就能够创建一个。如果选择了AUTOEXETEND选项,则如下所示:

         CREATE UNDO TABLESPACE undotbs1

  DATAFILE '/oradata/db11FS/undotbs01.dbf' SIZE 2048M REUSE AUTOEXTEND ON;

  如果你正在被手动撤消管理(使用回滚段)折腾得焦头烂额,不妨轻松过渡到自动撤消管理。切换的法门就在UNDO_MANAGEMENT初始化参数,它可以指定系统当前使用的撤消模式。通过SHOW PARAMETER命令可以查看当前的参数设置:

  

      SQL> SHOW PARAMETER undo

  NAME TYPE VALUE

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

  undo_management string AUTO

  undo_retention integer 900

  undo_tablespace string UNDOTBS1

共2页 首页 上一页 1 2 下一页 尾页 跳转到
相关内容
赞助商链接