Oracle 隐藏参数:_undo_autotune、一个吃力不讨好的活

来源:互联网 发布:运营商域名劫持 编辑:程序博客网 时间:2024/06/10 10:43

文章出处:http://blog.csdn.net/dba_waterbin/article/details/8646982


虽然谈论那些隐藏的参数必定是无意义的、但那些隐藏的参数却是有价值的、我们不得不对那些隐藏的参数"心怀敬意"

      
      
      AUM下、为什么我的Undo表空间只增长,不回收,现在都40多G了,还在长,是为什么啊?
      为什么在系统不是很繁忙的时候会出现undo不够用的情况呢,如果说不够用,那在波峰时段应该问题更加严重才对?
      ......
      有时候DBA会听到诸如上面的一些声音
      

      因为有个参数叫_undo_autotune=true,undo_retention不再适用

      Oracle会自行决定tuned_undo_retention,然后试图增大undo tablespace

      从10.2版本开始,oracle默认采用自动调整undo retention的方法

      根据你undo tablespace的大小以及系统的繁忙程度(v$undostat中信息)自动调整undo_retention参数

      所以在10g的数据库上你会经常发现undo tablespace永远是满的

      因为当你undo tablespace有空闲空间时,系统自动调大undo_retention来保留更多的undo blocks

      这一方法有利于时间长的查询,但是对于典型的OLTP系统来说不太适用

      因为OLTP上不太可能跑如此长时间的查询,而且在很繁忙的 OLTP上还会导致上面所遇到的问题

      

      Oracle真是吃力不讨好


sql] view plaincopyprint?
  1. sys@ORCL> ed  
  2. Wrote file afiedt.buf  
  3.   
  4.   1  select a.ksppinm name,b.ksppstvl value,a.ksppdesc description  
  5.   2    from x$ksppi a,x$ksppcv b  
  6.   3   where a.indx = b.indx  
  7.   4*        and a.ksppinm like '%_undo_autotune%'  
  8.     
  9. sys@ORCL> /  
  10.   
  11. NAME                 VALUE    DESCRIPTION  
  12. -------------------- -------- ----------------------------------------  
  13. _undo_autotune       TRUE     enable auto tuning of undo_retention  


      该参数可以在线修改:

[sql] view plaincopyprint?
  1. alter system set “_undo_autotune” = false;    

      标注一下:
      如果undo不回收、resize可能是会报错的、我遇到很多次了、一般都是、重建个undo表空间、然后切换过去、把以前的干掉、通过这种方式来回收空间


****************************************************

Oracle 10g及后续版本较以前版本有一新特性即自动调整undo retention时间,大大简便了管理,对于自动扩展(autoextend on)的undo表空间,参数undo_retention设置成为Oracle自动调节undo retention的最低阀值。对于非自动扩展(autoextend off),非guarantee 的undo 表空间,Oracle会根据undo表空间大小和v$undostat的历史信息(是否统计undo信息是由隐含参数_collect_undo_stats决定的,默认情况为TRUE)最大可能性保留undo信息。

查看undo数据文件是否自动扩展,undo表空间是否处于gurantee状态。

引用

SQL> select AUTOEXTENSIBLE,RETENTION

  2  from dba_tablespaces,dba_data_files

  3  where dba_data_files.TABLESPACE_NAME=dba_tablespaces.TABLESPACE_NAME

  4  and dba_data_files.TABLESPACE_NAME='UNDOTBS1'

  5  ;

AUT RETENTION

--- -----------

YES NOGUARANTEE

当然这一特性是由隐含参数_undo_autotune控制的,默认情况下设置为TRUE,部分特殊情况下会将其设为FALSE,如startup upgrade。


*********************************************************




0 0