充分利用自动撤销管理的优点

ZDNet软件频道 时间:2003-10-29 作者:zdnet china |  我要评论()
本文关键词:oracletips
在Oracle9i中,Oracle对回滚段进行了重新命名,现在将其作为撤销日志。在传统的操作上,回滚段保存交换的撤销信息,直到系统发送一个响应或者回滚语句。
本文译自Builder.com,未经许可请勿转载

在Oracle9i中,Oracle对回滚段进行了重新命名,现在将其作为撤销日志。在传统的操作上,回滚段保存交换的撤销信息,直到系统发送一个响应或者回滚语句。

人工撤销管理在Oracle9i仍然被使用,但绝大多数的Oracle DBAs都选择了新的自动方法,这使得它们可以从常规撤销管理任务和调整中解放出来。

最重要的是,自动撤销管理允许DBA指定撤销信息在提交之后需要保留的时间,以防止在长时间的查询过程中出现“snapshot too old”的错误。可以通过设置UNDO_RETENTION参数来实现这一过程。这一参数的缺省值为900秒(即15分钟),但你可以设置这一参数以保证Oracle保留撤销日志。

无需定义和管理回滚段,你就可以简单地指定一个撤销表空间而减轻Oracle9i的负担。

自动撤销管理需要一个当地管理撤销表空间,这一表空间用于存放撤销段。你所需要的是建立一个撤销表空间,设置UNDO_MANAGEMENT=AUTO,然后与数据库进行连接。当启动一个例子时,Oracle会自动选择第一个可用的撤销表空间。

CREATE UNDO TABLESPACE
   ts_undo
DATAFILE
   '/u01/oradata/prod/ts_undo.dbf'
SIZE 2M REUSE AUTOEXTEND ON;

Alter system set undo_tablespace=ts_undo;
Alter system set undo_management=auto;

一旦已经建立了撤销表空间,你可以使用以下新Oracle9i查询来查看撤销信息。

  • V$UNDOSTAT
  • V$ROLLSTAT
  • V$TRANSACTION
  • DBA_UNDO_EXTENTS


本文作者Donald Bunleson是一名有着23年工作经验的数据库管理员,他编写了14本数据库方面的书籍并发表了100多篇文章。他还是Oracle Internals的主编,同时他还开办了Bunleson Oracle咨询公司。





责任编辑:炒饭

欢迎评论投稿

百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134