UNDO_RETENTION参数介绍

在AUM模式下,UNDO_RETENTION参数用以控制事务提交以后UNDO信息保留的时间,UNDO信息可以减少ORA-01555错误及一系列的闪回查询操作。该参数以秒为单位,在Oracle 9iR1中初始值为900秒,在Oracle 9iR2增加为10800秒。但是这是一个非担保性(NO Guaranteed)限制,也就是说,如果有其他事务需要回滚空间,而空间出现不足时,这些信息仍然会被覆盖,很多时候这是不希望被看到的。

 

从Oracle 10g开始,如果设置UNDO_RETENTION为0,那么Oracle启用自动调整以满足最长运行查询的需要。当然如果表空间不足,那么Oracle最大允许的长时间查询,而不在需要用户手工调整。同时Oracle增加了Guarantee控制,也就是说,你可以指定UNDO表空间必须满足UNDO_RETENTION的限制,即使UNDO空间不足,Oracle也不会回收未过期的UNDO空间,这样如果有用户请求UNDO空间得不到满足,则会报错退出。Oracle 通过这项机制使得用户的期望可以被确保。

 

可以通过如下命令修改UNDO表空间的保证机制

alter tablespace undotbs1 retention guarantee;

 

alter tablespace undotbs1 retention noguarantee;

 

这个属性有3个选项:GUARANTEE、NOGUARANTEE和NOT APPLY.对于其他表空间这个属性不适用,显示为NOT APPLY。

你可能感兴趣的:(oracle)