溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Oracle—undo回滾段長時間不釋放

發布時間:2020-08-11 17:13:44 來源:ITPUB博客 閱讀:430 作者:白石溪頭 欄目:關系型數據庫

Undo回滾段中 Unexpired Block遲遲不釋放掉,占用90%以上的undo表空間.

導致數據庫事務等待嚴重. DML運行異常緩慢. JOB運行也有ora-01555錯誤.



詳細詢問了下UNDO表空間的具體設置,如下:

   1、undo_retention=3600;

   2、未設置表空間的retention guarantee;

   3、UNDO表空間設置為非自動擴展;

   4、數據庫版本11.2.0.1.0



   oracle給了個參數,"_smu_debug_mode" = 33554432,改到系統中,報出一大堆ORA-01555,趕緊改了回來。

       莫非是碰到bug了?查了下,在oracle 10.2.0.2-3,確實有個很類似的bug:5387030。

       正常情況下,如果undo 表空間被設置為固定大小,不自動擴展,oracle會啟用Automatic Tuning of undo retention特性。

       啟用Automatic Tuning of undo retention時,oracle會忽略undo_retention的設置,根據undo表空間大小、系統負載情況,自動調整undo_retention為一個合適的值。這個值一般會大于“所有事務的最長運行時間”。

  

     10gR2的bug現象為,只要設置了undo表空間自動管理,不管有沒開自動擴展,不管undo_retention設置為多少,都會啟用 Automatic Tuning of undo retention的新特性。

      這個bug的解決辦法:   

  10.2.0.2/10.2.0.3有相應的patch,這個bug在10.2.0.4中已經修復,建議找時間停機打patch   

  設置隱含參數_smu_debug_mode=33554432,將tuned_undoretention取值算法修正為max(maxquerylen secs + 300,undo_retention )   

  設置隱含參數_undo_autotune=false,關閉自動undo retention調整特性  


       在10.2.0.4及以后,這個bug就修復了。朋友那問題,肯定不是這bug引起的。


    在查閱這bug時,發現Automatic Tuning of undo retention的啟用條件,與朋友那完全吻合,莫非這跟Automatic Tuning of undo retention有關。

查了下官方文檔,確實如此。

Oracle—undo回滾段長時間不釋放

 

系統查了下,果然,undo_retention被自動調整了:

                      Oracle—undo回滾段長時間不釋放

最后總結下,呵, 在oracle 10.2.0.4,oracle11g里面,如果碰到undo使用率100%,不釋放的問題。不建議再通過調整隱藏參數來解決undo占用率高的問題。

更推薦設置undo空間的自動擴展 + 限制文件最大大小的方式來解決。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女