一:事物的基本概念
1: 事物:是使用者定義的乙個資料庫操作序列,這些操作要麼全做要麼全不做,是乙個不可分割的工作單位。
事物的開始和結束可以由使用者顯式控制。如果使用者沒有顯式的定義事物,則有dbms按預設規定自動劃分事物。
2: begin transaction
commit :表示提交事物的所有操作,即將對資料庫的更新寫回到磁碟的物理資料庫中,事物才正常結束。
rollback:對資料庫的所有已完成的操作全部回滾到事物開始時的狀態。
3: 事物的特性(acid:原子性,一致性,隔離性,持續性)
a: 原子性:事物是資料庫的邏輯工作單位,事物中包括的操作要麼都做,要麼都不做。
b: 一致性:事物的執行結果必須是使資料庫從乙個一致狀態變到另乙個一致狀態。
c: 隔離性:乙個事物的執行不能被其他事物干擾。
即乙個事物內部的操作及使用的資料對其他併發事物是隔離的,併發執行的各個事物之間不能相互干擾。
d:持續性:乙個事物一旦提交,它對資料庫中資料的改變就應該是永久性的。
3: 事物acid特性可能遭破壞的因素有:
a: 多個事物並行執行時,不同事物的操作交叉執行
資料庫管理系統必須保證多個事物的交叉執行部影響這些事物的原子性
b: 事物的執行過程中被強行停止。
資料庫管理系統必須保證被強行終止的事物對資料庫和其他事物沒有任何影響。
二:資料庫恢復概述
即資料庫管理系統必須具有把資料庫從錯誤狀態恢復到某一已知的正確狀態的功能。
三:故障種類
冗餘,資料庫中任何一部分被破壞的或不正確的資料可以根據儲存在系統別處的冗餘資料來重建。
1: 事物內部故障
事物內部故障有的是可以通過事物程式本身發現的。
但是更多的故障時非預期的,是不能有應用程式處理的。如運算溢位,併發事物發生死鎖而被選中撤銷該事物,違反某些完整性限制等。
2: 系統故障
指造成系統停止運轉的任何事件,是的系統需要重新啟動。
發生系統故障時,一些尚未完成的事物的結果可能已經送入物理資料庫,從而造成資料庫可能處於不正確的狀態。
為保證資料庫的一致性,需要清除這些事物對資料庫的所有修改。
即在系統重新啟動後,讓所有非正常終止的事物回滾,強行撤銷所有未完成的事物。
3: 介質故障
指外存故障,如磁碟損壞,磁頭碰撞,瞬時強磁場干擾等。
這類故障破壞資料庫或或不資料庫,並影響正在訪問這部分資料的所有事物。
4: 計算機病毒
四:恢復的實現技術
如何建立冗餘資料?
如何利用這些冗餘資料實施資料庫恢復?
五:資料轉儲
即dba定期的將整個資料庫複製到磁碟或另乙個磁碟上儲存起來。
當資料庫遭到破壞後可以將後備副本重新裝入,但重灌後備副本只能將資料庫恢復到轉儲是的狀態。
要想恢復到故障發生時的狀態,必須重新執行轉儲以後的所有更新事物。
1: 靜態轉儲:系統中無執行任何事物時進行的轉儲操作。會降低資料庫的可用性。
2: 動態轉儲:即轉儲期間允許對資料庫進行訪問或修改。
轉儲結束時後援副本上的資料並不能保證正確有效。
為此,必須在轉儲區間各事物對資料庫的修改記錄活動登記下來,建立日誌檔案。
這樣,後援副本加日誌檔案就能把資料庫恢復到某一時刻的正確狀態。
3: 海量轉儲:每次轉儲全部資料庫。
4: 增量轉儲:每次只轉儲上一次轉出後更新過的資料。
六: 日誌檔案
1: 日誌檔案的格式和內容
日誌檔案用來記錄事物對資料庫的更新操作檔案。
a: 一記錄為單位的日誌檔案:內容包括
各個事物的開始標記(begin transaction)
各個事物的結束標記(end transaction)
各個事物的所有更新操作
這裡每個事物的開始標記,每個事物的結束標記和每個更新操作均作為日誌檔案中的乙個日誌記錄
事物標識(標明是哪個事物)
操作型別(插入,刪除或修改)
操作物件(記錄內部標識)
更新前資料的舊值(對插入操作而言,此項為空)
更新前資料的新值(對刪除操作而言,此項為空)
b: 以資料塊為單位的日誌檔案
以資料塊為單位的日誌檔案,包括食物標識和被更新的資料塊。
由於將更新前的整個塊和更新後的整個塊都放入日誌檔案,操作的型別和操作的物件等資訊就不必放入日誌記錄中了。
2: 日誌檔案的作用
a: 事物故障恢復和系統故障恢復必須用日誌檔案
b: 在動態轉儲方式中必須建立日誌檔案,後備副本和日誌檔案結合起來才有有效地恢復資料塊。
c: 在靜態轉儲方式中,也可以建立日誌檔案。
當資料庫損壞後可重新裝入後援副本吧資料庫轉儲到轉儲結束時的正確狀態,
然後利用日誌檔案,把已完成的事物進行重做處理,對故障發生時尚未完成的事物進行撤銷處理。
這樣不必重新執行那些已經完成的事物程式就可把資料庫恢復到故障前某一時刻的正確狀態。
3: 登記日誌檔案:為了保證資料庫是可恢復的,登記日誌檔案必須遵循兩條原則
a: 登記的次序嚴格按併發事物執行的時間次序
b: 必須先寫日誌檔案,後寫資料庫
如果先寫了資料庫,而在執行記錄中沒有登記這個修改,則以後就無法恢復這個修改了。
如果先寫日誌,但沒有修改資料庫,按日誌檔案恢復時不過是多執行一次不必要的undo操作。
七:恢復策略
1: 事物故障的恢復
指事物在執行至正常終止點前被終止,這是恢復子系統應該利用日誌檔案撤銷此事物對資料庫的修改。
a: 反向掃瞄日誌檔案,查詢該事物的更新操作。
b: 對該事物的更新操作執行逆操作,即將日誌記錄中」更新前的值「寫入資料庫。
c: 繼續反向掃瞄日誌檔案,查詢該事物的其他更新操作,並做同樣處理
d: 如此下去,知道獨到此事物的開始標記,事物故障恢復就完成了。
2: 系統故障的恢復
未完成事物對資料庫的更新可能已寫入資料庫。(撤銷)
已提交事物對資料庫的更新可能還留在緩衝區沒來得及寫入資料庫。(重做)
a: 正向掃瞄日誌檔案,找出在故障發生前已經提交的事物(有begin transaction 和 commit記錄的),將其事物標識記入重做佇列。
找出故障發生時尚未完成的事物(有begin transaction,無commit記錄的),將其事物標識記入撤銷佇列。
b: 對撤銷佇列中的各個事物進行撤銷處理。
反向掃瞄檔案,進行逆操作。
c: 對重做佇列中的各個事物進行重做處理
正向掃瞄日誌檔案,進行重做。
3: 介質故障的恢復
a: 裝入最新資料庫後備副本,是資料庫恢復到最近一次轉儲時的一致性狀態。
對於動態轉儲,需要同時裝入轉儲開始時刻的日誌檔案副本,利用恢復系統故障的方法,才能將資料庫恢復到一致性狀態。
b: 裝入相應的日誌檔案副本,重做已完成的事物。
八:具有檢查點的恢復技術
九:資料庫映象
介質故障後,恢復比較費時。且dba必須週期性的轉儲資料庫。如果不及時或不正確的轉儲資料庫,一旦發生介質故障,會造成很到的損失。
即根據dba的要求,自動把整個資料庫或其中關鍵資料複製到另乙個磁碟上。
每當主資料庫更新時,dbms自動把更新後的資料庫複製過去,保持映象資料庫和主資料庫一致。
一旦出現介質故障,可有映象資料庫繼續提供使用,同時dbms自動利用映象資料庫書籍進行資料庫的恢復,無需關閉系統和重灌資料庫副本。
在沒有故障出現時,映象資料庫還可以用於併發操作,即當乙個使用者對資料庫加排它鎖修改資料庫時,其他使用者可以讀映象資料庫上的資料,二不必等待該使用者釋放鎖。
頻繁的複製資料會降低系統執行效率,所以常常只對關鍵資料庫和日誌檔案映象,而非整個資料庫進行映象。
資料庫系統概論 緒論 資料庫系統概論(一)
1.1 資料庫系統概論 1.1.1 資料庫系統概論 1.資料 描述事物的符號記錄稱為是資料 資料的解釋叫做語義,他與資料時密不可分的 記錄是計算機中表示和儲存資料的一種格式或者乙個方法 2.資料庫 把資料以一定的格式存放在計算機儲存裝置上的倉庫就是資料庫 共享性 有組織 永久儲存是資料庫的三大特徵 ...
資料庫系統概論
資料庫系統概論 1 現實世界的資料化過程 現實世界是由實際存在的事物組成的。每種事物都有無窮的特性,事物之間有著錯綜複雜的聯絡。資訊世界是現實世界在人腦中的反映。現實世界中的事物和事物特性在資訊世界中分別反映為實體和實體的屬性。資訊世界是由實體組成的,每種實體都有自己有限的屬性。本質上說,實體是由有...
《資料庫系統概論》
一 概述 1.關係模型的組成 資料結構 二維表 關係 資料庫中全部資料以及資料間的聯絡都以關係來表示。資料操作 增 刪 改 查 資料的約束條件 實體完整性,參照完整性,使用者自定義的完整性。2.關係的資料結構 域 是一組既有相同資料類的值的集合,又稱值域。域中所包含值的個數稱為域的基數。笛卡爾積 所...