檢查點

檢查點種類包含四種,分別為MMDB的檢查點、非失真檢查點、失真檢查點和日志驅動檢查點。

  • 中文名稱
    檢查點
  • 外文名稱
    Check point

檢查方式

軟體開發的項目中,在規定的時間間隔內對項目進行檢查,比較實際與計畫之間的差異,並根據差異進行調整,一般每周一到二次。

定義

具有檢查點的恢復技術:在日志檔案中增加一類新的記錄--檢查點記錄(checkpoint),增加一個重新開始檔案,並讓恢復子系統在登錄日志檔案期間動態地維護日志。

這樣做的原因

一、 利用日志技術進行資料庫恢復時,需要檢查所有日志記錄。存在兩個問題:

一是搜尋整個日志將耗費大量的時間。

二是需要REDO處理很多已經將操作結果寫到資料庫中的操作,浪費了大量時間。

二、檢查點記錄的內容包括:

1.建立檢查點時刻所有正在執行的事務清單。

2.這些事務最近一個日志記錄的地址。

三、在檢查點維護日志檔案

1. 將當前日志緩沖區中的所有日志記錄寫入磁碟的日志檔案上。

2. 在日志檔案中寫入一個檢查點記錄。

3. 將當前資料緩沖區的所有資料記錄寫入磁碟的資料庫中。

4. 把檢查點記錄在日志檔案中的地址寫入一個重新開始檔案。

檢查點

快速的恢復高度依賴于最近檢查點(Pu一to一daet)的存在。檢查點減少了在MMDB崩潰後系統重啓時所要做的恢復工作量。另一方面,檢查點也影響著資料庫的處理性能一一尤其是在大容量記憶體環境下。總不希望在檢查點在執行的時候,暫停其他事務的執行。檢查點演算法需要精心地設計,使得它即對事務的正常處理影響很小,又要在系統崩潰的時候能夠有效地恢復系統。MMDB系統的檢查點與DRDB系統的檢查點不同。DRDB的檢查點的設計思想是在一個時間點上,讓未提交的事務和己提交的事務保證其日志記錄都被回寫到磁碟上。而MMDB的檢查點的設計思想是在一個時間點上,將記憶體中的整個資料庫或者部分資料庫的資料回寫到磁碟上,或者以其他的方式,形成在這個時間點上對資料庫資料的一個鏡象備份。在MMDB的檢查點技術可以分為三類:非失真檢查點(No一Fuzzzy eheckpointing)、失真檢查點(FuzzyCheekpointing)和日志驅動檢查點(Log一DrivenCheckpointing)。

非失真檢查點

非失真檢查點的策略通常都會給事務的處理帶來額外的開銷;〕這些開銷主要來自非失真檢查點策略需要為被檢查的資料對象加鎖來保持事務的一致性。可以用多種不同的策略可以選擇。

失真檢查點(Fuzzy Checkpointing)

MMDB中的失真檢查點F(uzyzChecPkointnig)策略是指檢查點程式在對資料做操作時,不需要對資料對象上鎖。檢查點程式和其他事務並發執行,檢查點程式每次隻將資料庫的一部分髒資料頁回寫到磁碟上。檢查點程式通過向系統日志中寫入日志記錄,來和其他事務保持同步。

日志驅動檢查

在失真檢查點和非失真檢查點中需要將記憶體資料庫整個或者部分地復製到磁碟上,而日志驅動檢查點則是在前一次檢查點所產生的資料庫鏡象的基礎上,根據日志更新該鏡象,產生新的鏡象。這種檢查點策略能夠適用于將資料庫鏡象備份到遠程主機上。因為日志的資料量小于資料庫的大小,更加利于網路傳輸。每次做檢查點時,將日志傳送給遠程主機,然後在遠程主機上根據日志回放更新動作,產生出新的資料鏡象。但是,這種策略也有缺陷,如果MMDB在事務吞吐量很大的情況下,會產生出大量的日志記錄。這些日志將頻繁地驅動檢查點程式更新位于磁碟上的備份資料鏡象,牽涉到大量的磁碟1/0操作,因而會嚴重降低檢查點程式的效率。如果在事務吞吐量很大的情況下,能夠控製住日志產生的數量,日志驅動檢查點仍是一種不錯的檢查點策略。本章後半部分所提出的"恢復模型",其中的檢查點策略就屬于日志驅動檢查點。

其它詞條