Oracle 10gr2的后续版本中添加了撤销(UNDO)信息最短保留时间段自动调优的特性,不再仅仅依据参数UNDO_RETENTION的设定,其调优原则如下:
l 当撤销表空间(UNDO TABLESPACE)大小固定,Oracle将根据表空间的大小和实际的系统负载动态调整撤销信息保存时间,该最短保存时间的具体长短基于撤销表空间大 小的一定比例值公式换算后获得;它总是比设定的UNDO_RETENTION大,当撤销表空间大量空闲情况下可能远远大于UNDO_RETENTION。
l 当撤销表空间设定为自动扩展空间情况下,Oracle将动态调整撤销信息最短保留时间为该时段最长查询时间(MAXQUERYLEN)加上300秒或参数 UNDO_RETENTION间的较大者,即MAX((MAXQUERYLEN+300),UNDO_RENTION);同样的,该最短保存时间可能远远 大于设定的UNDO_RETENTION。
在自动调整情况下,实际的撤销信息最短保留时间可以通过查询V$UNDOSTAT视图上的TUNED_UNDORETENTION列获得。
在无法就撤销表空间做相应修改的情况,我们可以通过修改隐式参数” _UNDO_AUTOTUNE”为FALSE关闭该自动调优特性。以上设定生效后,V$UNDOSTAT视图上TUNED_UNDORETENTION列 不再更新,且撤销信息最短保留时间固定为参数UNDO_RETENTION的设定值。该参数可以不用重启数据库而动态设置生效。
可能发生的问题现象;
AUM下、为什么我的Undo表空间只增长,不回收,现在都40多G了,还在长,是为什么啊?
为什么在系统不是很繁忙的时候会出现undo不够用的情况呢,如果说不够用,那在波峰时段应该问题更加严重才对?
......
有时候DBA会听到诸如上面的一些声音
我这收到报警,有台库的UNDOTBS1 usage is 100.00%
如果各位有时间,帮忙看看。
我用群主帖子中 的那个undo diag的脚本去做了诊断,附件是Undo_Diag.out
磁盘有点紧张,最好是不扩undo空间。
os:Red Hat Enterprise Linux Server release 5.4 (Tikanga)
db:Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit
查看是否开启;
- 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;
相关;
http://www.killdb.com/2012/12/07/about-undo-tablespace-used-high.html
http://t.askmaclean.com/forum.php?mod=viewthread&tid=3737&extra=page%3D6%26orderby%3Dlastpost
http://www.askmaclean.com/archives/undo%E8%87%AA%E5%8A%A8%E8%B0%83%E4%BC%98%E4%BB%8B%E7%BB%8D.html
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14181270/viewspace-1079439/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/14181270/viewspace-1079439/