Oracle 10gr2的後的undo

13175發表於2014-02-11

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. 1  select a.ksppinm name,b.ksppstvl value,a.ksppdesc description  
  2.   2    from x$ksppi a,x$ksppcv b  
  3.   3   where a.indx = b.indx  
  4.   4*        and a.ksppinm like '%_undo_autotune%'  
  5.     
  6. sys@ORCL> /  
  7.   
  8. NAME                 VALUE    DESCRIPTION  
  9. -------------------- -------- ----------------------------------------  
  10. _undo_autotune       TRUE     enable auto tuning of undo_retention 




解決辦法;
  1. alter system set “_undo_autotune” = false;   
4、 考慮 設定_undo_autotune=false+重建undo表空間+ 設定undo_retention=較大值+ 啟用undo guarantee


相關;

%3D6%26orderby%3Dlastpost
%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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章