Oracle参数(Undo_Retention)

时间:2022-07-23
本文章向大家介绍Oracle参数(Undo_Retention),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

前面已经对Oracle的基本参数做了介绍,接下来会不定期写其他的参数


Undo_Retention

  1. 参数类型:整型
  2. 默认值:900
  3. 通过ALTER SYSTEM修改
  4. 此为基本参数
  5. 取值范围:0 to 2的31次方 - 1

自动undo段管理

以下针对自动undo段管理(手动不做说明)

  1. Undo Retention为已提交过的数据(脏数据)在undo表空间保存的时间的最小值
  2. Oracle根据UNDO空间使用量动态调整 Undo_Retention 大小,一般为undo空间的85%
  3. UNDO Retention一般为最长执行语句的时间
  4. UNDO Retention时间到期后过期数据不会自动删除,undo空间不足时才会覆盖
  5. Retention Guarantee为NO时,对于undo表空间数据文件是固定大小的,如果空间不足(所有未过期都被覆盖)会覆盖未过期的undo数据
  6. Retention Guarantee为NO时,对于undo表空间是自动扩展的,当空间不足(所有未过期都被覆盖)时会扩展数据文件,达到最大时(一般为30G)会覆盖未过期的undo数据

Retention Guarantee

如果开启Retention Guarantee的话,oracle会保证未过期的数据不会被覆盖,但是如果这样的话可能会引起DML操作失败


查询当前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 空间的使用率

SELECT round(((SELECT (NVL(SUM(bytes), 0))FROM dba_undo_extents   
    WHERE tablespace_name =   
    (select value  from v$parameter    
    where lower(name) = 'undo_tablespace')     
    AND status IN ('ACTIVE', 'UNEXPIRED')) * 100) /      
    (SELECT SUM(bytes) FROM dba_data_files       
    WHERE tablespace_name =        
    (select value from v$parameter        
    where lower(name) = 'undo_tablespace')), 2) PCT_INUSE  
FROM dual

实际环境截图


参考连接

https://docs.oracle.com/cd/B28359_01/server.111/b28320/initparams251.htm#REFRN10225