关于undo

来源:互联网 发布:兄弟连java基础视频 编辑:程序博客网 时间:2024/05/21 20:21
自动调优undo retention
oracle自动调整系统来为当前的undo表空间提供最好的undo retention,前提是使用自动undo管理。数据库收集使用信息,基于这些信息和undo表空间大小来设置retention,如果undo表空间是自动扩展的,undo retention的调优有微小的区别。自动调优undo retention不支持lobs,因为lobs的undo信息存放在它自己的段中,而不是回滚段中。
可以使用下面的语句来查看当前的retention
select to_char(begin_time, 'DD-MON-RR HH24:MI') begin_time,
to_char(end_time, 'DD-MON-RR HH24:MI') end_time, tuned_undoretention
from v$undostat order by end_time;


设置undo retention
在下面的情况下,你一定有设置undo_retention这个初始化参数:
1自动扩展的undo表空间
2为lobs设置
3想要retention guarantee
在这3个情况下,undo_retention初始参数决定了最小的undo保留时间,在别的情况下,这个参数会被忽略,并且数据库会自动调整。


retention guarantee
为了确保长时间运行的查询成功或是flashBack操作成功,可以启用retention gurantee,如果启用了,那么数据不会覆盖未过期的undo数据即使是由于缺失空间而导致的事务失败。如果没有启用那么数据库会覆盖未过期的undo数据,造成snapshot too old的错误。
这个功能默认是没有启用的,需要在创建undo的时候指定RETENTION GUARANTEE 语句。可以通过RETENTION NOGUARANTEE 语句来禁用该功能。


可以查看v$undostat和v$rollstat视图来监控和调优undo表空间。
0 0
原创粉丝点击