【TUNE_ORACLE】Oracle檢查點(一)檢查點(Checkpoint)概念介紹

Attack_on_Jager發表於2021-08-18

說明

檢查點系列相關文章地址:

Oracle檢查點(一)檢查點(Checkpoint)概念介紹: http://blog.itpub.net/69992972/viewspace-2787595/

Oracle檢查點(二)檢查點效能: http://blog.itpub.net/69992972/viewspace-2787789/

Oracle檢查點(三)增量檢查點四個關鍵引數介紹: http://blog.itpub.net/69992972/viewspace-2787943/

Oracle檢查點(四)檢查點對redo日誌的影響和redo日誌大小設定建議: http://blog.itpub.net/69992972/viewspace-2788206/

Oracle檢查點(五)建立並利用Statspack定位檢查點故障: http://blog.itpub.net/69992972/viewspace-2788418/


什麼是檢查點?

檢查點( Checkpoint)是一種將記憶體中的已修改資料塊與磁碟上的資料檔案進行同步的資料庫事件。透過檢查點,Oracle可以確保了被事務(transaction)修改過資料可以被同步至磁碟。事務提交的時候不會將已修改資料塊同步寫入磁碟上。

檢查點有兩個用途:

1) 保證資料的一致性

2) 實現更快的資料庫恢復


檢查點是如何做到快速恢復?

由於直至檢查點生成時所有的資料庫更改均已記錄在資料檔案中,因此無需再應用先於檢查點的redo日誌。檢查點必須確保快取記憶體中所有已修改的緩衝資料均已經寫入到相應的資料檔案中,以避免在發生崩潰(例項或磁碟故障)時可能會出現的資料丟失。


需要知道的一些知識點( 重要!

1. Oracle 只有在以下特定條件下才會將髒快取寫入磁碟:

1)shadow process需要掃描的資料塊個數超過db_block_buffers引數的四分之一

2)每三秒鐘

3)生成一個新檢查點時

 

2. 檢查點透過以下五種型別的事件來產生:

1)每次切換redo日誌檔案時

2)達到LOG_CHECKPOINT_TIMEOUT的延遲時

3)當前redo日誌檔案中已存在了大小為 (LOG_CHECKPOINT_INTERVAL* OS塊的大小(bytes))的資料

4)直接由ALTER SYSTEM SWITCH LOGFILE命令實現

5)直接使用ALTER SYSTEM CHECKPOINT命令實現

 

3. 在檢查點期間會發生以下操作:

1)DBWR 將緩衝區快取中所有已修改的資料庫塊寫回到資料檔案中

2)檢查點程式 (ckpt) 更新所有資料檔案的檔案頭,以反映上一個檢查點發生的時間 (SCN)


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

相關文章