數(shù)據(jù)庫系統(tǒng)概論(八)課件
,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,第十章 數(shù)據(jù)庫恢復(fù)技術(shù),*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,第十章 數(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.7 SQL Server 的恢復(fù)技術(shù),12/13/2024,1,第十章 數(shù)據(jù)庫恢復(fù)技術(shù),第十章 數(shù)據(jù)庫恢復(fù)技術(shù) 10.1 事務(wù)的基本概念9/16,10.1 事務(wù)的基本概念,什么是事務(wù)?,事務(wù)的基本操作與狀態(tài),系統(tǒng)賦予事務(wù)的特性,12/13/2024,2,第十章 數(shù)據(jù)庫恢復(fù)技術(shù),10.1 事務(wù)的基本概念 什么是事務(wù)?9/16/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);,begin transaction;,Read(A);,A:=A-10000;,Write(A);,Read(B);,B:=B+10000;,Write(B);,commit transaction;,1、定義,為了完成某個任務(wù)所執(zhí)行的一個數(shù)據(jù)庫讀、寫操作序列。,2、顯式定義方式,,BEGIN TRANSACTION,SQL 語句1,SQL 語句2,。。。。。,,COMMIT ( 或 ROLLBACK),3、隱式方式,當(dāng)用戶沒有顯式地定義事務(wù)時,,DBMS按缺省規(guī)定自動劃分事務(wù)。,12/13/2024,3,第十章 數(shù)據(jù)庫恢復(fù)技術(shù),10.1.1 什么是事務(wù)?典型事務(wù),如銀行轉(zhuǎn)帳:Read(,10.1.2 事務(wù)的基本操作與狀態(tài),1)事務(wù)開始(begin transaction):開始執(zhí)行。,2)事務(wù)讀寫(read / write) :進(jìn)行數(shù)據(jù)庫操作。,3)事務(wù)結(jié)束(end transaction):完成所有操作。,4),事務(wù)交付(commit),:完成所有操作,并保存所有結(jié)果。,5),事務(wù)撤消(rollback),:執(zhí)行途中出現(xiàn)異常,系統(tǒng)或用戶撤消事務(wù)。,活躍,部分交付,交付,撤消,終止,事務(wù)開始,事務(wù)結(jié)束,交付,撤消,讀寫操作,事務(wù)的起點(diǎn),事務(wù)的終點(diǎn),12/13/2024,4,第十章 數(shù)據(jù)庫恢復(fù)技術(shù),10.1.2 事務(wù)的基本操作與狀態(tài)1)事務(wù)開始(begin,10.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ù)的持久性。,12/13/2024,5,第十章 數(shù)據(jù)庫恢復(fù)技術(shù),10.1.3 系統(tǒng)賦予事務(wù)的特性(ACID) 為了,10.2 數(shù)據(jù)庫恢復(fù)概述,1、引入“恢復(fù)”技術(shù)的原因,事務(wù)故障、系統(tǒng)故障、介質(zhì)故障,計算機(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ù)可能不正確,,12/13/2024,6,第十章 數(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ù)策略有所不同,12/13/2024,7,第十章 數(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)儲,Ta,Tb,Tf,正常運(yùn)行,轉(zhuǎn)儲,運(yùn)行事務(wù),故障發(fā)生點(diǎn),重裝后備副本,重新運(yùn)行事務(wù),恢復(fù),12/13/2024,8,第十章 數(shù)據(jù)庫恢復(fù)技術(shù),10.3.1 數(shù)據(jù)轉(zhuǎn)儲1、含義TaTbTf正常運(yùn)行轉(zhuǎn)儲運(yùn)行,10.3.2 登記日志文件,日志文件的格式和內(nèi)容,日志文件的作用,登記日志文件,12/13/2024,9,第十章 數(shù)據(jù)庫恢復(fù)技術(shù),10.3.2 登記日志文件 日志文件的格式和內(nèi)容9/16,一、日志文件的格式和內(nèi)容,什么是日志文件,日志文件(log)是用來記錄事務(wù)對數(shù)據(jù)庫的,更新操作,的文件。,日志文件的格式,以,記錄,為單位的日志文件,以,數(shù)據(jù)塊,為單位的日志文件,12/13/2024,10,第十章 數(shù)據(jù)庫恢復(fù)技術(shù),一、日志文件的格式和內(nèi)容什么是日志文件9/16/202310,日志文件的格式和內(nèi)容(續(xù)),以記錄為單位的日志文件內(nèi)容,各個事務(wù)的開始標(biāo)記(BEGIN TRANSACTION),各個事務(wù)的結(jié)束標(biāo)記(COMMIT或ROLLBACK),各個事務(wù)的所有更新操作,以上均作為日志文件中的一個,日志記錄 (log record),每條,日志記錄,的內(nèi)容,事務(wù)標(biāo)識(標(biāo)明是哪個事務(wù)),操作類型(插入、刪除或修改),操作對象(記錄內(nèi)部標(biāo)識),更新前數(shù)據(jù)的舊值(對插入操作而言,此項(xiàng)為空值),更新后數(shù)據(jù)的新值(對刪除操作而言, 此項(xiàng)為空值),12/13/2024,11,第十章 數(shù)據(jù)庫恢復(fù)技術(shù),日志文件的格式和內(nèi)容(續(xù))以記錄為單位的日志文件內(nèi)容9/16,日志文件的格式和內(nèi)容(續(xù)),以數(shù)據(jù)塊為單位的日志文件,每條日志記錄的內(nèi)容,事務(wù)標(biāo)識(標(biāo)明是那個事務(wù)),被更新的數(shù)據(jù)塊,12/13/2024,12,第十章 數(shù)據(jù)庫恢復(fù)技術(shù),日志文件的格式和內(nèi)容(續(xù))以數(shù)據(jù)塊為單位的日志文件,每條日志,二、日志文件的作用,進(jìn)行事務(wù)故障恢復(fù),進(jìn)行系統(tǒng)故障恢復(fù),協(xié)助后備副本進(jìn)行介質(zhì)故障恢復(fù),12/13/2024,13,第十章 數(shù)據(jù)庫恢復(fù)技術(shù),二、日志文件的作用 進(jìn)行事務(wù)故障恢復(fù)9/16/202313,利用靜態(tài)轉(zhuǎn)儲副本和日志文件進(jìn)行恢復(fù),Ta,Tb,Tf,正常運(yùn)行,轉(zhuǎn)儲,運(yùn)行事務(wù),故障發(fā)生點(diǎn),登記日志文件,重裝后備副本,利用日志文件恢復(fù)事務(wù),恢復(fù),登記日志文件,繼續(xù)運(yùn)行,12/13/2024,14,第十章 數(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ù)庫中,12/13/2024,15,第十章 數(shù)據(jù)庫恢復(fù)技術(shù),三、登記日志文件基本原則9/16/202315第十章 數(shù)據(jù),10.4 恢復(fù)策略,事務(wù)分類,基本的恢復(fù)操作,不同故障的恢復(fù)策略,12/13/2024,16,第十章 數(shù)據(jù)庫恢復(fù)技術(shù),10.4 恢復(fù)策略事務(wù)分類9/16/202316第十章,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ù)。,12/13/2024,17,第十章 數(shù)據(jù)庫恢復(fù)技術(shù),10.4.1 事務(wù)分類圓滿事務(wù)9/16/202317第十章,10.4.2 基本的恢復(fù)操作:Redo和Undo,Redo,和,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。,12/13/2024,18,第十章 數(shù)據(jù)庫恢復(fù)技術(shù),10.4.2 基本的恢復(fù)操作:Redo和UndoRedo和,10.4.3 不同故障的恢復(fù)策略,事務(wù)故障的恢復(fù),系統(tǒng)故障的恢復(fù),介質(zhì)故障的恢復(fù),12/13/2024,19,第十章 數(shù)據(jù)庫恢復(fù)技術(shù),10.4.3 不同故障的恢復(fù)策略 事務(wù)故障的恢復(fù)9/16,思考題,在SQL語言中,定義事務(wù)控制的語句主要有________ 、________ 和 ________ 。,事務(wù)具有四個特性:它們是___ 、____ 、____ 和 ____ 。這個四個特性也簡稱為_____特性。,_______和_______是數(shù)據(jù)庫恢復(fù)的基本技術(shù)。,如何進(jìn)行事務(wù)故障的恢復(fù)?系統(tǒng)故障的恢復(fù)?介質(zhì)故障恢復(fù)?,12/13/2024,20,第十章 數(shù)據(jù)庫恢復(fù)技術(shù),思考題在SQL語言中,定義事務(wù)控制的語句主要有_______,10.5 具有檢查點(diǎn)的恢復(fù)技術(shù),問題的提出,檢查點(diǎn)技術(shù),利用檢查點(diǎn)的恢復(fù)策略,12/13/2024,21,第十章 數(shù)據(jù)庫恢復(fù)技術(shù),10.5 具有檢查點(diǎn)的恢復(fù)技術(shù) 問題的提出9/16/20,10.5.1 問題的提出,兩個問題,搜索整個日志將耗費(fèi)大量的時間,REDO處理:重新執(zhí)行,浪費(fèi)了大量時間,12/13/2024,22,第十章 數(shù)據(jù)庫恢復(fù)技術(shù),10.5.1 問題的提出兩個問題9/16/202322第十,解決方案,具有檢查點(diǎn)(checkpoint)的恢復(fù)技術(shù),在日志文件中增加,檢查點(diǎn)記錄,(checkpoint),增加,重新開始文件,恢復(fù)子系統(tǒng)在登錄日志文件期間,動態(tài)地維護(hù)日志,12/13/2024,23,第十章 數(shù)據(jù)庫恢復(fù)技術(shù),解決方案具有檢查點(diǎn)(checkpoint)的恢復(fù)技術(shù)9/16,10.5.2 檢查點(diǎn)技術(shù),檢查點(diǎn)記錄的內(nèi)容,1. 建立檢查點(diǎn)時刻所有正在執(zhí)行的事務(wù)清單,2. 這些事務(wù)最近一個日志記錄的地址,重新開始文件的內(nèi)容,記錄各個檢查點(diǎn)記錄在日志文件中的地址,12/13/2024,24,第十章 數(shù)據(jù)庫恢復(fù)技術(shù),10.5.2 檢查點(diǎn)技術(shù)檢查點(diǎn)記錄的內(nèi)容9/16/2023,動態(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)記錄在日志文件中的地址寫入一個重新開始文件,12/13/2024,25,第十章 數(shù)據(jù)庫恢復(fù)技術(shù),動態(tài)維護(hù)日志文件的方法動態(tài)維護(hù)日志文件的方法9/16/202,建立檢查點(diǎn),恢復(fù)子系統(tǒng)可以定期或不定期地建立檢查點(diǎn),保存數(shù)據(jù)庫狀態(tài),定期,按照預(yù)定的一個時間間隔,如每隔一小時建立一個檢查點(diǎn),不定期,按照某種規(guī)則,如日志文件已寫滿一半建立一個檢查點(diǎn),12/13/2024,26,第十章 數(shù)據(jù)庫恢復(fù)技術(shù),建立檢查點(diǎn)恢復(fù)子系統(tǒng)可以定期或不定期地建立檢查點(diǎn),保存數(shù)據(jù)庫,10.5.3 利用檢查點(diǎn)的恢復(fù)策略,,,,,,,,,,,T,c,(檢查點(diǎn)),T,f,(系統(tǒng)故障),UNDO,UNDO,,REDO,,REDO,T,2,T,3,T,4,,T,5,不要REDO,T,1,,,,12/13/2024,27,第十章 數(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-LIST,REDO-LIST,把ACTIVE-LIST暫時放入UNDO-LIST隊(duì)列,REDO隊(duì)列暫為空。,12/13/2024,28,第十章 數(shù)據(jù)庫恢復(fù)技術(shù),利用檢查點(diǎn)的恢復(fù)步驟 1.從重新開始文件中找到最后一個檢查,利用檢查點(diǎn)的恢復(fù)策略(續(xù)),3.從檢查點(diǎn)開始正向掃描日志文件,直到日志文件結(jié)束,如有新開始的事務(wù)T,i,,把T,i,暫時放入UNDO-LIST隊(duì)列,如有提交的事務(wù)T,j,,把T,j,從UNDO-LIST隊(duì)列移到REDO-LIST隊(duì)列,4.對UNDO-LIST中的每個事務(wù)執(zhí)行UNDO操作,對REDO-LIST中的每個事務(wù)執(zhí)行REDO操作,12/13/2024,29,第十章 數(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),12/13/2024,30,第十章 數(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ù)庫的一致性。,12/13/2024,31,第十章 數(shù)據(jù)庫恢復(fù)技術(shù),數(shù)據(jù)庫鏡像技術(shù)什么是數(shù)據(jù)庫鏡像9/16/202331第十章,數(shù)據(jù)庫鏡像(續(xù)),12/13/2024,32,第十章 數(shù)據(jù)庫恢復(fù)技術(shù),數(shù)據(jù)庫鏡像(續(xù))9/16/202332第十章 數(shù)據(jù)庫恢復(fù)技,數(shù)據(jù)庫鏡像的用途,出現(xiàn)介質(zhì)故障時,可由鏡像磁盤繼續(xù)提供使用,同時DBMS自動利用鏡像磁盤數(shù)據(jù)進(jìn)行數(shù)據(jù)庫的恢復(fù),不需要關(guān)閉系統(tǒng)和重裝數(shù)據(jù)庫副本,12/13/2024,33,第十章 數(shù)據(jù)庫恢復(fù)技術(shù),數(shù)據(jù)庫鏡像的用途出現(xiàn)介質(zhì)故障時9/16/202333第十章,數(shù)據(jù)庫鏡像存在的問題及解決辦法,存在的問題,頻繁地復(fù)制數(shù)據(jù)自然會降低系統(tǒng)運(yùn)行效率,解決辦法,只選擇對,關(guān)鍵數(shù)據(jù),和,日志文件,鏡像,而不是對整個數(shù)據(jù)庫進(jìn)行鏡像,12/13/2024,34,第十章 數(shù)據(jù)庫恢復(fù)技術(shù),數(shù)據(jù)庫鏡像存在的問題及解決辦法存在的問題9/16/20233,設(shè)有四個事務(wù)T1、T2、T3、T4,它們的操作定義如下:,在系統(tǒng)崩潰之前系統(tǒng)在日志中記錄了如下內(nèi)容:,T1,,T2,,T3,,T4,,read_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ù)嵌套回退的情形?,12/13/2024,35,第十章 數(shù)據(jù)庫恢復(fù)技術(shù),設(shè)有四個事務(wù)T1、T2、T3、T4,它們的操作定義如下:在系,10.7 SQL Server 的恢復(fù)技術(shù),10.7.1 備份數(shù)據(jù)庫,10.7.2 還原數(shù)據(jù)庫,10.7.3 備份和還原的策略,12/13/2024,36,第十章 數(shù)據(jù)庫恢復(fù)技術(shù),10.7 SQL Server 的恢復(fù)技術(shù) 10.7.1,10.7.1 備份數(shù)據(jù)庫,SQL Server數(shù)據(jù)備份的特點(diǎn),SQL Server數(shù)據(jù)庫備份的類型,創(chuàng)建和管理備份設(shè)備,備份數(shù)據(jù)庫,12/13/2024,37,第十章 數(shù)據(jù)庫恢復(fù)技術(shù),10.7.1 備份數(shù)據(jù)庫 SQL Server數(shù)據(jù)備份,一、SQL Server數(shù)據(jù)備份的特點(diǎn),SQL Server支持在線備份,備份工作由數(shù)據(jù)庫管理員來完成,12/13/2024,38,第十章 數(shù)據(jù)庫恢復(fù)技術(shù),一、SQL Server數(shù)據(jù)備份的特點(diǎn) SQL Serve,二、SQL Server數(shù)據(jù)庫備份的類型,全數(shù)據(jù)庫備份,事務(wù)日志備份,增量備份(差異備份),文件和文件組備份,12/13/2024,39,第十章 數(shù)據(jù)庫恢復(fù)技術(shù),二、SQL Server數(shù)據(jù)庫備份的類型 全數(shù)據(jù)庫備份 9,三、創(chuàng)建和管理備份設(shè)備,備份設(shè)備是SQL Server用來存儲數(shù)據(jù)庫、事務(wù)日志或文件和文件組備份的存儲介質(zhì)。,備份設(shè)備可以是本地機(jī)器上的磁盤文件、遠(yuǎn)端服務(wù)器上的磁盤文件、磁帶以及命名管道。,創(chuàng)建一個備份設(shè)備時,要給它一個邏輯名稱和一個物理名稱。例如:,設(shè)備類型 邏輯名稱 物理名稱,本地磁盤 DB_BACKUP_DISK D:\BACKUPS \DBBACKUP01.BAK,網(wǎng)絡(luò)磁盤 TL_BACKUP_SQLBACK \\SQLBACK\BACKUPS\TLBACKUP.BAK,磁帶 TAPE_BACKUP \\.\TAPE0,命名管道 NP_BACKUP \\SQLBACK\PIPE\SQL\BACKUP,12/13/2024,40,第十章 數(shù)據(jù)庫恢復(fù)技術(shù),三、創(chuàng)建和管理備份設(shè)備 備份設(shè)備是SQL Server用來存,創(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、tape,12/13/2024,41,第十章 數(shù)據(jù)庫恢復(fù)技術(shù),創(chuàng)建備份設(shè)備使用企業(yè)管理器 disk、pipe、tape9/,示例,例1:創(chuàng)建一個磁盤備份設(shè)備:,EXEC sp_addumpdevice,'disk', 'student_full', 'd:\xcm\student.bak',例2:創(chuàng)建一個磁帶備份設(shè)備:,EXEC sp_addumpdevice 'tape', 'tapedump1', '\\ .\tape0',12/13/2024,42,第十章 數(shù)據(jù)庫恢復(fù)技術(shù),示例例1:創(chuàng)建一個磁盤備份設(shè)備:9/16/202342第十章,管理備份設(shè)備,列出備份設(shè)備,使用企業(yè)管理器,使用sp_helpdevice系統(tǒng)存儲過程,,刪除一個備份設(shè)備,使用企業(yè)管理器,使用SP_DROPDEVICE系統(tǒng)存儲過程,SP_dropdevice logicalname[,DELFILE],12/13/2024,43,第十章 數(shù)據(jù)庫恢復(fù)技術(shù),管理備份設(shè)備列出備份設(shè)備9/16/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ù)庫,12/13/2024,44,第十章 數(shù)據(jù)庫恢復(fù)技術(shù),四、備份數(shù)據(jù)庫 備份的內(nèi)容9/16/202344第十章 數(shù),使用BACKUP來備份數(shù)據(jù)庫,完全備份,BACKUP,,DATABASE,,student TO,,student_full,,WITH INIT,,增量備份(差異備份),BACKUP,,DATABASE,,student TO,,,DISK = ‘d:\xm\student_diff.bak',,,WITH NOINIT, DIFFERENTIAL,,日志備份,BACKUP,,LOG,,student TO,,student_log,,WITH NOINIT,,文件和文件組備份,BACKUP DATABASE student,,FILE,=stu2 TO,,student_file,,12/13/2024,45,第十章 數(shù)據(jù)庫恢復(fù)技術(shù),使用BACKUP來備份數(shù)據(jù)庫完全備份9/16/202345第,10.7.2 還原數(shù)據(jù)庫,使用企業(yè)管理器還原數(shù)據(jù)庫,使用RESTORE命令還原數(shù)據(jù)庫,還原整個數(shù)據(jù)庫,還原差異備份,還原日志備份,還原文件和文件組,12/13/2024,46,第十章 數(shù)據(jù)庫恢復(fù)技術(shù),10.7.2 還原數(shù)據(jù)庫使用企業(yè)管理器還原數(shù)據(jù)庫 9/16,使用RESTORE命令還原數(shù)據(jù)庫,還原整個數(shù)據(jù)庫,RESTORE,,DATABASE,,student FROM,,student_full,,還原差異備份,RESTORE,,DATABASE,,student FROM,,student_differ,,WITH NORECOVERY,,還原日志備份,RESTORE,,LOG,,student FROM,,student_log,,WITH RECOVERY,,12/13/2024,47,第十章 數(shù)據(jù)庫恢復(fù)技術(shù),使用RESTORE命令還原數(shù)據(jù)庫還原整個數(shù)據(jù)庫 9/16/2,還原文件和文件組,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,,WITH NORECOVERY,,GO,RESTORE,,LOG,,library,FROM,,liblog,,WITH RECOVERY,12/13/2024,48,第十章 數(shù)據(jù)庫恢復(fù)技術(shù),還原文件和文件組library數(shù)據(jù)庫創(chuàng)建在lib1、lib2,10.7,.3 備份和還原的策略,還原模型,備份類型,,全數(shù)據(jù)庫,數(shù)據(jù)庫差異,事務(wù)日志,文件或文件差異,簡單,必需,可選,不允許,不允許,完全,必需,可選,必需,可選,大容量日志記錄,必需,可選,必需,可選,12/13/2024,49,第十章 數(shù)據(jù)庫恢復(fù)技術(shù),10.7.3 備份和還原的策略還原模型備份類型 全數(shù)據(jù)庫數(shù),1. 你備份SQL Server數(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. SQL Server 備份是動態(tài)備份,對于一名系統(tǒng)管理員,這意味著什么?,A. 你不必計劃備份工作; SQL Server 會自動地為你完成。,B. 當(dāng)用戶使用數(shù)據(jù)庫的時候,你可以備份它,只不過性能上有點(diǎn)影響。,C. 備份和恢復(fù)過程會在必要的時候發(fā)生,而無需用戶干預(yù)。,D. 動態(tài)備份是事務(wù)日志過程,并且這個過程是不斷地運(yùn)行的。,思考題,12/13/2024,50,第十章 數(shù)據(jù)庫恢復(fù)技術(shù),1. 你備份SQL Server數(shù)據(jù)的理由有哪些?思考題9/,4. 假設(shè)你是一個包含著聯(lián)機(jī)事務(wù)處理數(shù)據(jù)庫的SQL Server 的管理員。數(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ù)日志備份到磁盤的操作。,12/13/2024,51,第十章 數(shù)據(jù)庫恢復(fù)技術(shù),4. 假設(shè)你是一個包含著聯(lián)機(jī)事務(wù)處理數(shù)據(jù)庫的SQL Ser,5、SQL Server現(xiàn)在有三種方法備份數(shù)據(jù)庫中的數(shù)據(jù),分別是【 】備份、【 】備份和【 】備份。,6、下列哪項(xiàng)不是你應(yīng)該定期維護(hù)的SQL Server數(shù)據(jù)庫備份?,① msdb ② master ③ distribtion ④ Tempdb,7、下列哪條命令是對library數(shù)據(jù)庫進(jìn)行增量備份。,① BACKUP DATABASE library to Nw1 WITH INIT,② BACKUP DATABASE library FILE=lib2 TO librarybk,③ BACKUP LOG library TO nwlog WITH NOINIT,④ BACKUP DATABASE library TO DISK = 'e:\xcm\nwdiff.bak' WITH NOINIT,DIFFERENTIAL,12/13/2024,52,第十章 數(shù)據(jù)庫恢復(fù)技術(shù),5、SQL Server現(xiàn)在有三種方法備份數(shù)據(jù)庫中的數(shù)據(jù),分,