版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第十章數(shù)據(jù)庫恢復(fù)技術(shù)10.1事務(wù)的基本概念10.2數(shù)據(jù)庫恢復(fù)概述10.3恢復(fù)的實(shí)現(xiàn)10.4恢復(fù)策略10.5具有檢查點(diǎn)的恢復(fù)技術(shù)10.6數(shù)據(jù)庫鏡像10.7SQLServer的恢復(fù)技術(shù)1/8/20231第十章數(shù)據(jù)庫恢復(fù)技術(shù)第十章數(shù)據(jù)庫恢復(fù)技術(shù)10.1事務(wù)的基本概念1/7/10.1事務(wù)的基本概念什么是事務(wù)?事務(wù)的基本操作與狀態(tài)系統(tǒng)賦予事務(wù)的特性1/8/20232第十章數(shù)據(jù)庫恢復(fù)技術(shù)10.1事務(wù)的基本概念什么是事務(wù)?1/7/20232第10.1.1什么是事務(wù)?典型事務(wù),如銀行轉(zhuǎn)帳:帳戶A–10000元;帳戶B+10000元。Read(A);A:=A-10000;Write(A);Read(B);B:=B+10000;Write(B);begintransaction;Read(A);A:=A-10000;Write(A);Read(B);B:=B+10000;Write(B);committransaction;1、定義為了完成某個任務(wù)所執(zhí)行的一個數(shù)據(jù)庫讀、寫操作序列。2、顯式定義方式
BEGINTRANSACTIONSQL語句1SQL語句2。。。。。
COMMIT(或ROLLBACK)3、隱式方式當(dāng)用戶沒有顯式地定義事務(wù)時,DBMS按缺省規(guī)定自動劃分事務(wù)。1/8/20233第十章數(shù)據(jù)庫恢復(fù)技術(shù)10.1.1什么是事務(wù)?典型事務(wù),如銀行轉(zhuǎn)帳:Read(10.1.2事務(wù)的基本操作與狀態(tài)1)事務(wù)開始(begintransaction):開始執(zhí)行。2)事務(wù)讀寫(read/write):進(jìn)行數(shù)據(jù)庫操作。3)事務(wù)結(jié)束(endtransaction):完成所有操作。4)事務(wù)交付(commit):完成所有操作,并保存所有結(jié)果。5)事務(wù)撤消(rollback):執(zhí)行途中出現(xiàn)異常,系統(tǒng)或用戶撤消事務(wù)。活躍部分交付交付撤消終止事務(wù)開始事務(wù)結(jié)束交付撤消讀寫操作事務(wù)的起點(diǎn)事務(wù)的終點(diǎn)1/8/20234第十章數(shù)據(jù)庫恢復(fù)技術(shù)10.1.2事務(wù)的基本操作與狀態(tài)1)事務(wù)開始(begin10.1.3系統(tǒng)賦予事務(wù)的特性(ACID)為了保證事務(wù)并發(fā)、有效、正確地執(zhí)行,保證數(shù)據(jù)庫的正確性,系統(tǒng)必須賦予事務(wù)一些特性。1)原子性(Atomicity):最基本特性 事務(wù)的所有操作要么全部完成,要么均不執(zhí)行。原子性在于保證正確性。由DBMS的恢復(fù)子系統(tǒng)來保證原子性。2)一致性(Consistency):事務(wù)必須將數(shù)據(jù)庫從一種一致狀態(tài)轉(zhuǎn)換為另一種一致狀態(tài)。由DBMS和程序開發(fā)者共同保證數(shù)據(jù)庫的一致性。3)隔離性(Isolation):任何事務(wù)不能訪問到其他未交付事務(wù)的中間結(jié)果。由DBMS的并發(fā)控制子系統(tǒng)來保證事務(wù)的隔離性。4)持久性(Durability):保證已交付事務(wù)的結(jié)果不丟失,且與以后的故障無關(guān)。由DBMS的恢復(fù)子系統(tǒng)負(fù)責(zé)確保事務(wù)的持久性。1/8/20235第十章數(shù)據(jù)庫恢復(fù)技術(shù)10.1.3系統(tǒng)賦予事務(wù)的特性(ACID)為了10.2數(shù)據(jù)庫恢復(fù)概述1、引入“恢復(fù)”技術(shù)的原因事務(wù)故障、系統(tǒng)故障、介質(zhì)故障計(jì)算機(jī)病毒2、恢復(fù)的基本原理冗余3、恢復(fù)的含義所謂數(shù)據(jù)庫的恢復(fù)就是利用存儲在系統(tǒng)其他地方的冗余數(shù)據(jù)來修復(fù)數(shù)據(jù)庫中被破壞的或不正確的數(shù)據(jù),使數(shù)據(jù)庫從錯誤狀態(tài)恢復(fù)到某一已知的正確狀態(tài)。(1)數(shù)據(jù)庫本身被破壞(2)數(shù)據(jù)庫沒有被破壞,但數(shù)據(jù)可能不正確1/8/20236第十章數(shù)據(jù)庫恢復(fù)技術(shù)10.2數(shù)據(jù)庫恢復(fù)概述1、引入“恢復(fù)”技術(shù)的原因(1)10.3恢復(fù)的實(shí)現(xiàn)技術(shù)恢復(fù)機(jī)制涉及的兩個關(guān)鍵問題:如何建立冗余數(shù)據(jù)如何利用冗余數(shù)據(jù)實(shí)施數(shù)據(jù)庫恢復(fù)數(shù)據(jù)轉(zhuǎn)儲登記日志文件不同故障的恢復(fù)策略有所不同1/8/20237第十章數(shù)據(jù)庫恢復(fù)技術(shù)10.3恢復(fù)的實(shí)現(xiàn)技術(shù)恢復(fù)機(jī)制涉及的兩個關(guān)鍵問題:數(shù)據(jù)轉(zhuǎn)10.3.1數(shù)據(jù)轉(zhuǎn)儲1、含義DBA定期地將整個數(shù)據(jù)庫復(fù)制到磁帶或另一個磁盤上形成后備副本保存起來的過程。2、利用轉(zhuǎn)儲方法進(jìn)行恢復(fù)的過程3、轉(zhuǎn)儲狀態(tài)靜態(tài)轉(zhuǎn)儲動態(tài)轉(zhuǎn)儲4、轉(zhuǎn)儲方式海量轉(zhuǎn)儲增量轉(zhuǎn)儲
TaTbTf正常運(yùn)行轉(zhuǎn)儲運(yùn)行事務(wù)故障發(fā)生點(diǎn)重裝后備副本重新運(yùn)行事務(wù)恢復(fù)1/8/20238第十章數(shù)據(jù)庫恢復(fù)技術(shù)10.3.1數(shù)據(jù)轉(zhuǎn)儲1、含義TaTbTf正常運(yùn)行轉(zhuǎn)儲運(yùn)行10.3.2登記日志文件日志文件的格式和內(nèi)容日志文件的作用登記日志文件1/8/20239第十章數(shù)據(jù)庫恢復(fù)技術(shù)10.3.2登記日志文件日志文件的格式和內(nèi)容1/7/一、日志文件的格式和內(nèi)容什么是日志文件日志文件(log)是用來記錄事務(wù)對數(shù)據(jù)庫的更新操作的文件。日志文件的格式以記錄為單位的日志文件以數(shù)據(jù)塊為單位的日志文件1/8/202310第十章數(shù)據(jù)庫恢復(fù)技術(shù)一、日志文件的格式和內(nèi)容什么是日志文件1/7/202310第日志文件的格式和內(nèi)容(續(xù))以記錄為單位的日志文件內(nèi)容各個事務(wù)的開始標(biāo)記(BEGINTRANSACTION)各個事務(wù)的結(jié)束標(biāo)記(COMMIT或ROLLBACK)各個事務(wù)的所有更新操作以上均作為日志文件中的一個日志記錄(logrecord)每條日志記錄的內(nèi)容事務(wù)標(biāo)識(標(biāo)明是哪個事務(wù))操作類型(插入、刪除或修改)操作對象(記錄內(nèi)部標(biāo)識)更新前數(shù)據(jù)的舊值(對插入操作而言,此項(xiàng)為空值)更新后數(shù)據(jù)的新值(對刪除操作而言,此項(xiàng)為空值)1/8/202311第十章數(shù)據(jù)庫恢復(fù)技術(shù)日志文件的格式和內(nèi)容(續(xù))以記錄為單位的日志文件內(nèi)容1/7/日志文件的格式和內(nèi)容(續(xù))以數(shù)據(jù)塊為單位的日志文件,每條日志記錄的內(nèi)容事務(wù)標(biāo)識(標(biāo)明是那個事務(wù))被更新的數(shù)據(jù)塊1/8/202312第十章數(shù)據(jù)庫恢復(fù)技術(shù)日志文件的格式和內(nèi)容(續(xù))以數(shù)據(jù)塊為單位的日志文件,每條日志二、日志文件的作用進(jìn)行事務(wù)故障恢復(fù)進(jìn)行系統(tǒng)故障恢復(fù)協(xié)助后備副本進(jìn)行介質(zhì)故障恢復(fù)1/8/202313第十章數(shù)據(jù)庫恢復(fù)技術(shù)二、日志文件的作用進(jìn)行事務(wù)故障恢復(fù)1/7/202313第利用靜態(tài)轉(zhuǎn)儲副本和日志文件進(jìn)行恢復(fù)TaTbTf正常運(yùn)行轉(zhuǎn)儲運(yùn)行事務(wù)故障發(fā)生點(diǎn)登記日志文件重裝后備副本利用日志文件恢復(fù)事務(wù)恢復(fù)登記日志文件繼續(xù)運(yùn)行1/8/202314第十章數(shù)據(jù)庫恢復(fù)技術(shù)利用靜態(tài)轉(zhuǎn)儲副本和日志文件進(jìn)行恢復(fù)TaTbTf正常運(yùn)行轉(zhuǎn)儲運(yùn)三、登記日志文件基本原則登記的次序嚴(yán)格按并行事務(wù)執(zhí)行的時間次序必須先寫日志文件,后寫數(shù)據(jù)庫寫日志文件操作:把表示這個修改的日志記錄寫到日志文件寫數(shù)據(jù)庫操作:把對數(shù)據(jù)的修改寫到數(shù)據(jù)庫中1/8/202315第十章數(shù)據(jù)庫恢復(fù)技術(shù)三、登記日志文件基本原則1/7/202315第十章數(shù)據(jù)庫10.4恢復(fù)策略事務(wù)分類基本的恢復(fù)操作不同故障的恢復(fù)策略1/8/202316第十章數(shù)據(jù)庫恢復(fù)技術(shù)10.4恢復(fù)策略事務(wù)分類1/7/202316第十章數(shù)10.4.1事務(wù)分類圓滿事務(wù)指日志文件中記錄了事務(wù)的commit標(biāo)識,說明日志中已經(jīng)完整地記錄下事務(wù)所有的更新活動。夭折事務(wù)指日志文件中只有事務(wù)的開始標(biāo)識,而無commit標(biāo)識,說明對事務(wù)更新活動的記錄是不完整的,無法根據(jù)日志來重現(xiàn)事務(wù)。為保證事務(wù)的原子性,應(yīng)該撤銷這樣的事務(wù)。1/8/202317第十章數(shù)據(jù)庫恢復(fù)技術(shù)10.4.1事務(wù)分類圓滿事務(wù)1/7/202317第十章10.4.2基本的恢復(fù)操作:Redo和UndoRedo和Undo是針對事務(wù)的某一次更新操作。Redo是重新執(zhí)行這次操作。其處理的方法是,正向掃描日志文件,將日志記錄中“更新后的值”重新寫入數(shù)據(jù)庫。Undo是消除這次操作的影響,將事務(wù)執(zhí)行點(diǎn)回退到這次操作之前。其處理的方法是,反向掃描日志文件,將日志記錄中“更新前的值”重新寫入數(shù)據(jù)庫。在利用日志文件進(jìn)行恢復(fù)的過程中,對已結(jié)束的事務(wù)中的更新操作進(jìn)行Redo,對未結(jié)束的事務(wù)中的更新操作進(jìn)行Undo。1/8/202318第十章數(shù)據(jù)庫恢復(fù)技術(shù)10.4.2基本的恢復(fù)操作:Redo和UndoRedo和10.4.3不同故障的恢復(fù)策略事務(wù)故障的恢復(fù)系統(tǒng)故障的恢復(fù)介質(zhì)故障的恢復(fù)1/8/202319第十章數(shù)據(jù)庫恢復(fù)技術(shù)10.4.3不同故障的恢復(fù)策略事務(wù)故障的恢復(fù)1/7/思考題在SQL語言中,定義事務(wù)控制的語句主要有________、________和________。事務(wù)具有四個特性:它們是___、____、____和____。這個四個特性也簡稱為_____特性。_______和_______是數(shù)據(jù)庫恢復(fù)的基本技術(shù)。如何進(jìn)行事務(wù)故障的恢復(fù)?系統(tǒng)故障的恢復(fù)?介質(zhì)故障恢復(fù)?1/8/202320第十章數(shù)據(jù)庫恢復(fù)技術(shù)思考題在SQL語言中,定義事務(wù)控制的語句主要有_______10.5具有檢查點(diǎn)的恢復(fù)技術(shù)問題的提出檢查點(diǎn)技術(shù)利用檢查點(diǎn)的恢復(fù)策略1/8/202321第十章數(shù)據(jù)庫恢復(fù)技術(shù)10.5具有檢查點(diǎn)的恢復(fù)技術(shù)問題的提出1/7/20210.5.1問題的提出兩個問題搜索整個日志將耗費(fèi)大量的時間REDO處理:重新執(zhí)行,浪費(fèi)了大量時間1/8/202322第十章數(shù)據(jù)庫恢復(fù)技術(shù)10.5.1問題的提出兩個問題1/7/202322第十章解決方案具有檢查點(diǎn)(checkpoint)的恢復(fù)技術(shù)在日志文件中增加檢查點(diǎn)記錄(checkpoint)增加重新開始文件恢復(fù)子系統(tǒng)在登錄日志文件期間動態(tài)地維護(hù)日志1/8/202323第十章數(shù)據(jù)庫恢復(fù)技術(shù)解決方案具有檢查點(diǎn)(checkpoint)的恢復(fù)技術(shù)1/7/10.5.2檢查點(diǎn)技術(shù)檢查點(diǎn)記錄的內(nèi)容1.建立檢查點(diǎn)時刻所有正在執(zhí)行的事務(wù)清單2.這些事務(wù)最近一個日志記錄的地址重新開始文件的內(nèi)容記錄各個檢查點(diǎn)記錄在日志文件中的地址1/8/202324第十章數(shù)據(jù)庫恢復(fù)技術(shù)10.5.2檢查點(diǎn)技術(shù)檢查點(diǎn)記錄的內(nèi)容1/7/20232動態(tài)維護(hù)日志文件的方法動態(tài)維護(hù)日志文件的方法周期性地執(zhí)行如下操作:建立檢查點(diǎn),保存數(shù)據(jù)庫狀態(tài)。具體步驟是:1.將當(dāng)前日志緩沖區(qū)中的所有日志記錄寫入磁盤的日志文件上2.在日志文件中寫入一個檢查點(diǎn)記錄3.將當(dāng)前數(shù)據(jù)緩沖區(qū)的所有數(shù)據(jù)記錄寫入磁盤的數(shù)據(jù)庫中4.把檢查點(diǎn)記錄在日志文件中的地址寫入一個重新開始文件1/8/202325第十章數(shù)據(jù)庫恢復(fù)技術(shù)動態(tài)維護(hù)日志文件的方法動態(tài)維護(hù)日志文件的方法1/7/2023建立檢查點(diǎn)恢復(fù)子系統(tǒng)可以定期或不定期地建立檢查點(diǎn),保存數(shù)據(jù)庫狀態(tài)定期按照預(yù)定的一個時間間隔,如每隔一小時建立一個檢查點(diǎn)不定期按照某種規(guī)則,如日志文件已寫滿一半建立一個檢查點(diǎn)1/8/202326第十章數(shù)據(jù)庫恢復(fù)技術(shù)建立檢查點(diǎn)恢復(fù)子系統(tǒng)可以定期或不定期地建立檢查點(diǎn),保存數(shù)據(jù)庫10.5.3利用檢查點(diǎn)的恢復(fù)策略Tc(檢查點(diǎn))Tf(系統(tǒng)故障)UNDOUNDO
REDO
REDOT2T3T4T5不要REDOT11/8/202327第十章數(shù)據(jù)庫恢復(fù)技術(shù)10.5.3利用檢查點(diǎn)的恢復(fù)策略Tc(檢查點(diǎn))Tf利用檢查點(diǎn)的恢復(fù)步驟1.從重新開始文件中找到最后一個檢查點(diǎn)記錄在日志文件中的地址,由該地址在日志文件中找到最后一個檢查點(diǎn)記錄。2.由該檢查點(diǎn)記錄得到檢查點(diǎn)建立時刻所有正在執(zhí)行的事務(wù)清單ACTIVE-LIST建立兩個事務(wù)隊(duì)列UNDO-LISTREDO-LIST把ACTIVE-LIST暫時放入UNDO-LIST隊(duì)列,REDO隊(duì)列暫為空。1/8/202328第十章數(shù)據(jù)庫恢復(fù)技術(shù)利用檢查點(diǎn)的恢復(fù)步驟1.從重新開始文件中找到最后一個檢查利用檢查點(diǎn)的恢復(fù)策略(續(xù))3.從檢查點(diǎn)開始正向掃描日志文件,直到日志文件結(jié)束如有新開始的事務(wù)Ti,把Ti暫時放入UNDO-LIST隊(duì)列如有提交的事務(wù)Tj,把Tj從UNDO-LIST隊(duì)列移到REDO-LIST隊(duì)列4.對UNDO-LIST中的每個事務(wù)執(zhí)行UNDO操作對REDO-LIST中的每個事務(wù)執(zhí)行REDO操作1/8/202329第十章數(shù)據(jù)庫恢復(fù)技術(shù)利用檢查點(diǎn)的恢復(fù)策略(續(xù))3.從檢查點(diǎn)開始正向掃描日志文件,10.6數(shù)據(jù)庫鏡像介質(zhì)故障是對系統(tǒng)影響最為嚴(yán)重的一種故障,嚴(yán)重影響數(shù)據(jù)庫的可用性介質(zhì)故障恢復(fù)比較費(fèi)時為預(yù)防介質(zhì)故障,DBA必須周期性地轉(zhuǎn)儲數(shù)據(jù)庫提高數(shù)據(jù)庫可用性的解決方案數(shù)據(jù)庫鏡像(Mirror)1/8/202330第十章數(shù)據(jù)庫恢復(fù)技術(shù)10.6數(shù)據(jù)庫鏡像介質(zhì)故障是對系統(tǒng)影響最為嚴(yán)重的一種故障數(shù)據(jù)庫鏡像技術(shù)什么是數(shù)據(jù)庫鏡像數(shù)據(jù)庫鏡像即根據(jù)DBA的要求,DBMS自動把整個數(shù)據(jù)庫或其中的關(guān)鍵數(shù)據(jù)復(fù)制到另一個磁盤上,每當(dāng)主數(shù)據(jù)庫更新時,DBMS自動把更新后的數(shù)據(jù)復(fù)制過去,即DBMS自動保證鏡像數(shù)據(jù)與主數(shù)據(jù)庫的一致性。1/8/202331第十章數(shù)據(jù)庫恢復(fù)技術(shù)數(shù)據(jù)庫鏡像技術(shù)什么是數(shù)據(jù)庫鏡像1/7/202331第十章數(shù)據(jù)庫鏡像(續(xù))1/8/202332第十章數(shù)據(jù)庫恢復(fù)技術(shù)數(shù)據(jù)庫鏡像(續(xù))1/7/202332第十章數(shù)據(jù)庫恢復(fù)技術(shù)數(shù)據(jù)庫鏡像的用途出現(xiàn)介質(zhì)故障時可由鏡像磁盤繼續(xù)提供使用同時DBMS自動利用鏡像磁盤數(shù)據(jù)進(jìn)行數(shù)據(jù)庫的恢復(fù),不需要關(guān)閉系統(tǒng)和重裝數(shù)據(jù)庫副本1/8/202333第十章數(shù)據(jù)庫恢復(fù)技術(shù)數(shù)據(jù)庫鏡像的用途出現(xiàn)介質(zhì)故障時1/7/202333第十章數(shù)據(jù)庫鏡像存在的問題及解決辦法存在的問題頻繁地復(fù)制數(shù)據(jù)自然會降低系統(tǒng)運(yùn)行效率解決辦法只選擇對關(guān)鍵數(shù)據(jù)和日志文件鏡像,而不是對整個數(shù)據(jù)庫進(jìn)行鏡像1/8/202334第十章數(shù)據(jù)庫恢復(fù)技術(shù)數(shù)據(jù)庫鏡像存在的問題及解決辦法存在的問題1/7/202334設(shè)有四個事務(wù)T1、T2、T3、T4,它們的操作定義如下:在系統(tǒng)崩潰之前系統(tǒng)在日志中記錄了如下內(nèi)容:T1T2T3T4read_item(A)read_item(D)write_item(D)read_item(B)write_item(B)read_item(D)write_item(D)read_item(A)write_item(A)read_item(C)write_item(C)read_item(B)write_item(B)read_item(A)write_item(A)[begin_transaction,T1][read_item,T1,A][read_item,T1,D][write_item,T1,D,20][commit,T1][checkpoint][begin_transaction,T2][read_item,T2,B][write_item,T2,B,12][begin_transaction,T4][read_item,T4,B][write_item,T4,B,15]
[begin_transaction,T3][read_item,T3,A][write_item,T3,A,30][read_item,T4,A][write_item,T4,A,20][commit,T4][read_item,T2,D][write_item,T2,D,25]如果系統(tǒng)采用立即修改的恢復(fù)技術(shù)和檢查點(diǎn)機(jī)制,當(dāng)系統(tǒng)重啟后,哪些事務(wù)需要回退?哪些操作需要Redo?哪些操作需要Undo?是否會出現(xiàn)事務(wù)嵌套回退的情形?1/8/202335第十章數(shù)據(jù)庫恢復(fù)技術(shù)設(shè)有四個事務(wù)T1、T2、T3、T4,它們的操作定義如下:在系10.7SQLServer的恢復(fù)技術(shù)10.7.1備份數(shù)據(jù)庫10.7.2還原數(shù)據(jù)庫10.7.3備份和還原的策略1/8/202336第十章數(shù)據(jù)庫恢復(fù)技術(shù)10.7SQLServer的恢復(fù)技術(shù)10.7.110.7.1備份數(shù)據(jù)庫SQLServer數(shù)據(jù)備份的特點(diǎn)SQLServer數(shù)據(jù)庫備份的類型創(chuàng)建和管理備份設(shè)備備份數(shù)據(jù)庫1/8/202337第十章數(shù)據(jù)庫恢復(fù)技術(shù)10.7.1備份數(shù)據(jù)庫SQLServer數(shù)據(jù)備份一、SQLServer數(shù)據(jù)備份的特點(diǎn)SQLServer支持在線備份備份工作由數(shù)據(jù)庫管理員來完成1/8/202338第十章數(shù)據(jù)庫恢復(fù)技術(shù)一、SQLServer數(shù)據(jù)備份的特點(diǎn)SQLServe二、SQLServer數(shù)據(jù)庫備份的類型全數(shù)據(jù)庫備份事務(wù)日志備份增量備份(差異備份)文件和文件組備份1/8/202339第十章數(shù)據(jù)庫恢復(fù)技術(shù)二、SQLServer數(shù)據(jù)庫備份的類型全數(shù)據(jù)庫備份1三、創(chuàng)建和管理備份設(shè)備備份設(shè)備是SQLServer用來存儲數(shù)據(jù)庫、事務(wù)日志或文件和文件組備份的存儲介質(zhì)。備份設(shè)備可以是本地機(jī)器上的磁盤文件、遠(yuǎn)端服務(wù)器上的磁盤文件、磁帶以及命名管道。創(chuàng)建一個備份設(shè)備時,要給它一個邏輯名稱和一個物理名稱。例如:設(shè)備類型邏輯名稱物理名稱本地磁盤DB_BACKUP_DISKD:\BACKUPS\DBBACKUP01.BAK網(wǎng)絡(luò)磁盤TL_BACKUP_SQLBACK\\SQLBACK\BACKUPS\TLBACKUP.BAK磁帶TAPE_BACKUP\\.\TAPE0命名管道NP_BACKUP\\SQLBACK\PIPE\SQL\BACKUP1/8/202340第十章數(shù)據(jù)庫恢復(fù)技術(shù)三、創(chuàng)建和管理備份設(shè)備備份設(shè)備是SQLServer用來存創(chuàng)建備份設(shè)備使用企業(yè)管理器使用系統(tǒng)存儲過程sp_addumpdevice
sp_addumpdevice[@devtype=]'device_type',[@logicalname=]'logical_name',[@physicalname=]'physical_name'[,{[@cntrltype=]controller_type|[@devstatus=]'device_status'}]創(chuàng)建備份設(shè)備時,返回0表示創(chuàng)建成功,返回1表示創(chuàng)建失敗。
disk、pipe、tape1/8/202341第十章數(shù)據(jù)庫恢復(fù)技術(shù)創(chuàng)建備份設(shè)備使用企業(yè)管理器disk、pipe、tape1/示例例1:創(chuàng)建一個磁盤備份設(shè)備:EXECsp_addumpdevice 'disk','student_full','d:\xcm\student.bak'例2:創(chuàng)建一個磁帶備份設(shè)備:EXECsp_addumpdevice'tape','tapedump1','\\.\tape0'1/8/202342第十章數(shù)據(jù)庫恢復(fù)技術(shù)示例例1:創(chuàng)建一個磁盤備份設(shè)備:1/7/202342第十章管理備份設(shè)備列出備份設(shè)備使用企業(yè)管理器使用sp_helpdevice系統(tǒng)存儲過程刪除一個備份設(shè)備使用企業(yè)管理器使用SP_DROPDEVICE系統(tǒng)存儲過程SP_dropdevicelogicalname[,DELFILE]1/8/202343第十章數(shù)據(jù)庫恢復(fù)技術(shù)管理備份設(shè)備列出備份設(shè)備1/7/202343第十章數(shù)據(jù)庫四、備份數(shù)據(jù)庫備份的內(nèi)容master數(shù)據(jù)庫msdb數(shù)據(jù)庫model數(shù)據(jù)庫distribution數(shù)據(jù)庫所有的用戶數(shù)據(jù)庫使用企業(yè)管理器來備份數(shù)據(jù)庫數(shù)據(jù)庫所有任務(wù)備份數(shù)據(jù)庫使用備份語句BACKUP來備份數(shù)據(jù)庫1/8/202344第十章數(shù)據(jù)庫恢復(fù)技術(shù)四、備份數(shù)據(jù)庫備份的內(nèi)容1/7/202344第十章數(shù)據(jù)使用BACKUP來備份數(shù)據(jù)庫完全備份BACKUP
DATABASE
studentTO
student_full
WITHINIT
增量備份(差異備份)BACKUP
DATABASE
studentTO
DISK=‘d:\xm\student_diff.bak'
WITHNOINIT,DIFFERENTIAL
日志備份BACKUP
LOG
studentTO
student_log
WITHNOINIT
文件和文件組備份BACKUPDATABASEstudent
FILE=stu2TO
student_file
1/8/202345第十章數(shù)據(jù)庫恢復(fù)技術(shù)使用BACKUP來備份數(shù)據(jù)庫完全備份1/7/202345第十10.7.2還原數(shù)據(jù)庫使用企業(yè)管理器還原數(shù)據(jù)庫使用RESTORE命令還原數(shù)據(jù)庫還原整個數(shù)據(jù)庫還原差異備份還原日志備份還原文件和文件組1/8/202346第十章數(shù)據(jù)庫恢復(fù)技術(shù)10.7.2還原數(shù)據(jù)庫使用企業(yè)管理器還原數(shù)據(jù)庫1/7/使用RESTORE命令還原數(shù)據(jù)庫還原整個數(shù)據(jù)庫RESTORE
DATABASE
studentFROM
student_full
還原差異備份RESTORE
DATABASE
studentFROM
student_differ
WITHNORECOVERY
還原日志備份RESTORE
LOG
studentFROM
student_log
WITHRECOVERY
1/8/202347第十章數(shù)據(jù)庫恢復(fù)技術(shù)使用RESTORE命令還原數(shù)據(jù)庫還原整個數(shù)據(jù)庫1/7/20還原文件和文件組library數(shù)據(jù)庫創(chuàng)建在lib1、lib2和lib3文件上。Lib2備份在lib2bk備份文件上。該數(shù)據(jù)庫的日志備份在liblog備份設(shè)備上,現(xiàn)在lib2數(shù)據(jù)文件壞了,可以通過下述命令將它恢復(fù): RESTORE
DATABASE
library
FILE
=lib2 FROM
lib2bk
WITHNORECOVERY
GO RESTORE
LOG
library FROM
liblog
WITHRECOVERY1/8/202348第十章數(shù)據(jù)庫恢復(fù)技術(shù)還原文件和文件組library數(shù)據(jù)庫創(chuàng)建在lib1、lib210.7.3備份和還原的策略還原模型備份類型全數(shù)據(jù)庫數(shù)據(jù)庫差異事務(wù)日志文件或文件差異簡單必需可選不允許不允許完全必需可選必需可選大容量日志記錄必需可選必需可選1/8/202349第十章數(shù)據(jù)庫恢復(fù)技術(shù)10.7.3備份和還原的策略還原模型備份類型全數(shù)據(jù)庫數(shù)1.你備份SQLServer數(shù)據(jù)的理由有哪些?A.崩潰恢復(fù)。 C.將數(shù)據(jù)從一種處理器結(jié)構(gòu)轉(zhuǎn)移到另一種。B.數(shù)據(jù)的歷史檔案。D.將數(shù)據(jù)從一個服務(wù)器轉(zhuǎn)移到另一個。2.建立備份并且從中恢復(fù)的備份設(shè)備類型有哪些?A.磁帶設(shè)備 B.空設(shè)備C.命名管理設(shè)備D.本地磁盤設(shè)備3.SQLServer備份是動態(tài)備份,對于一名系統(tǒng)管理員,這意味著什么?A.你不必計(jì)劃備份工作;SQLServer會自動地為你完成。B.當(dāng)用戶使用數(shù)據(jù)庫的時候,你可以備份它,只不過性能上有點(diǎn)影響。C.備份和恢復(fù)過程會在必要的時候發(fā)生,而無需用戶干預(yù)。D.動態(tài)備份是事務(wù)日志過程,并且這個過程是不斷地運(yùn)行的。思考題1/8/202350第十章數(shù)據(jù)庫恢復(fù)技術(shù)1.你備份SQLServer數(shù)據(jù)的理由有哪些?思考題1/4.假設(shè)你是一個包含著聯(lián)機(jī)事務(wù)處理數(shù)據(jù)庫的SQLServer的管理員。數(shù)據(jù)庫每天24小時運(yùn)轉(zhuǎn)。將全部數(shù)據(jù)庫備份到磁帶大約要花費(fèi)4個小時;事務(wù)日志備份到磁帶大約需20分鐘。主要目的:建立數(shù)據(jù)庫備份結(jié)構(gòu),允許1小時的數(shù)據(jù)損失。次要目的:允許數(shù)據(jù)庫在一定的情況下及時被恢復(fù),允許用戶在高峰使用期間以一種有效的方式繼續(xù)工作。請問,下列哪種建議方案可達(dá)到主要目的和次要目的。A.每天執(zhí)行4次數(shù)據(jù)庫的完全備份。B.非高峰使用的小時內(nèi)執(zhí)行數(shù)據(jù)庫的完全備份,每小時進(jìn)行一次把事務(wù)日志備份到磁帶的操作。C.非高峰使用的小時內(nèi)執(zhí)行數(shù)據(jù)庫的完全備份。每小時進(jìn)行一次把事務(wù)日志備份到磁盤的操作。1/8/202351第十章數(shù)據(jù)庫恢復(fù)技術(shù)4.假設(shè)你是一個包含著聯(lián)機(jī)事務(wù)處理數(shù)據(jù)庫的SQLSer5、SQLServer現(xiàn)在有三種方法備份數(shù)據(jù)庫中的數(shù)據(jù),分別是【】備份、【】備份和【】備份。6、下列哪項(xiàng)不是你應(yīng)該定期維護(hù)的SQLServer數(shù)據(jù)庫備份? ①msdb ②master ③distribtion ④Tempdb7、下列哪條命令是對library數(shù)據(jù)庫進(jìn)行增量備份。 ①BACKUPDATABASElibrarytoNw1WITHINIT ②BACKUPDATABASElibraryFILE=lib2TOlibrarybk ③BACKUPLOGlibraryTOnwlogWITHNOINIT ④BACKUPDATABASElibraryTODISK= 'e:\xcm\nwdiff.bak'WITHNOINIT,DIFFERENTIAL1/8/202352第十章數(shù)據(jù)庫恢復(fù)技術(shù)5、SQLServer現(xiàn)在有三種方法備份數(shù)據(jù)庫中的數(shù)據(jù),分第十章數(shù)據(jù)庫恢復(fù)技術(shù)10.1事務(wù)的基本概念10.2數(shù)據(jù)庫恢復(fù)概述10.3恢復(fù)的實(shí)現(xiàn)10.4恢復(fù)策略10.5具有檢查點(diǎn)的恢復(fù)技術(shù)10.6數(shù)據(jù)庫鏡像10.7SQLServer的恢復(fù)技術(shù)1/8/202353第十章數(shù)據(jù)庫恢復(fù)技術(shù)第十章數(shù)據(jù)庫恢復(fù)技術(shù)10.1事務(wù)的基本概念1/7/10.1事務(wù)的基本概念什么是事務(wù)?事務(wù)的基本操作與狀態(tài)系統(tǒng)賦予事務(wù)的特性1/8/202354第十章數(shù)據(jù)庫恢復(fù)技術(shù)10.1事務(wù)的基本概念什么是事務(wù)?1/7/20232第10.1.1什么是事務(wù)?典型事務(wù),如銀行轉(zhuǎn)帳:帳戶A–10000元;帳戶B+10000元。Read(A);A:=A-10000;Write(A);Read(B);B:=B+10000;Write(B);begintransaction;Read(A);A:=A-10000;Write(A);Read(B);B:=B+10000;Write(B);committransaction;1、定義為了完成某個任務(wù)所執(zhí)行的一個數(shù)據(jù)庫讀、寫操作序列。2、顯式定義方式
BEGINTRANSACTIONSQL語句1SQL語句2。。。。。
COMMIT(或ROLLBACK)3、隱式方式當(dāng)用戶沒有顯式地定義事務(wù)時,DBMS按缺省規(guī)定自動劃分事務(wù)。1/8/202355第十章數(shù)據(jù)庫恢復(fù)技術(shù)10.1.1什么是事務(wù)?典型事務(wù),如銀行轉(zhuǎn)帳:Read(10.1.2事務(wù)的基本操作與狀態(tài)1)事務(wù)開始(begintransaction):開始執(zhí)行。2)事務(wù)讀寫(read/write):進(jìn)行數(shù)據(jù)庫操作。3)事務(wù)結(jié)束(endtransaction):完成所有操作。4)事務(wù)交付(commit):完成所有操作,并保存所有結(jié)果。5)事務(wù)撤消(rollback):執(zhí)行途中出現(xiàn)異常,系統(tǒng)或用戶撤消事務(wù)?;钴S部分交付交付撤消終止事務(wù)開始事務(wù)結(jié)束交付撤消讀寫操作事務(wù)的起點(diǎn)事務(wù)的終點(diǎn)1/8/202356第十章數(shù)據(jù)庫恢復(fù)技術(shù)10.1.2事務(wù)的基本操作與狀態(tài)1)事務(wù)開始(begin10.1.3系統(tǒng)賦予事務(wù)的特性(ACID)為了保證事務(wù)并發(fā)、有效、正確地執(zhí)行,保證數(shù)據(jù)庫的正確性,系統(tǒng)必須賦予事務(wù)一些特性。1)原子性(Atomicity):最基本特性 事務(wù)的所有操作要么全部完成,要么均不執(zhí)行。原子性在于保證正確性。由DBMS的恢復(fù)子系統(tǒng)來保證原子性。2)一致性(Consistency):事務(wù)必須將數(shù)據(jù)庫從一種一致狀態(tài)轉(zhuǎn)換為另一種一致狀態(tài)。由DBMS和程序開發(fā)者共同保證數(shù)據(jù)庫的一致性。3)隔離性(Isolation):任何事務(wù)不能訪問到其他未交付事務(wù)的中間結(jié)果。由DBMS的并發(fā)控制子系統(tǒng)來保證事務(wù)的隔離性。4)持久性(Durability):保證已交付事務(wù)的結(jié)果不丟失,且與以后的故障無關(guān)。由DBMS的恢復(fù)子系統(tǒng)負(fù)責(zé)確保事務(wù)的持久性。1/8/202357第十章數(shù)據(jù)庫恢復(fù)技術(shù)10.1.3系統(tǒng)賦予事務(wù)的特性(ACID)為了10.2數(shù)據(jù)庫恢復(fù)概述1、引入“恢復(fù)”技術(shù)的原因事務(wù)故障、系統(tǒng)故障、介質(zhì)故障計(jì)算機(jī)病毒2、恢復(fù)的基本原理冗余3、恢復(fù)的含義所謂數(shù)據(jù)庫的恢復(fù)就是利用存儲在系統(tǒng)其他地方的冗余數(shù)據(jù)來修復(fù)數(shù)據(jù)庫中被破壞的或不正確的數(shù)據(jù),使數(shù)據(jù)庫從錯誤狀態(tài)恢復(fù)到某一已知的正確狀態(tài)。(1)數(shù)據(jù)庫本身被破壞(2)數(shù)據(jù)庫沒有被破壞,但數(shù)據(jù)可能不正確1/8/202358第十章數(shù)據(jù)庫恢復(fù)技術(shù)10.2數(shù)據(jù)庫恢復(fù)概述1、引入“恢復(fù)”技術(shù)的原因(1)10.3恢復(fù)的實(shí)現(xiàn)技術(shù)恢復(fù)機(jī)制涉及的兩個關(guān)鍵問題:如何建立冗余數(shù)據(jù)如何利用冗余數(shù)據(jù)實(shí)施數(shù)據(jù)庫恢復(fù)數(shù)據(jù)轉(zhuǎn)儲登記日志文件不同故障的恢復(fù)策略有所不同1/8/202359第十章數(shù)據(jù)庫恢復(fù)技術(shù)10.3恢復(fù)的實(shí)現(xiàn)技術(shù)恢復(fù)機(jī)制涉及的兩個關(guān)鍵問題:數(shù)據(jù)轉(zhuǎn)10.3.1數(shù)據(jù)轉(zhuǎn)儲1、含義DBA定期地將整個數(shù)據(jù)庫復(fù)制到磁帶或另一個磁盤上形成后備副本保存起來的過程。2、利用轉(zhuǎn)儲方法進(jìn)行恢復(fù)的過程3、轉(zhuǎn)儲狀態(tài)靜態(tài)轉(zhuǎn)儲動態(tài)轉(zhuǎn)儲4、轉(zhuǎn)儲方式海量轉(zhuǎn)儲增量轉(zhuǎn)儲
TaTbTf正常運(yùn)行轉(zhuǎn)儲運(yùn)行事務(wù)故障發(fā)生點(diǎn)重裝后備副本重新運(yùn)行事務(wù)恢復(fù)1/8/202360第十章數(shù)據(jù)庫恢復(fù)技術(shù)10.3.1數(shù)據(jù)轉(zhuǎn)儲1、含義TaTbTf正常運(yùn)行轉(zhuǎn)儲運(yùn)行10.3.2登記日志文件日志文件的格式和內(nèi)容日志文件的作用登記日志文件1/8/202361第十章數(shù)據(jù)庫恢復(fù)技術(shù)10.3.2登記日志文件日志文件的格式和內(nèi)容1/7/一、日志文件的格式和內(nèi)容什么是日志文件日志文件(log)是用來記錄事務(wù)對數(shù)據(jù)庫的更新操作的文件。日志文件的格式以記錄為單位的日志文件以數(shù)據(jù)塊為單位的日志文件1/8/202362第十章數(shù)據(jù)庫恢復(fù)技術(shù)一、日志文件的格式和內(nèi)容什么是日志文件1/7/202310第日志文件的格式和內(nèi)容(續(xù))以記錄為單位的日志文件內(nèi)容各個事務(wù)的開始標(biāo)記(BEGINTRANSACTION)各個事務(wù)的結(jié)束標(biāo)記(COMMIT或ROLLBACK)各個事務(wù)的所有更新操作以上均作為日志文件中的一個日志記錄(logrecord)每條日志記錄的內(nèi)容事務(wù)標(biāo)識(標(biāo)明是哪個事務(wù))操作類型(插入、刪除或修改)操作對象(記錄內(nèi)部標(biāo)識)更新前數(shù)據(jù)的舊值(對插入操作而言,此項(xiàng)為空值)更新后數(shù)據(jù)的新值(對刪除操作而言,此項(xiàng)為空值)1/8/202363第十章數(shù)據(jù)庫恢復(fù)技術(shù)日志文件的格式和內(nèi)容(續(xù))以記錄為單位的日志文件內(nèi)容1/7/日志文件的格式和內(nèi)容(續(xù))以數(shù)據(jù)塊為單位的日志文件,每條日志記錄的內(nèi)容事務(wù)標(biāo)識(標(biāo)明是那個事務(wù))被更新的數(shù)據(jù)塊1/8/202364第十章數(shù)據(jù)庫恢復(fù)技術(shù)日志文件的格式和內(nèi)容(續(xù))以數(shù)據(jù)塊為單位的日志文件,每條日志二、日志文件的作用進(jìn)行事務(wù)故障恢復(fù)進(jìn)行系統(tǒng)故障恢復(fù)協(xié)助后備副本進(jìn)行介質(zhì)故障恢復(fù)1/8/202365第十章數(shù)據(jù)庫恢復(fù)技術(shù)二、日志文件的作用進(jìn)行事務(wù)故障恢復(fù)1/7/202313第利用靜態(tài)轉(zhuǎn)儲副本和日志文件進(jìn)行恢復(fù)TaTbTf正常運(yùn)行轉(zhuǎn)儲運(yùn)行事務(wù)故障發(fā)生點(diǎn)登記日志文件重裝后備副本利用日志文件恢復(fù)事務(wù)恢復(fù)登記日志文件繼續(xù)運(yùn)行1/8/202366第十章數(shù)據(jù)庫恢復(fù)技術(shù)利用靜態(tài)轉(zhuǎn)儲副本和日志文件進(jìn)行恢復(fù)TaTbTf正常運(yùn)行轉(zhuǎn)儲運(yùn)三、登記日志文件基本原則登記的次序嚴(yán)格按并行事務(wù)執(zhí)行的時間次序必須先寫日志文件,后寫數(shù)據(jù)庫寫日志文件操作:把表示這個修改的日志記錄寫到日志文件寫數(shù)據(jù)庫操作:把對數(shù)據(jù)的修改寫到數(shù)據(jù)庫中1/8/202367第十章數(shù)據(jù)庫恢復(fù)技術(shù)三、登記日志文件基本原則1/7/202315第十章數(shù)據(jù)庫10.4恢復(fù)策略事務(wù)分類基本的恢復(fù)操作不同故障的恢復(fù)策略1/8/202368第十章數(shù)據(jù)庫恢復(fù)技術(shù)10.4恢復(fù)策略事務(wù)分類1/7/202316第十章數(shù)10.4.1事務(wù)分類圓滿事務(wù)指日志文件中記錄了事務(wù)的commit標(biāo)識,說明日志中已經(jīng)完整地記錄下事務(wù)所有的更新活動。夭折事務(wù)指日志文件中只有事務(wù)的開始標(biāo)識,而無commit標(biāo)識,說明對事務(wù)更新活動的記錄是不完整的,無法根據(jù)日志來重現(xiàn)事務(wù)。為保證事務(wù)的原子性,應(yīng)該撤銷這樣的事務(wù)。1/8/202369第十章數(shù)據(jù)庫恢復(fù)技術(shù)10.4.1事務(wù)分類圓滿事務(wù)1/7/202317第十章10.4.2基本的恢復(fù)操作:Redo和UndoRedo和Undo是針對事務(wù)的某一次更新操作。Redo是重新執(zhí)行這次操作。其處理的方法是,正向掃描日志文件,將日志記錄中“更新后的值”重新寫入數(shù)據(jù)庫。Undo是消除這次操作的影響,將事務(wù)執(zhí)行點(diǎn)回退到這次操作之前。其處理的方法是,反向掃描日志文件,將日志記錄中“更新前的值”重新寫入數(shù)據(jù)庫。在利用日志文件進(jìn)行恢復(fù)的過程中,對已結(jié)束的事務(wù)中的更新操作進(jìn)行Redo,對未結(jié)束的事務(wù)中的更新操作進(jìn)行Undo。1/8/202370第十章數(shù)據(jù)庫恢復(fù)技術(shù)10.4.2基本的恢復(fù)操作:Redo和UndoRedo和10.4.3不同故障的恢復(fù)策略事務(wù)故障的恢復(fù)系統(tǒng)故障的恢復(fù)介質(zhì)故障的恢復(fù)1/8/202371第十章數(shù)據(jù)庫恢復(fù)技術(shù)10.4.3不同故障的恢復(fù)策略事務(wù)故障的恢復(fù)1/7/思考題在SQL語言中,定義事務(wù)控制的語句主要有________、________和________。事務(wù)具有四個特性:它們是___、____、____和____。這個四個特性也簡稱為_____特性。_______和_______是數(shù)據(jù)庫恢復(fù)的基本技術(shù)。如何進(jìn)行事務(wù)故障的恢復(fù)?系統(tǒng)故障的恢復(fù)?介質(zhì)故障恢復(fù)?1/8/202372第十章數(shù)據(jù)庫恢復(fù)技術(shù)思考題在SQL語言中,定義事務(wù)控制的語句主要有_______10.5具有檢查點(diǎn)的恢復(fù)技術(shù)問題的提出檢查點(diǎn)技術(shù)利用檢查點(diǎn)的恢復(fù)策略1/8/202373第十章數(shù)據(jù)庫恢復(fù)技術(shù)10.5具有檢查點(diǎn)的恢復(fù)技術(shù)問題的提出1/7/20210.5.1問題的提出兩個問題搜索整個日志將耗費(fèi)大量的時間REDO處理:重新執(zhí)行,浪費(fèi)了大量時間1/8/202374第十章數(shù)據(jù)庫恢復(fù)技術(shù)10.5.1問題的提出兩個問題1/7/202322第十章解決方案具有檢查點(diǎn)(checkpoint)的恢復(fù)技術(shù)在日志文件中增加檢查點(diǎn)記錄(checkpoint)增加重新開始文件恢復(fù)子系統(tǒng)在登錄日志文件期間動態(tài)地維護(hù)日志1/8/202375第十章數(shù)據(jù)庫恢復(fù)技術(shù)解決方案具有檢查點(diǎn)(checkpoint)的恢復(fù)技術(shù)1/7/10.5.2檢查點(diǎn)技術(shù)檢查點(diǎn)記錄的內(nèi)容1.建立檢查點(diǎn)時刻所有正在執(zhí)行的事務(wù)清單2.這些事務(wù)最近一個日志記錄的地址重新開始文件的內(nèi)容記錄各個檢查點(diǎn)記錄在日志文件中的地址1/8/202376第十章數(shù)據(jù)庫恢復(fù)技術(shù)10.5.2檢查點(diǎn)技術(shù)檢查點(diǎn)記錄的內(nèi)容1/7/20232動態(tài)維護(hù)日志文件的方法動態(tài)維護(hù)日志文件的方法周期性地執(zhí)行如下操作:建立檢查點(diǎn),保存數(shù)據(jù)庫狀態(tài)。具體步驟是:1.將當(dāng)前日志緩沖區(qū)中的所有日志記錄寫入磁盤的日志文件上2.在日志文件中寫入一個檢查點(diǎn)記錄3.將當(dāng)前數(shù)據(jù)緩沖區(qū)的所有數(shù)據(jù)記錄寫入磁盤的數(shù)據(jù)庫中4.把檢查點(diǎn)記錄在日志文件中的地址寫入一個重新開始文件1/8/202377第十章數(shù)據(jù)庫恢復(fù)技術(shù)動態(tài)維護(hù)日志文件的方法動態(tài)維護(hù)日志文件的方法1/7/2023建立檢查點(diǎn)恢復(fù)子系統(tǒng)可以定期或不定期地建立檢查點(diǎn),保存數(shù)據(jù)庫狀態(tài)定期按照預(yù)定的一個時間間隔,如每隔一小時建立一個檢查點(diǎn)不定期按照某種規(guī)則,如日志文件已寫滿一半建立一個檢查點(diǎn)1/8/202378第十章數(shù)據(jù)庫恢復(fù)技術(shù)建立檢查點(diǎn)恢復(fù)子系統(tǒng)可以定期或不定期地建立檢查點(diǎn),保存數(shù)據(jù)庫10.5.3利用檢查點(diǎn)的恢復(fù)策略Tc(檢查點(diǎn))Tf(系統(tǒng)故障)UNDOUNDO
REDO
REDOT2T3T4T5不要REDOT11/8/202379第十章數(shù)據(jù)庫恢復(fù)技術(shù)10.5.3利用檢查點(diǎn)的恢復(fù)策略Tc(檢查點(diǎn))Tf利用檢查點(diǎn)的恢復(fù)步驟1.從重新開始文件中找到最后一個檢查點(diǎn)記錄在日志文件中的地址,由該地址在日志文件中找到最后一個檢查點(diǎn)記錄。2.由該檢查點(diǎn)記錄得到檢查點(diǎn)建立時刻所有正在執(zhí)行的事務(wù)清單ACTIVE-LIST建立兩個事務(wù)隊(duì)列UNDO-LISTREDO-LIST把ACTIVE-LIST暫時放入UNDO-LIST隊(duì)列,REDO隊(duì)列暫為空。1/8/202380第十章數(shù)據(jù)庫恢復(fù)技術(shù)利用檢查點(diǎn)的恢復(fù)步驟1.從重新開始文件中找到最后一個檢查利用檢查點(diǎn)的恢復(fù)策略(續(xù))3.從檢查點(diǎn)開始正向掃描日志文件,直到日志文件結(jié)束如有新開始的事務(wù)Ti,把Ti暫時放入UNDO-LIST隊(duì)列如有提交的事務(wù)Tj,把Tj從UNDO-LIST隊(duì)列移到REDO-LIST隊(duì)列4.對UNDO-LIST中的每個事務(wù)執(zhí)行UNDO操作對REDO-LIST中的每個事務(wù)執(zhí)行REDO操作1/8/202381第十章數(shù)據(jù)庫恢復(fù)技術(shù)利用檢查點(diǎn)的恢復(fù)策略(續(xù))3.從檢查點(diǎn)開始正向掃描日志文件,10.6數(shù)據(jù)庫鏡像介質(zhì)故障是對系統(tǒng)影響最為嚴(yán)重的一種故障,嚴(yán)重影響數(shù)據(jù)庫的可用性介質(zhì)故障恢復(fù)比較費(fèi)時為預(yù)防介質(zhì)故障,DBA必須周期性地轉(zhuǎn)儲數(shù)據(jù)庫提高數(shù)據(jù)庫可用性的解決方案數(shù)據(jù)庫鏡像(Mirror)1/8/202382第十章數(shù)據(jù)庫恢復(fù)技術(shù)10.6數(shù)據(jù)庫鏡像介質(zhì)故障是對系統(tǒng)影響最為嚴(yán)重的一種故障數(shù)據(jù)庫鏡像技術(shù)什么是數(shù)據(jù)庫鏡像數(shù)據(jù)庫鏡像即根據(jù)DBA的要求,DBMS自動把整個數(shù)據(jù)庫或其中的關(guān)鍵數(shù)據(jù)復(fù)制到另一個磁盤上,每當(dāng)主數(shù)據(jù)庫更新時,DBMS自動把更新后的數(shù)據(jù)復(fù)制過去,即DBMS自動保證鏡像數(shù)據(jù)與主數(shù)據(jù)庫的一致性。1/8/202383第十章數(shù)據(jù)庫恢復(fù)技術(shù)數(shù)據(jù)庫鏡像技術(shù)什么是數(shù)據(jù)庫鏡像1/7/202331第十章數(shù)據(jù)庫鏡像(續(xù))1/8/202384第十章數(shù)據(jù)庫恢復(fù)技術(shù)數(shù)據(jù)庫鏡像(續(xù))1/7/202332第十章數(shù)據(jù)庫恢復(fù)技術(shù)數(shù)據(jù)庫鏡像的用途出現(xiàn)介質(zhì)故障時可由鏡像磁盤繼續(xù)提供使用同時DBMS自動利用鏡像磁盤數(shù)據(jù)進(jìn)行數(shù)據(jù)庫的恢復(fù),不需要關(guān)閉系統(tǒng)和重裝數(shù)據(jù)庫副本1/8/202385第十章數(shù)據(jù)庫恢復(fù)技術(shù)數(shù)據(jù)庫鏡像的用途出現(xiàn)介質(zhì)故障時1/7/202333第十章數(shù)據(jù)庫鏡像存在的問題及解決辦法存在的問題頻繁地復(fù)制數(shù)據(jù)自然會降低系統(tǒng)運(yùn)行效率解決辦法只選擇對關(guān)鍵數(shù)據(jù)和日志文件鏡像,而不是對整個數(shù)據(jù)庫進(jìn)行鏡像1/8/202386第十章數(shù)據(jù)庫恢復(fù)技術(shù)數(shù)據(jù)庫鏡像存在的問題及解決辦法存在的問題1/7/202334設(shè)有四個事務(wù)T1、T2、T3、T4,它們的操作定義如下:在系統(tǒng)崩潰之前系統(tǒng)在日志中記錄了如下內(nèi)容:T1T2T3T4read_item(A)read_item(D)write_item(D)read_item(B)write_item(B)read_item(D)write_item(D)read_item(A)write_item(A)read_item(C)write_item(C)read_item(B)write_item(B)read_item(A)write_item(A)[begin_transaction,T1][read_item,T1,A][read_item,T1,D][write_item,T1,D,20][commit,T1][checkpoint][begin_transaction,T2][read_item,T2,B][write_item,T2,B,12][begin_transaction,T4][read_item,T4,B][write_item,T4,B,15]
[begin_transaction,T3][read_item,T3,A][write_item,T3,A,30][read_item,T4,A][write_item,T4,A,20][commit,T4][read_item,T2,D][write_item,T2,D,25]如果系統(tǒng)采用立即修改的恢復(fù)技術(shù)和檢查點(diǎn)機(jī)制,當(dāng)系統(tǒng)重啟后,哪些事務(wù)需要回退?哪些操作需要Redo?哪些操作需要Undo?是否會出現(xiàn)事務(wù)嵌套回退的情形?1/8/202387第十章數(shù)據(jù)庫恢復(fù)技術(shù)設(shè)有四個事務(wù)T1、T2、T3、T4,它們的操作定義如下:在系10.7SQLServer的恢復(fù)技術(shù)10.7.1備份數(shù)據(jù)庫10.7.2還原數(shù)據(jù)庫10.7.3備份和還原的策略1/8/202388第十章數(shù)據(jù)庫恢復(fù)技術(shù)10.7SQLServer的恢復(fù)技術(shù)10.7.110.7.1備份數(shù)據(jù)庫SQLServer數(shù)據(jù)備份的特點(diǎn)SQLServer數(shù)據(jù)庫備份的類型創(chuàng)建和管理備份設(shè)備備份數(shù)據(jù)庫1/8/202389第十章數(shù)據(jù)庫恢復(fù)技術(shù)10.7.1備份數(shù)據(jù)庫SQLServer數(shù)據(jù)備份一、SQLServer數(shù)據(jù)備份的特點(diǎn)SQLServer支持在線備份備份工作由數(shù)據(jù)庫管理員來完成1/8/202390第十章數(shù)據(jù)庫恢復(fù)技術(shù)一、SQLServer數(shù)據(jù)備份的特點(diǎn)SQLServe二、SQLServer數(shù)據(jù)庫備份的類型全數(shù)據(jù)庫備份事務(wù)日志備份增量備份(差異備份)文件和文件組備份1/8/202391第十章數(shù)據(jù)庫恢復(fù)技術(shù)二、SQLServer數(shù)據(jù)庫備份的類型全數(shù)據(jù)庫備份1三、創(chuàng)建和管理備份設(shè)備備份設(shè)備是SQLServer用來存儲數(shù)據(jù)庫、事務(wù)日志或文件和文件組備份的存儲介質(zhì)。備份設(shè)備可以是本地機(jī)器上的磁盤文件、遠(yuǎn)端服務(wù)器上的磁盤文件、磁帶以及命名管道。創(chuàng)建一個備份設(shè)備時,要給它一個邏輯名稱和一個物理名稱。例如:設(shè)備類型邏輯名稱物理名稱本地磁盤DB_BACKUP_DISKD:\BACKUPS\DBBACKUP01.BAK網(wǎng)絡(luò)磁盤TL_BACKUP_SQLBACK\\SQLBACK\BACKUPS\TLBACKUP.BAK磁帶TAPE_BACKUP\\.\TAPE0命名管道NP_BACKUP\\SQLBACK\PIPE\SQL\BACKUP1/8/202392第十章數(shù)據(jù)庫恢復(fù)技術(shù)三、創(chuàng)建和管理備份設(shè)備備份設(shè)備是SQLServer用來存創(chuàng)建備份設(shè)備使用企業(yè)管理器使用系統(tǒng)存儲過程sp_addumpdevice
sp_addumpdevice[@devtype=]'device_type',[@logicalname=]'logical_name',[@physicalname=]'physical_name'[,{[@cntrltype=]controller_type|[@devstatus=]'device_status'}]創(chuàng)建備份設(shè)備時,返回0表示創(chuàng)建成功,返回1表示創(chuàng)建失敗。
disk、pipe、tape1/8/202393第十章數(shù)據(jù)庫恢復(fù)技術(shù)創(chuàng)建備份設(shè)備使用企業(yè)管理器disk、pipe、tape1/示例例1:創(chuàng)建一個磁盤備份設(shè)備:EXECsp_addumpdevice 'disk','student_full','d:\xcm\student.bak'例2:創(chuàng)建一個磁帶備份設(shè)備:EXECsp_addumpdevice'tape','tapedump1','\\.\tape0'1/8/202394第十章數(shù)據(jù)庫恢復(fù)技術(shù)示例例1:創(chuàng)建一個磁盤備份設(shè)備:1/7/202342第十章管理備份設(shè)備列出備份設(shè)備使用企業(yè)管理器使用sp_helpdevice系統(tǒng)存儲過程刪除一個備份設(shè)備使用企業(yè)管理器使用SP_DROPDEVICE系統(tǒng)存儲過程SP_dropdevicelogicalname[,DELFILE]1/8/202395第十章數(shù)據(jù)庫恢復(fù)技術(shù)管理備份設(shè)備列出備份設(shè)備1/7/202343第十章數(shù)據(jù)庫四、備份數(shù)據(jù)庫備份的內(nèi)容master數(shù)據(jù)庫msdb數(shù)據(jù)庫model數(shù)據(jù)庫distribution數(shù)據(jù)庫所有的用戶數(shù)據(jù)庫使用企業(yè)管理器來備份數(shù)據(jù)庫數(shù)據(jù)庫所有任務(wù)備份數(shù)據(jù)庫使用備份語句BACKUP來備份數(shù)據(jù)庫1/8/202396第十章數(shù)據(jù)庫恢復(fù)技術(shù)四、備份數(shù)據(jù)庫備份的內(nèi)容1/7/202344第十章數(shù)據(jù)使用BACKUP來備份數(shù)據(jù)庫完全備份BACKUP
DATABASE
studentTO
student_full
WITHINIT
增量備份(差異備份)BACKUP
DATABASE
studentTO
DISK=‘d:\xm\student_diff.bak'
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030浙江省跨境電商市場供需結(jié)構(gòu)特征分析及投資策略布局規(guī)劃評估報告
- 2025-2030洗衣機(jī)用戶畫像及精準(zhǔn)營銷策略研究報告
- 2025-2030汽車駕駛培訓(xùn)行業(yè)市場深度調(diào)研及發(fā)展趨勢和投資前景預(yù)測研究報告
- 幼兒園游戲活動設(shè)計(jì)方案
- 助產(chǎn)專業(yè)資格認(rèn)證培訓(xùn)資料試題
- 快消品市場調(diào)研方案與數(shù)據(jù)分析
- 零售行業(yè)銷售技巧培訓(xùn)講義
- 醫(yī)學(xué)影像技術(shù)崗位技能培訓(xùn)教材
- 2026內(nèi)蒙古鄂爾多斯市東勝區(qū)第八小學(xué)語文教師招聘備考題庫及參考答案詳解一套
- 2026吉林通化市通化縣消防救援大隊(duì)招聘3人備考題庫有完整答案詳解
- 北師大版八年級數(shù)學(xué)下冊課件【全冊】
- 關(guān)于提高護(hù)士輸液時PDA的掃描率的品管圈PPT
- GB/T 30564-2023無損檢測無損檢測人員培訓(xùn)機(jī)構(gòu)
- 中華人民共和國汽車行業(yè)標(biāo)準(zhǔn)汽車油漆涂層QC-T484-1999
- XGDT-06型脈動真空滅菌柜4#性能確認(rèn)方案
- GB/T 96.2-2002大墊圈C級
- 第九章-第一節(jié)-美洲概述
- GB/T 13004-2016鋼質(zhì)無縫氣瓶定期檢驗(yàn)與評定
- GB/T 12060.5-2011聲系統(tǒng)設(shè)備第5部分:揚(yáng)聲器主要性能測試方法
- GB/T 11945-2019蒸壓灰砂實(shí)心磚和實(shí)心砌塊
- 下肢深靜脈血栓形成的診斷和治療課件
評論
0/150
提交評論