oracle database 12c Release 2-Managing Undo 翻译(第三章节)


UNDO保留周期:
undo保留周期是oracle数据库试图覆盖旧的undo之前的最小时间量。
关于undo保留周期
 当自动undo管理启用时,总有一个当前undo保留周期,即ORACLE数据库试图覆盖旧的undo之前的最小时间量。
 在事务提交之后,回滚或者事务恢复不再需要undo数据库。但是为了一致性读,运行时间较长的查询可能需要这些旧的undo信息来生成旧的数据快照。另外一些oracle闪回功能的执行成功还需要取决于旧undo信息的可用性。由于上述原因,oracle希望尽可能长的保留旧的undo信息。
 旧的(提交的)undo比当前的正在使用undo更早被标记为失效,失效的undo空间可以被新的事务覆盖。旧的undo信息和保留时间小于当前undo信息保留周期被标记为未过期,以保证一致性读和闪回操作。
 oracle数据库根据undo表空间大小和系统统计信息自动调整undo保留期。通过设置undo_retention初始化参数可以设置一个最小的undo保留周期(秒),该参数对undo保留的确切影响如下:
 对于一个固定大小的undo表空间,该参数被忽略。数据库会根据系统活动和undo表空间的大小持续调整undo最佳保留时间。
 对于一个开启自动扩展的undo表空间,数据库试图根据undo_retention参数设定保存undo信息。当空间太小时,表空间自动扩展而不是覆盖未过期的UNdo信息,自动扩展达到上限时,数据库可能开始覆盖未过期的undo信息。通过dbca创建的undotbs1是自动扩展的。
 
自动调整undo保留时间
 oracle数据库根据undo表空间的配置自动调整undo保留时间。
 如果undo表空间配置为自动扩展,数据库会动态调整undo信息保留时间到比系统上运行最长主动查询时间更长。但是这种保留期可能不足以适应oracle闪回操作。oracle闪回操作导致快照过旧的错误是必须进行干预的,以确保有足够的undo数据支持这些操作。为了更好的适应oracle闪回功能,可以设置undo_retention参数值长于预期闪回操作,或者修改undo表空间大小为固定值。
 如果undo表空间大小固定,数据库会根据系统活动和undo表空间的大小持续调整undo最佳保留时间。这种情况下,可能保留时间比运行时间最长的活动查询的持续时间大得多。
 如果决定将undo表空间改为固定大小,则选择的undo表空间必须足够大。如果选择使用比较小的undo表空间,可能会出现以下两个错误:
 DML可能会失败,因为没有足够的空间在容纳新事务的undo。
 运行时间长的查询可能因为快照过旧错误而失败,这意味着一致性读取的undo数据不足。
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值