資料庫原理第十章 資料庫恢復技術

2021-10-06 09:46:40 字數 2593 閱讀 1898

事務

所謂事務是使用者定義的乙個資料庫操作序列,這些操作要麼全做,要麼不做,是乙個不可分割的工作單位。

事務的開始和結束可以由使用者顯示控制。如果使用者沒有顯示定義事務,則由資料庫管理系統按預設規定自動劃分事務。

在sql中定義事務的語句一般有以下三條:

-- 開啟事務

begin transaction;

-- 事務提交

commit

-- 事務回滾

rollback

事務的特性acid

事務具有四個特性:原子性(atomicity)、 一致性(consistency)、 隔離性(isolation)、持續性(durability)

原子性事務是資料庫的邏輯工作單位,事務中包括的操作要麼全做,要麼不做(關注狀態:要麼成功要麼失敗,不存在部分成功狀態)。

一致性一致性也是事務中包括的操作要麼成功,要麼失敗。這看起來跟原子性是一樣的。但是一致性與原子性不同的是,一致性關注的是資料的可見性,中間狀態的資料對外部不可見,只有最初狀態和最終狀態的資料對外可見。例如a要從銀行轉賬100給b,原子性關注的是這一整個操作是否正確成功執行,而一致性關注的是賬戶a有沒有成功扣款,賬戶b有沒有成功入賬,賬戶a應該和賬戶b保持一致性。

隔離性乙個事務的執行不能被其他事務干擾。

持續性持續性也稱永久性,指乙個事務一旦提交,那麼它對資料庫中資料改變將是永久的。

儘管資料庫系統中採取了各種各樣的措施來防止資料的安全性和完整性遭到破壞,保證事併發的正確執行。但是有一些故障是不可避免的。資料庫中可能發生的故障大致可以分為以下幾類。

恢復機制涉及的兩個關鍵問題是:如何建立冗餘資料,以及如何利用這些冗餘資料實現資料庫恢復。建立冗餘資料最常用的技術是資料轉儲和登記日誌檔案

資料轉儲

資料轉儲即資料庫管理員定期將整個資料庫備份的過程,這些備份後的資料稱為後備副本或後援副本。

轉儲可以分為靜態儲存和動態儲存。

資料儲存的兩種方式分別可以在兩種方式下進行:

海量轉儲: 每次轉儲全部資料庫

增量轉儲: 只轉儲上次轉儲後更新過的資料

海量轉儲與增量轉儲比較

從恢復角度看,使用海量轉儲得到的後備副本進行恢復往往更方便

如果資料庫很大,事務處理又十分頻繁,則增量轉儲方式更實用更有效

登記日誌檔案

1.日誌檔案的格式和內容

日誌檔案是用來記錄事務對資料庫的更新操作的檔案。不同的資料庫採用的日誌檔案格式並不完全一樣。概況起來主要有兩種格式:以記錄為單位的日誌檔案以資料塊為單位的日誌檔案

以記錄為單位的日誌檔案需要登記的內容包括:

以記錄為單位的日誌每條日誌記錄的內容包括如下:

對於以資料塊為單位的日誌檔案包括:事務標識和被更新的資料塊

2.日誌檔案的作用

日誌在資料恢復中可以用來進行事務故障恢復和系統故障恢復等,具體作用:

3.登記日誌檔案

為保證資料庫是可恢復的,登記日誌檔案時必須遵循兩條規則:

為什麼要先寫日誌後寫資料庫?

因為寫日誌和寫資料庫是兩個不同的操作,在這兩個操作之間可能發生故障,即兩個操作只完成了乙個。即先寫資料庫,而日誌沒有寫,這種情況下,以後就不能恢復這個修改了。

當系統執行時發生故障需要利用副本和日誌恢復,但是要注意的是不同的故障恢復策略和方法是不同的。

事務故障恢復

這種故障是指事務在執行至正常終點前被停止,這時恢復子系統應利用日誌檔案撤銷事務已對資料庫進行的修改。

恢復步驟是:

系統故障恢復

系統故障造成資料庫不一致狀態原因有兩個:乙個是未完成事務對資料庫的更新已經寫入資料,二是已經提交的事務對資料的更新可能還留在快取中。解決方案是撤銷故障發生時未完成的事務,重做已完成事務。

恢復步驟:

介質故障恢復

發生介質故障後,磁碟上的物理資料和日誌資料檔案被破壞,這是最嚴重的的一種故障,恢復方法是重灌資料庫,然後重做已經完成的事務。

利用日誌技術恢復子系統必須搜尋日誌確定哪些事務需要重做哪些需要撤銷,這將會浪費大量的時間。為了解決這個問題引入了檢查點記錄,檢查點記錄即增加乙個從新開始的檔案,並讓恢復子系統在登入日誌檔案期間動態的維護日誌。

檢查點記錄內容包括:

動態維護日誌的方法是:週期性的執行建立檢查點、儲存資料庫狀態操作。具體步驟如下:

子系統恢復的策略:

undo日誌用於記錄事務開始前的狀態,用於事務失敗時的回滾操作;redo日誌記錄事務執行後的狀態,用來恢復未寫入data file的已成功事務更新的資料。

系統使用檢查點方法進行恢復的步驟:

使用檢查點的優點:縮短掃瞄日誌時間改善恢復效率

資料庫映象即可以很好的解決介質故障,即準備多塊硬碟利用資料庫映象實時將一塊硬碟的資料備份到多塊硬碟。

第十章 資料庫恢復技術

一 事務 1,定義 事務是使用者定義的乙個資料庫操作系列,這些操作要麼全做,要麼全不做,是乙個不可分割的工作單位 2,事務和程式是兩個概念,乙個程式可以包含多個事務 3,事務是恢復和併發控制的基本單位 4,事務的特性 1 原子性 2 一致性 3 隔離性 4 持續性 注 事務特性的作用 保證事務aci...

資料庫作業20 第十章 資料庫恢復技術

故障發生前已經提交的事務 既有begin transaction記錄,也有commit記錄 這些事務需要重做。故障發生時還未完成的事務 只有begin transaction記錄,無對應的 commit記錄 這些事務需要回滾。故障發生時還沒開始的事務就沒意義了。1 故障在14之後,在故障發生之前已經...

《資料庫系統概論》 第十章 資料庫恢復技術

事務是一系列的資料庫操作,是資料庫應用程式的基本邏輯單元。事務處理 transaction processing 技術主要包括資料庫恢復技術和併發控制技術。事務 是使用者定義的乙個資料庫操作序列,是乙個不可分割的工作單位 原子性 一般的,乙個程式中被包含多個事務。如果使用者沒有顯式的定義事務,則db...