?
1、數據庫恢復的原理
數據庫恢復的原理主要是在數據庫發生故障之后,建立冗余數據,在故障發生之后利用冗余數據來完成數據庫恢復。數據轉儲和建立日志文件是建立冗余數據常用的技術手段。一般情況下兩種技術手段會同時使用。
2、故障恢復的兩個操作
故障恢復有撤銷事務(UNDO)、重做(REDO)兩個操作。
2.1 撤銷操作
撤銷事務就是將未完成的事務撤銷,使數據庫恢復到事務執行前的正確狀態。
撤銷事務的過程:反向掃描未完成的事務日志,查找事務的更新操作;對該事務的更新操作執行反向操作,然后利用日志文件記錄中更新前的值寫入數據庫,插入的記錄從數據庫中刪掉,刪除的記錄重新插入數據庫中;
繼續反向掃描日志文件,重復以上操作,直到事務開始標志。
2.2 重做事務?
重做事務是將已經提交的事務重新執行。
重做事務的過程:從事務的開始標識開始,正向掃描日志文件,重新執行日志文件登記的對事務對數據庫的所有操作,直到事務結束標識。
3、故障恢復策略介紹?
針對不同的數據故障應該采取不同的恢復策略。
3.1 事務故障恢復
事務故障是在事務在運行至正常終止點(提交、回滾)之前終止。日志文件只有該事務的開始標識而沒有結束標識。一般針對這類故障的恢復通過撤銷產生的故障事務,使數據庫恢復到該事務執行前的正確狀態來完成。
事務恢復步驟如下:
反向掃描文件日志,查找該事務的更新操作
對事務的更新操作執行反向操作
繼續反向掃描日志文件,做同樣處理直到事務的開始標志
說明:事務的故障恢復由系統自動完成,對用戶是透明的。
3.2 系統故障的恢復?
系統故障會造成數據庫的數據不一致。主要原因:未完成的事務對書庫的更新操作可能已經寫入了數據庫;已提交的事務對數據庫的更新可能還在緩沖區沒來得及寫入數據庫。系統故障數據恢復要撤銷故障發生時未完成的事務,重做已提交的事務。
3.3 介質故障的恢復?
介質故障由數據庫遭到破壞,需要重裝數據庫,需要裝載故障前最近依次的備份和故障前的日志文件副本,再按照系統故障的恢復過程執行撤銷和重做操作來進行恢復。
說明:介質故障要有數據庫管理員來參與,裝入數據庫的副本和日志文件的副本,再由數據庫系統執行撤銷和重做操作。
IT技術分享社區
個人博客網站:https://programmerblog.xyz
文章推薦程序員效率:畫流程圖常用的工具程序員效率:整理常用的在線筆記軟件遠程辦公:常用的遠程協助軟件,你都知道嗎?51單片機程序下載、ISP及串口基礎知識硬件:斷路器、接觸器、繼電器基礎知識