學習筆記——DB恢復技術

一、事務

1.簡述

事務(Transaction)是一系列數據庫操作,這些操作要麼全做,要麼全不做,是一個不可分割的工作單位。如:一條SQL語句等。

事務處理技術,包括數據庫恢復技術和併發控制技術。事務是恢復和併發控制的基本單位。

事務和程序是兩個概念。一般地講, 一個程序中包含多個事務。

2.事務的ACID特性
原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation) 和持續性(Durability)。

(1)原子性:事務是數據庫的邏輯工作單位, 事務中包括的諸操作要麼都做, 要麼都不做。

(2)一致性:即收斂的性質,與原子性相關。事務執行的結果必須是使數據庫從一個一致性狀態變到另一個一致性狀態。

                       一致狀態:當數據庫只包含成功事務提交的結果時,就說數據庫處於一致性狀態。

                       不一致狀態:數據庫運行中發生故障,有些事務尚未完成被迫中斷;未完事務的部分操作寫入數據庫

(3)隔離性:一個事務的執行不能被其他事務干擾。 即一個事務的內部操作及使用的數據對其他併發事務是隔離的, 併發執行                         的各個事務之間不能互相干擾。如:A先讀T1,B後讀T1;分別在初始T1的基礎上進行修改。

(4)持續性(永久性):一個事務一旦提交, 它對數據庫中數據的改變就應該是永久性的。 接下來的其他操作或故障不應該對其執行結果有任何影響。

3.事務ACID特性可能遭到破壞的因素
(1) 多個事務並行運行時, 不同事務的操作交叉執行。要保證事務的隔離性。
(2) 事務在運行過程中被強行停止。DBMS必須保證被強行終止的事務對數據庫和其他事務沒有任何影響。

二、數據庫恢復必要性

       計算機系統中硬件的故障、 軟件的錯誤、 操作員的失誤以及惡意的破壞仍是不可避免的, 這些故障輕則造成運行事務非正常中斷, 影響數據庫中數據的正確性, 重則破壞數據庫, 使數據庫中全部或部分數據丟失。 因此DBMS必須具有把數據庫從錯誤狀態恢復到某一已知的正確狀態(亦稱爲一致狀態或完整狀態) 的功能,這就是數據庫的恢復。

       恢復的基本原理就是利用存儲在後備副本、日誌文件和數據庫鏡像中的冗餘數據來重建數據庫。

三、故障

1.事務內部的故障

       事務故障意味着事務沒有達到預期的終點,因此,數據庫可能處於不正確狀態。恢復程序要在不影響其他事務運行的情況下,強行回滾該事務,即撤銷該事務已經作出的任何對數據庫的修改,使得該事務好像根本沒有啓動一樣。 這類恢復操作稱爲事務撤銷(UNDO)。事務故障是不能預期的,不能由應用程序發現。

2.系統故障

       系統故障是指造成系統停止運轉的任何事件,使得系統要重新啓動。如CPU故障、OS故障、系統斷電等。

       主存內容,尤其是數據庫緩衝區(在內存)中的內容都被丟失, 所有運行事務都非正常終止。 發生系統故障時, 一些尚未完成的事務的結果可能已送入物理數據庫, 使數據庫可能處於不正確的狀態。恢復子系統必須在系統重新啓動時讓所有非正常終止的事務回滾, 強行撤銷所有未完成事務。有些已完成的事務可能有一部分甚至全部留在緩衝區,尚未寫回到磁盤上的物理數據庫中,使數據庫處於不一致的狀態。恢復子系統需要重做(REDO)所有已提交的事務, 以將數據庫真正恢復到一致狀態。

3.介質故障

       硬故障指外存故障,如磁盤損壞、磁頭碰撞,瞬時強磁場干擾等。這類故障將破壞數據庫或部分數據庫,並影響正在存取這部分數據的所有事務。只能通過重裝數據庫或備份文件來恢復。

4.計算機病毒

      人爲故障。

      各類故障,可能對數據庫的兩種影響:一是數據庫本身被破壞;二是數據庫沒有被破壞,但數據不正確,是由於事務的運行被非正常終止造成的。

      恢復操作的基本原理是冗餘,利用存儲在其他地方的冗餘數據來重建數據庫。但恢復的實現技術很複雜。

四、恢復的實現技術

恢復機制涉及的兩個關鍵問題是:

        如何建立冗餘數據;

        如何利用這些冗餘數據實施數據庫恢復。

建立冗餘數據最常用的技術是數據轉儲和登記日誌文件(logging)。

(1)數據轉儲

        數據庫管理員定期地將整個數據庫複製到磁帶、 磁盤或其他存儲介質上保存起來的過程。 這些備用的數據稱爲後備副本(backup)或後援副本。當數據庫遭到破壞後可以將後備副本重新裝入, 但重裝後備副本只能將數據庫恢復到轉儲時的狀態, 要想恢復到故障發生時的狀態, 必須重新運行自轉儲以後的所有更新事務。

(2)日誌文件

        用來記錄事務對數據庫的更新操作的文件。具體作用是:
               1)事務故障恢復和系統故障恢復必須用日誌文件;
               2)在動態轉儲方式中必須建立日誌文件, 後備副本和日誌文件結合起來纔能有效地恢復數據庫;
               3)在靜態轉儲方式中也可以建立日誌文件, 當數據庫毀壞後可重新裝入後援副本,把數據庫恢復到轉儲結束時刻的

                  正確狀態, 然後利用日誌文件把已完成的事務進行重做處理, 對故障發生時尚未完成的事務進行撤銷處理。

       爲保證數據庫是可恢復的,登記日誌文件時必須遵循兩條原則:

               登記的次序嚴格按併發事務執行的時間次序。
               必須先寫日誌文件, 後寫數據庫。

五、恢復策略

1.事務故障

步驟:

2.系統故障

步驟:

3.介質故障

重裝數據庫;重做已完成的事務。需要數據管理員介入。

六、數據庫鏡像

       爲避免磁盤介質岀現故障影響數據庫的可用性, 許多DBMS提供了數據庫鏡像(mirror)功能用於數據庫恢復。 即根據數據庫管理員的要求, 自動把整個數據庫或其中的關鍵數據複製到另一個磁盤上, 每當主數據庫更新時, DBMS自動把更新後的數據複製過去, 由DBMS自動保證鏡像數據與主數據庫的一致性。一旦出現介質故障,可由鏡像磁盤繼續提供使用, 同時DBMS自動利用鏡像磁盤數據進行數據庫的恢復, 不需要關閉系統和重裝數據庫副本。在沒有出現故障時, 數據庫鏡像還可以用於併發操作, 即當一個用戶對數據加排他鎖修改數據時, 其他用戶可以讀鏡像數據庫上的數據, 而不必等待該用戶釋放鎖。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章