Oracle undo保留时间的几个相关参数
参考文档:
https://docs.oracle.com/cd/E11882_01/server.112/e40402/initparams265.htm#REFRN10225
https://docs.oracle.com/cd/E11882_01/server.112/e40402/initparams264.htm#REFRN10224
MOS 文档 ID 1526122.1
MOS 文档 ID 846079.1
适用版本:10.1.0.5以上
相关参数:
_highthreshold_undoretention,_smu_debug_mode,_undo_autotune,undo_management,undo_retention,undo_tablespace
undo主要功能:
undo segement 回滚段主要工作是为了构造读一致性,事物回滚,数据库恢复,闪回查询
正文:
这里主要介绍几个参数的设置
_highthreshold_undoretention —- 单位 秒,默认值 4294967294 。允许undo_retention 设置的最大值,当修改undo_retention的值超过改参数值,相关报错 ORA-55567,ORA-55568,ORA-55569
_smu_debug_mode —undo调试参数,通过设置特定值可以启动特殊作用,如 4, 33445542
_undo_autotune — 默认 true 开启。自动调整回滚段的保留时间。
undo_retention — 单位 秒,默认900秒,undo段尽可能的保留时间
undo_management —undo段管理方式,默认auto 自动使用undot ablespace 管理。MANUAL 利用 rollback segment管理
undo_tablespace —- 指定undo使用的表空间
SYS@ >select a.inst_id, a.ksppinm "Parameter",2 b.ksppstvl "Session Value",c.ksppstvl "Instance Value"4 from x$ksppi a, x$ksppcv b, x$ksppsv c5 where a.indx = b.indx and a.indx = c.indx6 and a.inst_id=b.inst_id and b.inst_id=c.inst_idand a.ksppinm in ('_undo_autotune', '_smu_debug_mode',8 '_highthreshold_undoretention','undo_tablespace','undo_retention','undo_management')10 order by 2;Instance # Parameter Session Value Instance Value
---------- ----------------------------------- ------------------------- -------------------------1 _highthreshold_undoretention 4294967294 42949672941 _smu_debug_mode 0 01 _undo_autotune TRUE TRUE1 undo_management AUTO AUTO1 undo_retention 900 9001 undo_tablespace UNDOTBS1 UNDOTBS16 rows selected.
实际undo段的保留时间,undo段覆盖与否,绝大数情况是由表空间的使用情况结合相关参数来决定的。(除非对undo tablespace 设置了retention guarantee 特性,强制保留undo segment达到保留时间值,不然不会覆盖,哪怕表空间不足也是。隐患太大,不太考虑)
PS:undo段的保留时间只是让已提交事务的 undo segment 标记为 UNEXPIRED(未过期),我们其实知道不管是UNEXPIRED 还是 EXPIRED 状态的 undo segment 都是可能会被覆盖的。只是优先覆盖EXPIRED ,如果空间不足一样覆盖UNEXPIRED
以下情况都是 undo tablespace 是NOGUARANTEE
参数组合情况一:
在默认情况下,及_undo_autotune=true 时候及undo tablespace 的autoextend =yes 自动扩展
_smu_debug_mode =0
_undo_autotune =true
undo_retention =900 (这个值可自行修改)
开启自动调整时实际的保留时间以试图V$UNDOSTAT中的字段 TUNED_UNDORETENTION 值为准,且>=undo_retention值
SELECT TO_CHAR(BEGIN_TIME, 'YYYY-MM-DD HH24:MI:SS') BEGIN_TIME,TUNED_UNDORETENTION FROM V$UNDOSTAT;2018-07-08 01:59:26 1412
2018-07-08 01:49:26 900
2018-07-08 01:39:26 1413
2018-07-08 01:29:26 900
2018-07-08 01:19:26 1417
2018-07-08 01:09:26 2021
2018-07-08 00:59:26 1421
2018-07-08 00:49:26 900
2018-07-08 00:39:26 1422
2018-07-08 00:29:26 900
2018-07-08 00:19:26 1427
2018-07-08 00:09:26 900
2018-07-07 23:59:26 1430
2018-07-07 23:49:26 900
2018-07-07 23:39:26 1432
2018-07-07 23:29:26 900
2018-07-07 23:19:26 1436
情况二:
相对于情况一,如果只是 undo tablespace 非自动扩展
这时oracle根据undo表空间大小与使用情况自动调整最大可能的保留时间,及忽略undo_retention的值
情况三:
undo tablespace 自动扩展
_smu_debug_mode = 33445542
_undo_autotune =true
undo_retention =900 (这个值可自行修改)
这时oracle自动调整的
TUNED_UNDORETENTION = (undo_retention值 or 运行时间最长的 SQL 的执行时间)
情况四:
undo tablespace 自动扩展
_undo_autotune =false
undo_retention =900 (这个值可自行修改)
这时oracle 自动调整关闭
TUNED_UNDORETENTION = undo_retention
情况五:
对于lob 字段
lob 字段 undo 不是利用undo tablespace,而是利用自己存储空间。 例如 BasicFiles lob字段指定了 retention参数 则继承 undo_retention参数的值。
lob情况特殊,还有其他一些限制 参考 mos文档846079.1
Oracle undo保留时间的几个相关参数相关推荐
- undo保留时间的几个相关参数
参考文档: https://docs.oracle.com/cd/E11882_01/server.112/e40402/initparams265.htm#REFRN10225 https://do ...
- oracle闪回保存多久,CSS_oracle 中关于flashback闪回的介绍, 1、必须设定undo保留时间足 - phpStudy...
oracle 中关于flashback闪回的介绍 1.必须设定undo保留时间足够大以能够重构需要闪回的数据 ALTER SYSTEM SET UNDO_RETENTION=; seconds值是un ...
- Flink SQL空闲状态保留时间(idle state retention time)实现原理
前言 如果要列举Flink SQL新手有可能犯的错误,笔者认为其中之一就是忘记设置空闲状态保留时间导致状态爆炸.2021年的第一篇技术文,时间很紧张,聊聊这个简单的话题吧. 为什么要设置 如果我们在数 ...
- Oracle undo使用率过高问题处理
客户的数据库监控频繁告警UNDO表空间使用率高:维护人员通过加数据文件扩大表空间方式,已经将UNDO表空间扩容到900GB+,仍然会有告警,介入调查处理~ 1.1.1. 查看UNDO配置及相关参数 均 ...
- oracle时间去掉时分秒的时间_超详细的oracle修改AWR采样时间间隔和快照保留时间教程...
概述 10g版本中默认是保留7天,11g版本中默认保留8天,采集间隔是1小时,这个信息可以从DBA_HIST_WR_CONTROL视图中获得.如果要修改AWR采样时间间隔和快照保留时间应该怎么改呢?下 ...
- oracle undo与redo的区别
首先看一下undo与redo的字面意思: undo:撤销,也就是取消之前的操作. redo:重做,重新执行一遍之前的操作. 什么是REDO REDO记录transaction logs,分为o ...
- Oracle undo 表空间管理
Oracle 的Undo有两种方式: 一是使用undo 表空间,二是使用回滚段. 我们通过 undo_management 参数来控制使用哪种方式,如果设为auto,就使用UNDO 表空间,这时必须要 ...
- oracle数据库标志物,Oracle表的分类以及相关参数的详解
oracle中有如下几种类型的表: 1.堆组织表(heap organized tables):常用的表类型,以堆的方式管理,当增加数据时,将使用段中第一个适合数据大小的空闲空间:当删除数据时,留下的 ...
- Oracle undo表空间管理
当在做DML操作的时候,在修改buffer cache里面的数据块的时候,会对当前块的旧镜像信息做一个保存,保存的数据块就是undo块.undo块上面保存着数据修改前的信息. 生成undo块的几个作用 ...
最新文章
- java之php、Android、JAVA、C# 3DES加密解密
- python_45_目录编程
- OpenCASCADE:读取和写入 STEP
- javaweb学习总结九(xml解析以及调整JVM内存大小)
- Easyspy网络检测系统
- python入门:输出1-100之内的所有奇数和偶数
- python 除数总是提示为0_Python错误的处理方法
- Unity加载模块深度解析(纹理篇)
- 利用application在页面中显示访问次数
- listView 下拉动态加载数据
- for循环 批处理 查找文件 详细信息 文件名
- 泛泰A860 Andorid4.4.3 KTU84M (Omni) 图赏
- Deepin20.4系统中wine优化设置
- 【目标检测】基于matlab GUI背景差分算法视频运动物体跟踪【含Matlab源码 1915期】
- 受了点小伤,心情怎么就变坏了呢?
- 2020年美国大学计算机科学专业排名,美国大学计算机排名2020年最新排名
- c语言流星雨程序下载,c语言 流星雨的实现.doc
- 八行代码实现图像分类-神一样的Mathematica
- 自然语言处理NLP之信息检索
- 传说中程序员都是直男,程序员适合做老公吗?