資料庫原理 十

2021-09-02 09:45:14 字數 2471 閱讀 4672

資料庫恢復是指通過技術手段,將儲存在資料庫中丟失的電子資料進行搶救和恢復的技術。

故障種類

1.事務故障:某個事務在執行過程中由於種種原因未執行至正常終止點就夭折了

事務故障的恢復:

(1)對於可預見的錯誤,由事務程式來處理

(2)對於不可預見的錯誤,由dbms強行回滾該事務

2.系統故障:整個系統的正常執行突然被破壞,所有正在執行的事務都非正常終止,記憶體中資料緩衝區的資訊全

部丟失,外部儲存裝置上的資料未受影響

系統故障的恢復:

(1)清除尚未完成的事務對資料庫的所有修改

(2)將緩衝區中已完成的事務提交的結果寫入資料庫

3.介質故障:介質故障是指儲存資料庫的裝置發生故障,使儲存在其上的資料部分丟失或全部丟失。介質故障又

稱為硬體故障。

介質故障的恢復:

(1)裝入資料庫發生介質故障前某個時刻的資料副本

(2)重做自此時開始的所有成功事務,將這些事務已提交的結果重新記入資料庫

恢復的實現技術

恢復操作的基本原理是冗餘,即利用儲存在系統其他地方的冗餘資料來重建資料庫中已被破壞或不正確的那部分

資料。1.建立冗餘資料

(1)資料轉儲

是指dba將整個資料庫複製到磁帶或另乙個磁碟上儲存起來的過程

a)靜態轉儲

在系統無執行事務時進行轉儲

轉儲開始時資料庫處於一致性狀態

轉儲期間不允許對資料庫的任何訪問、修改活動

b)動態儲存

轉儲操作與使用者事務併發執行

轉儲期間允許對資料庫進行訪問或修改

c)海量轉儲

每次轉儲全部資料庫

d)增量轉儲

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

(2)登記日誌檔案(log)

日誌檔案是用來記錄事務對資料庫的更新操作的檔案

其格式及內容

a)以記錄為單位的日誌檔案

各個事務的開始標記(begin transaction)

各個事務的結束標記(commit或rollback)

各個事務的所有更新操作

與事務有關的更新操作

與事務有關的內部更新操作

b)以資料塊為單位的日誌檔案

事務標識

操作型別

操作物件

更新前資料的舊值

更新後資料的新值

登記日誌檔案的原則

(1)登記的次序嚴格按並行事務的時間次序

(2)必須先寫日誌檔案,後寫資料庫

事務故障的恢復

由恢復子系統利用日誌檔案撤銷(undo)此事務已對資料庫進行的修改

事務故障的恢復有系統自動完成,不需要使用者干預。

系統故障的恢復:

undo故障時未完成的事務

redo已完成的事務

系統故障的恢復步驟:

1.正向掃瞄日誌檔案

redo佇列:在故障發生前已經提交的事務

undo佇列:故障發生時尚未完成的事務

2.對undo佇列事務進行undo處理

反向掃瞄日誌檔案,對每個undo事務更新操作進行逆操作

3.對redo佇列進行redo處理

正向掃瞄日誌檔案,對每個redo事務重新執行登記的操作

介質故障的恢復

1.重灌資料庫,使資料庫恢復到一致性的狀態

2.重做已經完成的事務

介質故障的恢復需要dba介入

dba的工作

重灌最近轉儲的資料庫副本和有關的個日誌檔案副本

執行系統提供的恢復命令。

具有檢查點的恢復技術

問題的提出

(1) 搜尋整個日誌將耗費大量的時間

(2) redo處理:重新執行,浪費了大量時間

解決方案

在日誌檔案中增加檢查點記錄(checkpoint)

增加重新開始檔案

恢復子系統在登入日誌檔案期間動態地維護日誌

利用檢查點的恢復步驟

1. 從重新開始檔案中找到最後乙個檢查點記錄在日誌檔案中的位址,由該位址在日誌檔案中找到最後乙個檢查點

記錄;2. 由該檢查點記錄得到檢查點建立時刻所有正在執行的事務清單active-list,建立兩個事務佇列

undo-list 

redo-list 

把active-list暫時放入undo-list佇列,redo佇列暫為空。

3.從檢查點開始正向掃瞄日誌檔案,直到日誌檔案結束

如有新開始的事務ti,把ti暫時放入undo-list佇列

如有提交的事務tj,把tj從undo-list佇列移到redo-list佇列

4.對undo-list中的每個事務執行undo操作, 對redo-list中的每個事務執行redo操作

資料庫原理(十) 需求分析

結語借鑑 需求分析簡單地說就是分析使用者的需求,需求分析是設計資料庫的起點,需求分析結果是否準確反映使用者的實際要求將直接影響到後面各階段的設計,並影響到設計結果是否合理和實用 需求分析的任務是通過詳細調查現實世界要處理的物件 組織 部門 企業等 充分了解原系統 手工系統或計算機系統 的工作概況,明...

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

事務 所謂事務是使用者定義的乙個資料庫操作序列,這些操作要麼全做,要麼不做,是乙個不可分割的工作單位。事務的開始和結束可以由使用者顯示控制。如果使用者沒有顯示定義事務,則由資料庫管理系統按預設規定自動劃分事務。在sql中定義事務的語句一般有以下三條 開啟事務 begin transaction 事務...

資料庫原理

基本內容 acid與cap 資料庫事務可能引發的問題 資料庫鎖的型別 封鎖協議 兩段鎖協議 資料庫隔離級別 mvcc的實現步驟 mysql事務如何實現 資料庫鎖如何實現 xa兩段提交協議。1.acid是資料庫事務正確執行的四個基本要素 原子性 事務是資料庫併發控制的最小單位,要麼全部提交成功,要麼全...