教学文章
Technology Exchange
热门课程
400电话

免费咨询热线
400-090-9964

教学文章

Oracle隐藏参数:_undo_autotune

时间:2017-07-18 来源:

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

  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真是吃力不讨好

  sys@ORCL> ed

  Wrote file afiedt.buf

  1 select a.ksppinm name,b.ksppstvl value,a.ksppdesc description

  2 from x$ksppi a,x$ksppcv b

  3 where a.indx = b.indx

  4* and a.ksppinm like '%_undo_autotune%'

  sys@ORCL> /

  NAME VALUE DESCRIPTION

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

  _undo_autotune TRUE enable auto tuning of undo_retention

  该参数可以在线修改:

  alter system set “_undo_autotune” = false;

  标注一下:

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

版权所有@北京神脑资讯技术有限公司(CUUG,中国UNIX用户协会) Copyright ALL Rights Reserved 京ICP备11008061号-1

CUUG旗下网站:www.cuug.com.cn www.cuug.com oracle.cuug.com bbs.cuug.com www.cuug.net

电话:010-59426307 010-59426319 邮政编码:100089

地址:北京市海淀区北清路164号28-38号院