Checkpoint總結

litterbaby發表於2007-04-01
Checkpoint總結[@more@]

Checkpoint總結

Checkpoint就是一個重做流中的一個點,是一個SCN。所有的在這個點之前的所有發生的髒資料塊將在檢測點發生之後寫入到磁碟中。檢測點能夠多個事件觸發,例如資料庫的關閉,執行緒的關閉,熱備份等。由於觸發方式的不同使得檢測點有不同的分類:

n 資料庫、全域性檢測點

n 執行緒、本地檢測點(RAC

n 資料檔案檢測點

n 增量檢測點

n 最小檢測點(DDL基礎)

資料庫、全域性檢測點

產生的原因:

1) 日誌切換

2) 初始化引數觸發

3) Alter system checkpoint觸發

執行的步驟:

1) 獲取當前日誌快取區的RBA

2) 呼叫DBWn

3) 使用checkpoint佇列將RBA之上的所有髒資料塊寫入磁碟

4) 更新資料檔案頭和控制檔案

執行緒、本地檢測點(RAC

產生的原因:

RAC中對一個例項進行檢測點檢測。Alter system checkpoint local觸發。

資料檔案檢測點

所有的屬於這個資料檔案並在當前檢測點SCN之上的資料塊被寫入磁碟。

產生的原因:

1) 熱備份

2) 表空間離線

增量檢測點

這樣做有以下的好處:

1) 避免了全檢測點的大的IO活動

2) 只是寫最老的塊,而不是將所有的塊都寫入磁碟

3) 只是將檢測點的資訊記錄到控制檔案,從而避免了資料檔案頭的更新。

最小檢測點(DDL基礎)

一些DDL,例如刪除表等,這樣只是對這個物件進行必要的檢測點的檢測。

這裡有一個問題就是,為什麼頻繁的日誌切換會造成系統的負擔?

我的意見是:由於日誌切換操作會引發全檢測點。

二是會造成日誌歸檔。

相關引數:

LOG_CHECKPOINTS_TO_ALERT

這個引數是允許將檢測點記錄到警告檔案中。這個引數的設定對於確定檢測點是否發生的比較頻繁。

預設的是false

LOG_CHECKPOINT_INTERVAL

這個引數指定的是一定數目的重做日誌檔案塊的數目來控制檢測點發生的頻度。這個引數來控制增量檢測點的頻度。這個重做日誌檔案塊的數目說的是物理作業系統的塊,而不是資料庫的塊。

LOG_CHECKPOINT_TIMEOUT

這個引數和上一個的區別就是使用的事件(秒)。

FAST_START_IO_TARGET

僅僅用於企業版,指定的是在crash或者例項恢復的時候所需要的IO數目。

FAST_START_MTTR_TARGET

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/222350/viewspace-908027/,如需轉載,請註明出處,否則將追究法律責任。

相關文章