分散式資料庫管理系統 - 資料庫恢復



為了從資料庫故障中恢復,資料庫管理系統採用多種恢復管理技術。在本章中,我們將學習資料庫恢復的不同方法。

資料庫恢復的典型策略包括:

  • 對於導致資料庫不一致的軟故障,恢復策略包括事務撤銷或回滾。但是,有時也可能採用事務重做以恢復到事務的一致狀態。

  • 對於導致資料庫嚴重損壞的硬故障,恢復策略包括從歸檔備份中恢復資料庫的過去副本。透過重做事務日誌中已提交的事務的操作,可以獲得資料庫的更當前狀態。

從電源故障中恢復

電源故障會導致非永續性記憶體中的資訊丟失。當電源恢復後,作業系統和資料庫管理系統將重新啟動。恢復管理器將從事務日誌中啟動恢復。

在立即更新模式下,恢復管理器將執行以下操作:

  • 處於活動列表和失敗列表中的事務將被撤銷並寫入中止列表。

  • 處於提交前列表中的事務將被重做。

  • 對提交列表或中止列表中的事務不執行任何操作。

在延遲更新模式下,恢復管理器將執行以下操作:

  • 處於活動列表和失敗列表中的事務將被寫入中止列表。由於更改尚未寫入磁碟,因此不需要撤銷操作。

  • 處於提交前列表中的事務將被重做。

  • 對提交列表或中止列表中的事務不執行任何操作。

從磁碟故障中恢復

磁碟故障或硬碟崩潰會導致資料庫完全丟失。要從這種硬碟崩潰中恢復,需要準備一個新磁碟,然後恢復作業系統,最後使用資料庫備份和事務日誌恢復資料庫。恢復方法對於立即更新模式和延遲更新模式都是相同的。

恢復管理器將執行以下操作:

  • 提交列表和提交前列表中的事務將被重做並寫入事務日誌中的提交列表。

  • 活動列表和失敗列表中的事務將被撤銷並寫入事務日誌中的中止列表。

檢查點

檢查點是指從緩衝區將記錄寫入資料庫的時間點。因此,在系統崩潰的情況下,恢復管理器無需重做在檢查點之前已提交的事務。定期進行檢查點可以縮短恢復過程。

兩種型別的檢查點技術是:

  • 一致性檢查點
  • 模糊檢查點

一致性檢查點

一致性檢查點在檢查點處建立資料庫的一致映像。在恢復期間,僅撤銷或重做最後一個檢查點右側的事務。最後一個一致性檢查點左側的事務已提交,無需再次處理。檢查點的操作包括:

  • 暫時掛起活動事務。
  • 將主記憶體緩衝區中的所有更改寫入磁碟。
  • 在事務日誌中寫入“檢查點”記錄。
  • 將事務日誌寫入磁碟。
  • 恢復掛起的事務。

如果在步驟 4 中,事務日誌也被存檔,則此檢查點有助於從磁碟故障和電源故障中恢復,否則它僅有助於從電源故障中恢復。

模糊檢查點

在模糊檢查點中,在檢查點時,所有活動事務都將寫入日誌。在發生電源故障的情況下,恢復管理器僅處理在檢查點期間和之後處於活動狀態的事務。在檢查點之前已提交的事務將寫入磁碟,因此無需重做。

檢查點示例

讓我們考慮一下,在系統中,檢查點的時間為 tcheck,系統崩潰的時間為 tfail。假設有四個事務 Ta、Tb、Tc 和 Td,其中:

  • Ta 在檢查點之前提交。

  • Tb 在檢查點之前開始並在系統崩潰之前提交。

  • Tc 在檢查點之後開始並在系統崩潰之前提交。

  • Td 在檢查點之後開始並在系統崩潰時處於活動狀態。

這種情況在下圖中描述:

Depicted Situation

恢復管理器採取的操作包括:

  • 對 Ta 不執行任何操作。
  • 對 Tb 和 Tc 執行事務重做。
  • 對 Td 執行事務撤銷。

使用撤銷/重做進行事務恢復

事務恢復是為了消除故障事務的不利影響,而不是為了從故障中恢復。故障事務包括所有已將資料庫更改為不需要的狀態的事務以及已使用故障事務寫入的值的事務。

在這些情況下,事務恢復是一個兩步過程:

  • 撤銷所有故障事務以及可能受故障事務影響的事務。

  • 重做所有未出錯但由於故障事務而被撤銷的事務。

撤銷操作的步驟包括:

  • 如果故障事務已執行插入操作,則恢復管理器將刪除插入的資料項。

  • 如果故障事務已執行刪除操作,則恢復管理器將從日誌中插入已刪除的資料項。

  • 如果故障事務已執行更新操作,則恢復管理器將透過從日誌中寫入更新前值來消除該值。

重做操作的步驟包括:

  • 如果事務已執行插入操作,則恢復管理器將從日誌中生成插入操作。

  • 如果事務已執行刪除操作,則恢復管理器將從日誌中生成刪除操作。

  • 如果事務已執行更新操作,則恢復管理器將從日誌中生成更新操作。

廣告

© . All rights reserved.