分散式資料庫管理系統 - 故障與提交



資料庫管理系統容易受到多種故障的影響。本章將研究故障型別和提交協議。在分散式資料庫系統中,故障大致可分為軟故障、硬故障和網路故障。

軟故障

軟故障是一種導致計算機易失性儲存器資料丟失,而非永續性儲存器資料丟失的故障。此處,儲存在非永續性儲存器(如主記憶體、緩衝區、快取或暫存器)中的資訊將丟失。它們也稱為系統崩潰。各種型別的軟故障如下:

  • 作業系統故障。
  • 主記憶體崩潰。
  • 事務失敗或中止。
  • 系統生成的錯誤,例如整數溢位或除零錯誤。
  • 支援軟體故障。
  • 電源故障。

硬故障

硬故障是一種導致永續性或非易失性儲存器(如磁碟)中資料丟失的故障。磁碟故障可能導致某些磁碟塊中的資料損壞或整個磁碟故障。硬故障的原因包括:

  • 電源故障。
  • 介質故障。
  • 讀寫故障。
  • 磁碟上資訊的損壞。
  • 磁碟讀/寫磁頭損壞。

如果備用磁碟已格式化並可以使用,則從磁碟故障中恢復可能很快。否則,持續時間包括髮出採購訂單、購買磁碟和準備磁碟所需的時間。

網路故障

網路故障在分散式資料庫或網路資料庫中很普遍。這些包括由於資料的分散式性質和透過網路傳輸資料而導致的資料庫系統錯誤。網路故障的原因如下:

  • 通訊鏈路故障。
  • 網路擁塞。
  • 傳輸過程中資訊損壞。
  • 站點故障。
  • 網路分割槽。

提交協議

任何資料庫系統都應保證即使在故障後也能保持事務的理想屬性。如果在事務執行期間發生故障,則可能發生事務帶來的一些更改未提交的情況。這使得資料庫不一致。提交協議使用事務撤銷(回滾)或事務重做(前滾)來防止這種情況。

提交點

決定是否提交或中止事務的時間點稱為提交點。以下是提交點的屬性。

  • 這是資料庫一致的時間點。

  • 在此點,資料庫帶來的修改可以被其他事務看到。所有事務都可以對資料庫具有一致的檢視。

  • 在此點,事務的所有操作都已成功執行,其效果已記錄在事務日誌中。

  • 在此點,如果需要,可以安全地撤消事務。

  • 在此點,事務釋放其持有的所有鎖。

事務撤銷

撤銷事務對資料庫所做的所有更改的過程稱為事務撤銷或事務回滾。這主要用於軟故障的情況。

事務重做

重新應用事務對資料庫所做的更改的過程稱為事務重做或事務前滾。這主要用於從硬故障中恢復。

事務日誌

事務日誌是一個順序檔案,用於跟蹤對資料庫項的事務操作。由於日誌本質上是順序的,因此可以從開頭或結尾順序處理它。

事務日誌的目的:

  • 支援提交協議以提交或支援事務。
  • 幫助在故障後恢復資料庫。

事務日誌通常儲存在磁碟上,因此不會受到軟故障的影響。此外,日誌會定期備份到磁帶等存檔儲存中,以防止磁碟故障。

事務日誌中的列表

事務日誌根據事務的狀態維護五種型別的列表。此列表幫助恢復管理器確定事務的狀態。狀態和相應的列表如下:

  • 具有事務開始記錄和事務提交記錄的事務是已提交的事務——儲存在提交列表中。

  • 具有事務開始記錄和事務失敗記錄但沒有事務中止記錄的事務是失敗的事務——儲存在失敗列表中。

  • 具有事務開始記錄和事務中止記錄的事務是已中止的事務——儲存在中止列表中。

  • 具有事務開始記錄和事務提交前記錄的事務是提交前事務,即所有操作都已執行但未提交的事務——儲存在提交前列表中。

  • 具有事務開始記錄但沒有提交前、提交、中止或失敗記錄的事務是活動事務——儲存在活動列表中。

立即更新和延遲更新

立即更新和延遲更新是維護事務日誌的兩種方法。

立即更新模式下,當事務執行時,事務所做的更新將直接寫入磁碟。在寫入磁碟中的資料庫之前,舊值和更新值將寫入日誌。提交時,對磁碟所做的更改將永久儲存。回滾時,資料庫中事務所做的更改將被丟棄,舊值將從日誌中儲存的舊值恢復到資料庫中。

延遲更新模式下,當事務執行時,事務對資料庫所做的更新將記錄在日誌檔案中。提交時,日誌中的更改將寫入磁碟。回滾時,日誌中的更改將被丟棄,並且不會對資料庫應用任何更改。

廣告