FAST_START_MTTR_TARGET参数是怎么工作了
其實,這個參數是9i以後才有的一個參數,用來替代原來的 FAST_START_IO_TARGET,LOG_CHECKPOINT_TIMEOUT等參數的,他和CHECKPOINT是密切相關的,我這裡簡單的說說,更詳細的,就靠你自己取琢磨了,呵呵.
要完全理解這個參數,有几個其他參數或者概念是必要的(SCN,CHECKPOINT,CRASH RECOVERY,REDO,INCREMENTAL CHECKPOINT,CHECKPOINT QUEUE),這裡假設你全部都理解以上的東西,OK. 那,FAST_START_MTTR_TARGET參數的可取值範圍是0~3600sec,如果你一旦設定了這個參數的值,比如200sec好了,在oracle系統中,有一個視圖v$instance_recovery,它是用來監視當前instance的狀態的,在它裡面,有兩個column,ESTIMATED_MTTR,TARGET_MTTR,通常這個TARGET_MTTR會等於你設定的FAST_START_MTTR_TARGET,除非你設定的值過大或過小,OK,重點來了: ESTIMATED_MTTR,這個COLUMN記錄的是從上次CHECKPOINT開始,到當前,如果系統CRASH掉,那麼INSTANCE恢復所需要的時間,而這個時間,是根據DIRTY BUFFER和LOG FILE的量估算出來的,一旦這個值,接近或超過TARGET_MTTR,系統就會觸發CHECKPOINT,執行完CHECKPOINT後,系統的ESTIMATED_MTTR開始重新計算.(凡事都有例外,有可能ESTIMATED_MTTR>TARGET_MTTR,什麼情況下,就請你自己思考一下了,呵呵). 以上就是FAST_START_MTTR_TARGET對系統所做的限制,實際上,這個參數不會修改ORACLE的配置,不會象你理解的那樣,去增加CHECKPOINT的頻率,也不會縮小LOG FILE,呵呵,只是在適當的時候觸發CHECKPOINT而已 |