undo系列学习之如何计算最优的undo_retention及undo_retention的初体验

本文介绍了Oracle数据库中undo_retention参数的作用,它定义了事务提交后undo数据的最短保留时间。在AUM模式下,该参数并不保证数据一定保留,仅在空间不足时才可能被覆盖,可能导致ORA-01555错误。10g开始支持guarantee模式,确保undo数据按指定时间保留。实验展示了guarantee和noguarantee模式的区别,并讨论了undo_retention对闪回功能和LOB类型数据的影响。最后,提供了估算最优undo_retention的模糊和精确计算方法。
摘要由CSDN通过智能技术生成

    undo_retention简单定义,就是最多数据的最少保留时间。AUM模式下,undo_retention参数用于事务commit后undo数据保留的时间。单位为秒。这是个no guarantee的限制。也就是,若空间足够,他只是个‘花瓶’;当可用空间不足而又有事务需要回滚空间,则这些数据依然会被覆盖。这个行为可能会导致ORA-01555错误,这些数据被记忆的时间可用v$undostat里面的字段TUNED_UNDORETENTION来查询。

    很多时候,我们希望undo数据能够被留存,而不是被覆盖。那么在10g,oracle对undo增加了guarantee控制,也就是,用户可以指定undo表空间必须满足undo_retention的限制。

alter tablespace undotbs1 retention guarantee|noguarantee;


    通过设置期望的保留时间,修改undo表空间属性,就可以使undo表空间运行在guarantee模式。下面我们用一个实验体验一下,noguarantee和guarantee有什么区别:

sys@ORCL> select tablespace_name,contents,retention from dba_tablespaces where tablespace_name like '%UNDOTBS%';

TABLESPACE_NAME                CONTENTS  RET
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值