資源描述:
《《數(shù)據(jù)庫原理與技術(shù)》-第64章數(shù)據(jù)庫的恢復(fù)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)是由DBMS統(tǒng)一管理和控制的,為了適應(yīng)數(shù)據(jù)共享的環(huán)境,DBMS必須提供數(shù)據(jù)保護能力,以保證數(shù)據(jù)庫中數(shù)據(jù)的安全可靠和正確有效。數(shù)據(jù)保護安全性完整性并發(fā)控制數(shù)據(jù)庫恢復(fù)6.4數(shù)據(jù)庫的恢復(fù)6.4.1事務(wù)的基本概念6.4.2數(shù)據(jù)庫恢復(fù)概述6.4.3故障的種類6.4.4恢復(fù)的實現(xiàn)技術(shù)6.4.5恢復(fù)策略6.4.6具有檢查點的恢復(fù)技術(shù)6.4.7數(shù)據(jù)庫鏡像6.4.1事務(wù)的基本概念一、什么是事務(wù)二、如何定義事務(wù)三、事務(wù)的特性一、什么是事務(wù)事務(wù)(Transaction)是用戶定義的一個數(shù)據(jù)庫操作序列,這些操作要么全做,要么全不做,是一個不可分割的工作單位事務(wù)和程序
2、是兩個概念在關(guān)系數(shù)據(jù)庫中,一個事務(wù)可以是一條SQL語句,一組SQL語句或整個程序一個應(yīng)用程序通常包含多個事務(wù)事務(wù)是恢復(fù)和并發(fā)控制的基本單位二、如何定義事務(wù)顯式定義方式BEGINTRANSACTIONBEGINTRANSACTIONSQL語句1SQL語句1SQL語句2SQL語句2。。。。。。。。。。COMMITROLLBACK隱式方式當(dāng)用戶沒有顯式地定義事務(wù)時,DBMS按缺省規(guī)定自動劃分事務(wù)事務(wù)結(jié)束COMMIT事務(wù)正常結(jié)束提交事務(wù)的所有操作(讀+更新)事務(wù)中所有對數(shù)據(jù)庫的更新永久生效ROLLBACK事務(wù)異常終止事務(wù)運行的過程中發(fā)生了故障,不能繼續(xù)執(zhí)行回滾事務(wù)的所
3、有更新操作事務(wù)滾回到開始時的狀態(tài)三、事務(wù)的特性(ACID特性)事務(wù)的ACID特性:原子性(Atomicity)一致性(Consistency)隔離性(Isolation)持續(xù)性(Durability)1.原子性事務(wù)是數(shù)據(jù)庫的邏輯工作單位事務(wù)中包括的諸操作要么都做,要么都不做2.一致性事務(wù)執(zhí)行的結(jié)果必須是使數(shù)據(jù)庫從一個一致性狀態(tài)變到另一個一致性狀態(tài)一致性狀態(tài):數(shù)據(jù)庫中只包含成功事務(wù)提交的結(jié)果不一致狀態(tài):數(shù)據(jù)庫中包含失敗事務(wù)的結(jié)果一致性與原子性銀行轉(zhuǎn)帳:從帳號A中取出一萬元,存入帳號B。定義一個事務(wù),該事務(wù)包括兩個操作B=B+1A=A-1BA這兩個操作要么全做,要
4、么全不做全做或者全不做,數(shù)據(jù)庫都處于一致性狀態(tài)。如果只做一個操作,數(shù)據(jù)庫就處于不一致性狀態(tài)。3.隔離性對并發(fā)執(zhí)行而言一個事務(wù)的執(zhí)行不能被其他事務(wù)干擾一個事務(wù)內(nèi)部的操作及使用的數(shù)據(jù)對其他并發(fā)事務(wù)是隔離的并發(fā)執(zhí)行的各個事務(wù)之間不能互相干擾T1的修改被T2覆蓋了!讀A=16A←A-3寫回A=13①讀A=16②③A←A-1寫回A=15④T2T14.持續(xù)性持續(xù)性也稱永久性(Permanence)一個事務(wù)一旦提交,它對數(shù)據(jù)庫中數(shù)據(jù)的改變就應(yīng)該是永久性的。接下來的其他操作或故障不應(yīng)該對其執(zhí)行結(jié)果有任何影響。事務(wù)的特性保證事務(wù)ACID特性是事務(wù)處理的任務(wù)破壞事務(wù)ACID特性的
5、因素多個事務(wù)并行運行時,不同事務(wù)的操作交叉執(zhí)行事務(wù)在運行過程中被強行停止6.4.2數(shù)據(jù)庫恢復(fù)概述故障是不可避免的計算機硬件故障系統(tǒng)軟件和應(yīng)用軟件的錯誤操作員的失誤惡意的破壞故障的影響運行事務(wù)非正常中斷破壞數(shù)據(jù)庫數(shù)據(jù)庫恢復(fù)概述(續(xù))數(shù)據(jù)庫管理系統(tǒng)對故障的對策DBMS提供恢復(fù)子系統(tǒng)保證故障發(fā)生后,能把數(shù)據(jù)庫中的數(shù)據(jù)從錯誤狀態(tài)恢復(fù)到某種邏輯一致的狀態(tài)保證事務(wù)ACID恢復(fù)技術(shù)是衡量系統(tǒng)優(yōu)劣的重要指標(biāo)一、事務(wù)故障什么是事務(wù)故障某個事務(wù)在運行過程中由于種種原因未運行至正常終止點就夭折了事務(wù)故障的常見原因輸入數(shù)據(jù)有誤運算溢出違反了某些完整性限制某些應(yīng)用程序出錯并行事務(wù)發(fā)生死
6、鎖。。。。事務(wù)故障的恢復(fù)發(fā)生事務(wù)故障時,夭折的事務(wù)可能已把對數(shù)據(jù)庫的部分修改寫回磁盤事務(wù)故障的恢復(fù):撤消事務(wù)(UNDO)強行回滾(ROLLBACK)該事務(wù)清除該事務(wù)對數(shù)據(jù)庫的所有修改,使得這個事務(wù)象根本沒有啟動過一樣二、系統(tǒng)故障什么是系統(tǒng)故障整個系統(tǒng)的正常運行突然被破壞所有正在運行的事務(wù)都非正常終止內(nèi)存中數(shù)據(jù)庫緩沖區(qū)的信息全部丟失外部存儲設(shè)備上的數(shù)據(jù)未受影響系統(tǒng)故障的常見原因操作系統(tǒng)或DBMS代碼錯誤操作員操作失誤特定類型的硬件錯誤(如CPU故障)突然停電系統(tǒng)故障的恢復(fù)清除尚未完成的事務(wù)對數(shù)據(jù)庫的所有修改系統(tǒng)重新啟動時,恢復(fù)程序要強行撤消(UNDO)所有未完成
7、事務(wù)將緩沖區(qū)中已完成事務(wù)提交的結(jié)果寫入數(shù)據(jù)庫系統(tǒng)重新啟動時,恢復(fù)程序需要重做(REDO)所有已提交的事務(wù)三、介質(zhì)故障硬件故障使存儲在外存中的數(shù)據(jù)部分丟失或全部丟失介質(zhì)故障比前兩類故障的可能性小得多,但破壞性大得多介質(zhì)故障的常見原因硬件故障磁盤損壞磁頭碰撞操作系統(tǒng)的某種潛在錯誤瞬時強磁場干擾介質(zhì)故障的恢復(fù)裝入數(shù)據(jù)庫發(fā)生介質(zhì)故障前某個時刻的數(shù)據(jù)副本重做自此時始的所有成功事務(wù),將這些事務(wù)已提交的結(jié)果重新記入數(shù)據(jù)庫恢復(fù)操作的基本原理恢復(fù)操作的基本原理:冗余利用存儲在系統(tǒng)其它地方的冗余數(shù)據(jù)來重建數(shù)據(jù)庫中已被破壞或不正確的那部分?jǐn)?shù)據(jù)恢復(fù)的實現(xiàn)技術(shù):復(fù)雜一個大型數(shù)據(jù)庫產(chǎn)品,
8、恢復(fù)子系統(tǒng)的代碼要占全部代碼的10%以