zoukankan      html  css  js  c++  java
  • undo_retention&guarantee

    undo_retention:指定事物commitundo 将要保存的时间(),在ORACLE10g中默认的是900秒。

    GUARANTEE 保证undo_retention参数所设定的时间有效,这个是10g的新功能。

    SQL> ALTER TABLESPACE undotbs1 RETENTION GUARANTEE;

    SQL> ALTER TABLESPACE undotbs1 RETENTION NOGUARANTEE;

    在没有guarantee的保证下,ORACLE并不能保证能够将undo信息存储900秒,如果undo表空间不足,那么ORACLE将忽略undo_retention的设置,直接覆盖掉以前的undo,这个时候有可能会产生ORA-01555错误。如果undo表空间空间足够,那么undo将会保存很长一段时间,直到undo表空间达到maxsize,这个时候才会覆盖undo信息,而且ORACLE会从最古老的undo信息开始覆盖。

    ORACLE推荐我们将undo 表空间中的datafile 设定MAXSIZE ,不要让它一直自动扩展,如果ORACLE获得了自动扩展的能力,那么旧的undo不会被覆盖,到后来undo表空间会越来越大,越来越大,直到将磁盘空间耗尽。

    在有guarantee的保证下,ORACLE将会保证undo信息能够保存到undo_retention设定的值之后才被覆盖,如果这个时候同时执行了很多事物,将undo表空间耗完了,那么那个事物会失败,会报ORA-30036 错误,所以使用guarantee一定要慎用,如果非要使用guarantee,那么尽量将undo 表空间设大 一点。

    Oracle10g开始,如果你设置UNDO_RETENTION0,那么Oracle启用自动调整以满足最长运行查询的需要。当然如果空间不足,那么Oracle满足最大允许的长时间查询。而不再需要用户手工调整

    对于这个功能,我问了 我们的新同事,他说 这个功能很少用,毕竟ORACLE没有强烈推荐,可能是一个过渡的,而且我们不知道它有没有什么BUG

  • 相关阅读:
    LeetCode 152. 乘积最大子数组
    LeetCode 148. 排序链表
    LeetCode 143. 重排链表
    LeetCode 142. 环形链表 II
    LeetCode 137. 只出现一次的数字 II
    LeetCode 127. 单词接龙
    LeetCode 120. 三角形最小路径和
    spring boot redis 数据库缓存用法
    堪称神器的Chrome插件
    rocketMQ安装中遇到的坑
  • 原文地址:https://www.cnblogs.com/hehe520/p/6330710.html
Copyright © 2011-2022 走看看