資源描述:
《數(shù)據(jù)庫恢復技術(shù)ppt課件.ppt》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、數(shù)據(jù)庫恢復技術(shù)內(nèi)容要求了解數(shù)據(jù)庫的一致性狀態(tài);數(shù)據(jù)庫運行中可能產(chǎn)生的故障類型,以及對數(shù)據(jù)庫造成的影響。掌握事務的基本概念和事務的ACID性質(zhì);數(shù)據(jù)庫恢復的實現(xiàn)技術(shù);日志文件的內(nèi)容及作用。舉一反三:恢復的基本原理,針對不同故障的恢復策略和方法。本講內(nèi)容一、事務的基本概念二、數(shù)據(jù)庫恢復概述三、故障的種類四、恢復的實現(xiàn)技術(shù)五、恢復策略六、具有檢查點的恢復技術(shù)七、數(shù)據(jù)庫鏡像一、事務的基本概念1.事務的定義2.事務的ACID性質(zhì)3.事務的狀態(tài)變遷圖1.事務的定義定義一個數(shù)據(jù)庫操作序列,這些操作要么全做要么全不做一個不可分割的工作單位是數(shù)據(jù)庫應用程序的
2、基本邏輯單元恢復和并發(fā)控制的基本單位事務和程序比較在關(guān)系數(shù)據(jù)庫中,一個事務可以是一條或多條SQL語句、一組SQL語句或整個程序。一個程序通常包含多個事務定義事務顯式定義方式BEGINTRANSACTIONSQL語句1SQL語句2。。。。。COMMITROLLBACK隱式方式當用戶沒有顯式地定義事務時,DBMS按缺省規(guī)定自動劃分事務。示例CreatetableMyFriends{namechar(6)notnull,sexchar(2),phonechar(11)notnull}BegintransactioninsertintoMyFrie
3、nds(name,sex)values(‘王國慶’,’男’)updateMyfriendssetphone=‘01067846050’wherename=‘王國慶’commit關(guān)于事務事務和程序是兩個概念。BEGINTRANSACTION表示事務的開始COMMIT/ROLLBACK表示事務的結(jié)束。(1)COMMIT表示提交,即提交事務的所有操作。具體地說就是將事務中所有對數(shù)據(jù)庫的更新寫到磁盤的物理數(shù)據(jù)庫中,事務正常結(jié)束。(2)ROLLBACK表示回滾,即在事務運行的過程中發(fā)生了某種例外,事務不能繼續(xù)執(zhí)行,系統(tǒng)將事務中對數(shù)據(jù)庫的所有已完成的操
4、作全部撤銷,回滾到事務開始時的狀態(tài)。說明:這里的操作指對數(shù)據(jù)庫的更新操作。思考:查詢操作,對COMMIT的結(jié)果有影響嗎?有必要做ROLLBACK嗎?示例例:設(shè)銀行數(shù)據(jù)庫中有一轉(zhuǎn)賬事務T,從帳號A轉(zhuǎn)一筆款($50)到帳號B,其操作如下:T:read(A);A:=A-50;write(A);read(B);B:=B+50;write(B).對應的程序T:BEGINTRANSACTIONread(A);A:=A-50;write(A);if(A<0)ROLLBACK;else{read(B);B:=B+50;write(B);COMMIT;}SQ
5、L事務控制流程BegintransactionCommitRollbackSQL語句SQL語句執(zhí)行成功SQL語句執(zhí)行失敗事務開始時的數(shù)據(jù)庫更新后的數(shù)據(jù)庫讀寫操作對數(shù)據(jù)庫的訪問是建立在讀和寫兩個操作的基礎(chǔ)上的:(1)Read(X):把數(shù)據(jù)X從磁盤的數(shù)據(jù)庫中讀到內(nèi)存的緩沖區(qū)中。(2)Write(X):把數(shù)據(jù)X從內(nèi)存的緩沖區(qū)寫回磁盤的數(shù)據(jù)庫。說明:在系統(tǒng)運行時,write操作未必導致數(shù)據(jù)立即寫回磁盤,很可能先暫存在內(nèi)存緩沖區(qū)中,稍后再寫回磁盤。2.事務的特性(ACID特性)(1)原子性(Atomicity)(2)一致性(Consistency)(
6、3)隔離性(Isolation)(4)持續(xù)性(Durability)(1)原子性一個事務對數(shù)據(jù)庫的所有操作,這些操作要么全部執(zhí)行,要么什么也不做(就效果而言)。保證原子性是數(shù)據(jù)庫系統(tǒng)本身的職責,由DBMS的事務管理子系統(tǒng)來實現(xiàn),commit和rollback操作是其中的關(guān)鍵。說明:提交事務的數(shù)據(jù)更新已在內(nèi)存中完成,但不一定已完全寫入磁盤。不過,只要事務被提交,其更新的數(shù)據(jù)即使沒有寫入磁盤,也應認為是有效的,而且DBMS應保證該數(shù)據(jù)的更新要寫到磁盤。(2)一致性事務執(zhí)行前后保證使數(shù)據(jù)庫從一個一致性狀態(tài)變到另一個一致性狀態(tài)。(1)事務成功提交:
7、將事務轉(zhuǎn)到另一個一致性狀態(tài)。(2)事務失?。簩⑹聞栈赝说绞聞請?zhí)行前的一致性狀態(tài)。說明:事務的一致性與原子性是密切相關(guān)的。確保單個事務的一致性是編寫事務的應用程序員的職責。在系統(tǒng)運行時,由DBMS的完整性子系統(tǒng)執(zhí)行測試任務。(3)隔離性在多個事務并發(fā)執(zhí)行時,系統(tǒng)應保證與這些事務先后單獨執(zhí)行時的結(jié)果一樣。也就是說,并發(fā)執(zhí)行的各個事務之間不能相互干擾。說明:隔離性是由DBMS的并發(fā)控制子系統(tǒng)實現(xiàn)的。(4)持久性一個事務一旦完成全部操作后,它對數(shù)據(jù)庫的所有更新應永久地反映在數(shù)據(jù)庫中。即使該事務的數(shù)據(jù)更新還未寫入磁盤,系統(tǒng)就出現(xiàn)故障,也不應該對其執(zhí)行
8、結(jié)果有任何影響。說明:事務的持久性由DBMS的故障管理恢復子系統(tǒng)實現(xiàn)。DBMS對事務的控制保證事務的ACID性是事務處理的重要任務。事務ACID性可能遭到破壞的因素:多個事務并發(fā)