你好,游客 登录 注册 搜索
背景:
阅读新闻

Oracle 隐藏参数:_undo_autotune

[日期:2013-03-08] 来源:Linux社区  作者:linwaterbin [字体: ]

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

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表空间、然后切换过去、把以前的干掉、通过这种方式来回收空间。

更多Oracle相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12

linux
相关资讯       Oracle参数 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款