三種故障:
1.事務故障:事務內部的故障,主要有可預期和不可預期的,
解決辦法:可預期的用戶會在寫應用程式的時候用 if 陳述句避免,不可預期的系統自動根據日志檔案對事務進行撤銷和重做,
2.系統故障:由于各種原因導致系統停止運行,使得緩沖區里的資料沒寫進磁盤造成的故障,對資料庫無損害,
基本解決方法:
(1)正向掃描日志檔案找到已提交的事務和 未提交的事務
(2)已提交的加入redo佇列,未提交的加入undo佇列,
(3)反向掃描日志檔案對undo佇列里所有事務執行逆操作,正向掃描日志檔案對redo佇列里的所有事務重做,
檢查點法:
(注:建立檢查點時會強制把此時緩沖區的資料寫入磁盤)
(1)在日志檔案里找發生故障前的最后的一個檢查點,
(2)把這個檢查點記錄里的所有正在運行的事務加入undo佇列,
(3)從檢查點開始正向掃描日志檔案遇到一個事務的開始就把這個事務加入undo佇列,遇到一個事務的結束就把這個事務從undo佇列加到redo佇列,
(4)對undo佇列里事務執行撤銷,對redo佇列里的事務實行重做,
3.介質故障:硬體故障造成的資料庫損壞,資料丟失,
解決辦法:重裝副本,再根據日志檔案把已完成的事務redo,
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/239569.html
標籤:其他
