11G中FAST_START_MTTR_TARGET引數

還不算暈發表於2013-10-28
預設的fast_start_mttr_target的值為0,在11G中自動啟用MTTR advisory。如何用ALTER SYSTEM設定為0則是表示關閉自動檢查點功能
SQL> select * from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
PL/SQL Release 11.2.0.1.0 - Production
CORE    11.2.0.1.0      Production
TNS for Linux: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production

SQL> col name for a20
SQL> col value for a30
SQL> select name,value from v$spparameter where name like 'fast_start_mt%';

NAME                 VALUE
-------------------- ------------------------------
fast_start_mttr_targ
et

alert.log中資訊
Successful open of redo thread 2
MTTR advisory is disabled because FAST_START_MTTR_TARGET is not set
Sat Jul 13 13:27:28 2013
SMON: enabling cache recovery
ARC3: Archival started
ARC0: STARTING ARCH PROCESSES COMPLETE

概念說明

一、關於FAST_START_MTTR_TARGET引數

        是一個加快例項恢復的引數,我們可以根據服務級別來定義一個合理的、可接受的值,該值的單位為秒。比如設定為60s,即1分鐘。

    假定該值處於合理的情況之下,則一旦例項崩潰,在60s以內例項應當能夠被恢復。合理即是該值不能太大,也不能太小。太大則例項恢

    復所需的時間較長,太小則導致大量資料的及時寫入,增加了系統的I/O。

   

        影響例項恢復時間長短的主要因素即是從最近檢查點位置到聯機重做日誌尾部之間的距離。距離越長則所需要的cache recovery 和undo、

    redo的時間越長。所以如何有效的縮短最近檢查點位置與聯機重做日誌尾部之間的距離,這正是FAST_START_MTTR_TARGET的目的。

   

        關於檢查點的觸發條件有很多,比如日誌切換、資料庫shutdown、開始結束備份表空間等。檢查點的分類也很多,比如完全檢查點、部

    分檢查點、增量檢查點等。

   

        FAST_START_MTTR_TARGET的值實際上也是觸發檢查點的一個觸發條件。當記憶體中產生的dirty buffer所需的恢復時間(estimated_mttr)

    如果到達FAST_START_MTTR_TARGET的指定時間,則檢查點程式被觸發。檢查點程式一旦被觸發,將通知DBWn程式將按檢查點佇列順序將髒數

    據寫入到資料檔案,從而縮短了最後檢查點位置與聯機重做日誌間的距離,減少了例項恢復所需的時間。


二、兩個重要的檢視

        v$instacne_recovery

        v$mttr_target_advice


三、設定FAST_START_MTTR_TARGET

        根據實際需要來設定FAST_START_MTTR_TARGET的值,這個值的設定需要考慮到可接受的例項的恢復時間、可承受的I/O吞吐量等等。

        假定我們將該值設定為

            SQL> alter system set fast_start_mttr_target = 30 ;

        在事務頻繁的時間段來考察檢視v$instacne_recovery提供的值

相關文章