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