數(shù)據(jù)庫應(yīng)用技術(shù):第13章 備份與還原數(shù)據(jù)庫_第1頁
數(shù)據(jù)庫應(yīng)用技術(shù):第13章 備份與還原數(shù)據(jù)庫_第2頁
數(shù)據(jù)庫應(yīng)用技術(shù):第13章 備份與還原數(shù)據(jù)庫_第3頁
數(shù)據(jù)庫應(yīng)用技術(shù):第13章 備份與還原數(shù)據(jù)庫_第4頁
數(shù)據(jù)庫應(yīng)用技術(shù):第13章 備份與還原數(shù)據(jù)庫_第5頁
已閱讀5頁,還剩59頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、 PAGE 64數(shù)據(jù)庫應(yīng)用技術(shù)第13章 備份與還原數(shù)據(jù)庫本章主要介紹SQL Server 2005中數(shù)據(jù)庫的恢復(fù)模式、備份類型及備份方法;還原數(shù)據(jù)庫的方法以及數(shù)據(jù)的導(dǎo)入導(dǎo)出。Microsoft SQL Server 2005提供了高性能的備份和還原功能。SQL Server備份和還原組件提供了重要的保護手段,以保護存儲在SQL Server數(shù)據(jù)庫中的關(guān)鍵數(shù)據(jù)。實施計劃妥善的備份和還原策略可保護數(shù)據(jù)庫,避免由于各種故障造成的損壞而丟失數(shù)據(jù)。13.1 備份數(shù)據(jù)庫備份是數(shù)據(jù)的副本,用于在系統(tǒng)發(fā)生故障后還原和恢復(fù)數(shù)據(jù)。備份能夠在發(fā)生故障后還原數(shù)據(jù)。通過適當?shù)膫浞?,可以從以下故障中恢?fù)數(shù)據(jù)。媒體故障。用

2、戶錯誤(例如,誤刪除了某個表)。硬件故障(例如,磁盤驅(qū)動器損壞或服務(wù)器報廢)。自然災(zāi)難。13.1.1 備份與還原1. 恢復(fù)模式備份和還原操作是在“恢復(fù)模式”下進行的。恢復(fù)模式是一個數(shù)據(jù)庫屬性,它用于控制數(shù)據(jù)庫備份和還原操作基本行為。例如,恢復(fù)模式控制了將事務(wù)記錄在日志中的方式以及事務(wù)日志是否需要備份和可用的還原操作。新的數(shù)據(jù)庫可繼承model數(shù)據(jù)庫的恢復(fù)模式?;謴?fù)模式有簡單恢復(fù)模式、完整恢復(fù)模式和大容量日志恢復(fù)模式三種。(1)簡單恢復(fù)模式此模式簡略地記錄大多數(shù)事務(wù),所記錄的信息只是為了確保在系統(tǒng)崩潰或還原數(shù)據(jù)備份之后數(shù)據(jù)庫的一致性。在簡單恢復(fù)模式下,在每個數(shù)據(jù)備份后事務(wù)日志將自動截斷,由于舊的

3、事務(wù)已提交,已不再需要其日志,因而日志將被截斷。也就是說,不活動的日志將被刪除。因為經(jīng)常會發(fā)生日志截斷,所以沒有事務(wù)日志備份。這就簡化了備份和還原。但是,沒有事務(wù)日志備份,便不可能恢復(fù)到失敗的時間點,數(shù)據(jù)庫只可恢復(fù)到最近的數(shù)據(jù)備份時間。圖13.1說明了簡單恢復(fù)模式。圖13.1 簡單恢復(fù)模式在圖13.1中,進行了一些數(shù)據(jù)庫備份。在最近的備份t5之后的一段時間,在此數(shù)據(jù)庫中出現(xiàn)數(shù)據(jù)丟失。數(shù)據(jù)庫管理員將使用t5備份來將數(shù)據(jù)庫還原到備份完成的時間點。之后對數(shù)據(jù)庫進行的更改都將丟失。此外,該模式不支持還原單個數(shù)據(jù)頁。(2)完整恢復(fù)模式此模式完整地記錄了所有的事務(wù),并保留所有的事務(wù)日志記錄,直到將它們備份

4、。在SQL Server Enterprise Edition中,完整恢復(fù)模式能使數(shù)據(jù)庫恢復(fù)到故障時間點(假定在故障發(fā)生之后備份了日志尾部)。完整恢復(fù)模式可在最大范圍內(nèi)防止出現(xiàn)故障時丟失數(shù)據(jù),它包括數(shù)據(jù)庫備份和事務(wù)日志備份,并提供全面保護,使數(shù)據(jù)庫免受媒體故障影響。圖13.2說明了完整恢復(fù)模式。圖13.2 完整恢復(fù)模式在圖13.2中,執(zhí)行了一個數(shù)據(jù)庫備份(Db_1)和兩個例行的日志備份(Log_1和Log_2)。有時在執(zhí)行Log_2日志備份后,數(shù)據(jù)庫中的數(shù)據(jù)會發(fā)生丟失。在還原這三個備份之前,數(shù)據(jù)庫管理員必須先備份日志尾部,然后再還原Db_1、Log_1和Log_2,而不恢復(fù)數(shù)據(jù)庫。接著還原并恢

5、復(fù)尾日志備份(Tail)。這將數(shù)據(jù)庫恢復(fù)到故障點,從而恢復(fù)所有數(shù)據(jù)。如果有一個或多個數(shù)據(jù)文件已損壞,則恢復(fù)操作可以還原所有已提交的事務(wù)。正在進行的事務(wù)將回滾。在Microsoft SQL Server 2005中,可以在數(shù)據(jù)備份或差異備份運行時備份日志。在SQL Server 2005 Enterprise Edition中,如果數(shù)據(jù)庫處于完整恢復(fù)模式或大容量日志恢復(fù)模式,還可以在沒有使數(shù)據(jù)庫全部離線的情況下還原數(shù)據(jù)庫。完整恢復(fù)模式支持所有還原方案。(3)大容量日志恢復(fù)模式此模式簡略地記錄大多數(shù)大容量操作(例如,索引創(chuàng)建和大容量加載),完整地記錄其他事務(wù)。大容量日志恢復(fù)提高了大容量操作的性能,

6、常用作完整恢復(fù)模式的補充。大容量日志恢復(fù)模式支持所有的恢復(fù)形式,但是有一些限制。與完整恢復(fù)模式(完全記錄所有事務(wù))相反,大容量日志恢復(fù)模式只對大容量操作進行最小記錄(盡管會完全記錄其他事務(wù))。大容量日志恢復(fù)模式保護大容量操作不受媒體故障的危害,提供最佳性能并占用最小日志空間。但是,大容量日志恢復(fù)模式增加了這些大容量復(fù)制操作丟失數(shù)據(jù)的風(fēng)險,因為最小日志記錄大容量操作不會逐個事務(wù)重新捕獲更改。只要日志備份包含大容量操作,數(shù)據(jù)庫就只能恢復(fù)到日志備份的結(jié)尾,而不是恢復(fù)到某個時間點或日志備份中某個標記的事務(wù)。此外,在大容量日志恢復(fù)模式下,備份包含大容量日志記錄操作的日志需要訪問包含大容量日志記錄事務(wù)的數(shù)

7、據(jù)文件。如果無法訪問該數(shù)據(jù)文件,則不能備份事務(wù)日志。在這種情況下,必須重做大容量操作。2. 恢復(fù)模式和支持的還原操作可用于數(shù)據(jù)庫的還原操作取決于所用的恢復(fù)模式。表13.1簡要說明了每種恢復(fù)模式是否支持給定的還原方案以及適用范圍。表13.1 恢復(fù)模式與還原方案還原操作完整恢復(fù)模式大容量日志恢復(fù)模式簡單恢復(fù)模式數(shù)據(jù)還原完整還原(如果日志可用)某些數(shù)據(jù)將丟失自上次完整備份或差異備份后的任何數(shù)據(jù)將丟失時點還原日志備份所涵蓋的任何時間日志備份包含任何大容量日志更改時不允許不支持文件還原*完全支持不完全支持僅對只讀輔助文件可用頁面還原*完全支持不完全支持無逐級(文件組級)還原*完全支持不完全支持僅對只讀輔

8、助文件可用* 僅適用于Microsoft SQL Server 2005 Enterprise Edition。3. 選擇恢復(fù)模式每種恢復(fù)模式(簡單恢復(fù)模式、完整恢復(fù)模式和大容量日志恢復(fù)模式)對可用性、性能、磁盤和磁帶空間以及防止數(shù)據(jù)丟失方面都有特別要求。選擇恢復(fù)模式時,必須在下列業(yè)務(wù)要求之間進行權(quán)衡。大規(guī)模操作(例如創(chuàng)建索引或大容量加載)的性能。數(shù)據(jù)丟失情況(例如已提交的事務(wù)丟失)。事務(wù)日志的空間占用情況。備份和恢復(fù)的簡化。根據(jù)所執(zhí)行的操作,可能存在多個適合的模式。表13.2概述了三種恢復(fù)模式的優(yōu)點和影響。表13.2 三種恢復(fù)模式的優(yōu)點和影響恢復(fù)模式優(yōu)點數(shù)據(jù)丟失情況能否恢復(fù)到時間點簡單允許執(zhí)

9、行高性能大容量復(fù)制操作?;厥杖罩究臻g以使空間要求較小。必須重做自最新數(shù)據(jù)庫或差異備份后所做的更改。可以恢復(fù)到任何備份的結(jié)尾。隨后必須重做更改。完全數(shù)據(jù)文件丟失或損壞不會導(dǎo)致丟失工作??梢曰謴?fù)到任意時間點(例如應(yīng)用程序或用戶錯誤之前)。正常情況下沒有。如果日志損壞,則必須重做自最新日志備份后所做的更改??梢曰謴?fù)到任何時間點。大容量日志允許執(zhí)行高性能大容量復(fù)制操作。大容量操作使用的最小日志空間。如果日志損壞或自最新日志備份后執(zhí)行了大容量操作,則必須重做自上次備份后所做的更改。否則不丟失任何工作??梢曰謴?fù)到任何備份的結(jié)尾。隨后必須重做更改。適合于數(shù)據(jù)庫的恢復(fù)模式取決于數(shù)據(jù)庫的可用性和恢復(fù)要求。4.

10、指定數(shù)據(jù)庫的恢復(fù)模式數(shù)據(jù)庫在創(chuàng)建時與model數(shù)據(jù)庫的恢復(fù)模式相同。可以使用ALTER DATABASE或Microsoft SQL Server Management Studio更改恢復(fù)模式。(1)使用圖形工具設(shè)置恢復(fù)模式連接到相應(yīng)的Microsoft SQL Server Database Engine實例之后,在“對象資源管理器”中,單擊服務(wù)器名稱以展開服務(wù)器樹。展開“數(shù)據(jù)庫”節(jié)點,選擇用戶數(shù)據(jù)庫,如選擇teaching數(shù)據(jù)庫。右鍵單擊該數(shù)據(jù)庫,再單擊“屬性”菜單項,會打開如圖13.3所示的“數(shù)據(jù)庫屬性-teaching”窗口。圖13.3 “數(shù)據(jù)庫屬性-teaching”窗口在“選擇頁

11、”中,單擊“選項”,出現(xiàn)如圖13.4所示的“選項”窗口。圖13.4 選項窗口當前恢復(fù)模式顯示在“恢復(fù)模式”列表框中,如圖13.5所示。圖13.5 設(shè)置恢復(fù)方式也可以從列表中選擇不同的模式來更改恢復(fù)模式??梢赃x擇“完整”、“大容量日志”或“簡單”三種恢復(fù)模式。設(shè)置完成后單擊【確定】按鈕。(2)使用Transact-SQL語句設(shè)置恢復(fù)模式設(shè)置恢復(fù)模式的Transact-SQL命令格式如下。ALTER DATABASE database_nameSET RECOVERY FULL | BULK_LOGGED | SIMPLE ;各選項含義如下。FULL:通過使用事務(wù)日志備份,在媒體發(fā)生故障后提供完整

12、恢復(fù)。如果數(shù)據(jù)文件損壞,媒體恢復(fù)可以還原所有已提交的事務(wù)。BULK_LOGGED:在某些大規(guī)?;虼笕萘坎僮髦?,可以提供最佳性能,占用的日志空間也最少,因此,在媒體發(fā)生故障后,可以提供恢復(fù)。在BULK_LOGGED恢復(fù)模式下,這些操作的日志記錄最少。SIMPLE:系統(tǒng)將提供占用日志空間最小的簡單備份策略。服務(wù)器故障恢復(fù)不再需要的日志空間可被自動重用。簡單恢復(fù)模式比其他兩種模式更容易管理,但代價是數(shù)據(jù)文件損壞時丟失數(shù)據(jù)的風(fēng)險也較大。最近的數(shù)據(jù)庫備份或差異數(shù)據(jù)庫備份之后的所有更改都將丟失,必須手動重新輸入。默認恢復(fù)模式由model數(shù)據(jù)庫的恢復(fù)模式確定?!纠?3.1】將數(shù)據(jù)庫teaching的恢復(fù)模式

13、設(shè)置為完全恢復(fù)模式。ALTER DATABASE teaching SET RECOVERY FULL13.1.2 備份概述Microsoft SQL Server備份創(chuàng)建在備份設(shè)備上,如磁盤或磁帶媒體。使用SQL Server可以決定如何在備份設(shè)備上創(chuàng)建備份。例如,可以覆蓋過時的備份,也可以將新備份追加到備份媒體。注意:如果在進行備份操作時嘗試創(chuàng)建或刪除數(shù)據(jù)庫文件,則創(chuàng)建或刪除將失敗。如果正創(chuàng)建或刪除數(shù)據(jù)庫文件時嘗試啟動備份操作,則備份操作將等待,直到創(chuàng)建或刪除操作完成或者備份超時。1. 備份類型SQL Server 2005支持完整備份、差異備份、事務(wù)日志備份以及文件和文件組備份四種類型。

14、(1)完整備份完整備份是本分整個數(shù)據(jù)庫,包括用戶表、系統(tǒng)表、索引、視圖和存儲過程等所有數(shù)據(jù)庫對象,適用于數(shù)據(jù)更新緩慢的數(shù)據(jù)庫。(2)差異備份差異備份只記錄自上次數(shù)據(jù)庫備份后發(fā)生更改的數(shù)據(jù),差異備份一般會比完整備份占用更少的空間。(3)事務(wù)日志備份事務(wù)日志是一個單獨文件,它記錄數(shù)據(jù)庫的改變,備份時只復(fù)制自上次備份事務(wù)日志對數(shù)據(jù)庫執(zhí)行的所有事務(wù)的一系列記錄。(4)文件和文件組備份當數(shù)據(jù)庫非常龐大時,可執(zhí)行數(shù)據(jù)庫文件和文件組備份。這種備份策略使用戶只恢復(fù)已損壞的文件或文件組,而不用恢復(fù)數(shù)據(jù)庫的其余部分,所以文件和文件組的備份和恢復(fù)是一種相對較完善的備份和恢復(fù)過程。2. 備份操作的限制在Microso

15、ft SQL Server 2005中,當數(shù)據(jù)庫處于在線狀態(tài)并正在使用時,可以進行備份,但有以下限制。(1)無法備份離線數(shù)據(jù)隱式或顯式引用離線數(shù)據(jù)的任何備份操作都會失敗。(2)完整備份過程中的限制在完整備份過程中,不允許執(zhí)行下列操作:創(chuàng)建或刪除數(shù)據(jù)庫文件。在收縮操作過程中截斷文件。如果上述某個操作正在進行時開始備份,則備份將等待該操作完成,直到會話超時所設(shè)置的時間限制到期。如果在備份操作執(zhí)行過程中試圖執(zhí)行上面任一操作,該操作將失敗,而備份操作繼續(xù)進行。13.1.3 創(chuàng)建備份1. 備份設(shè)備備份或還原操作中使用的磁帶機或磁盤驅(qū)動器稱為“備份設(shè)備”。在創(chuàng)建備份時,必須選擇要將數(shù)據(jù)寫入的備份設(shè)備。Mi

16、crosoft SQL Server 2005可以將數(shù)據(jù)庫、事務(wù)日志和文件備份到磁盤和磁帶設(shè)備上。(1)磁盤備份設(shè)備磁盤備份設(shè)備是硬盤或其他磁盤存儲媒體上的文件,與常規(guī)操作系統(tǒng)文件一樣。引用磁盤備份設(shè)備與引用任何其他操作系統(tǒng)文件一樣??梢栽诜?wù)器的本地磁盤上或共享網(wǎng)絡(luò)資源的遠程磁盤上定義磁盤備份設(shè)備,磁盤備份設(shè)備根據(jù)需要可大可小。最大文件大小可以相當于磁盤上可用磁盤空間。若要通過網(wǎng)絡(luò)備份到遠程計算機上的磁盤,需使用通用命名約定(UNC)名稱(格式為:)來指定文件的位置。在將文件寫入本地硬盤時,SQL Server使用的用戶帳戶必須具有讀寫遠程磁盤上的文件所需的權(quán)限。注意:備份到與數(shù)據(jù)庫同在一個

17、物理磁盤上的文件中會有一定的風(fēng)險。如果包含數(shù)據(jù)庫的磁盤設(shè)備發(fā)生故障,由于備份位于發(fā)生故障的同一磁盤上,因此無法恢復(fù)數(shù)據(jù)庫。(2)磁帶設(shè)備磁帶備份設(shè)備的用法與磁盤設(shè)備相同,除了以下情況。磁帶設(shè)備必須物理連接到運行SQL Server實例的計算機上。不支持備份到遠程磁帶設(shè)備上。如果磁帶備份設(shè)備在備份操作過程中已滿,但還需要寫入一些數(shù)據(jù),SQL Server將提示更換新磁帶并繼續(xù)備份操作。(3)物理備份和邏輯備份設(shè)備SQL Server Database Engine使用物理設(shè)備名稱或邏輯設(shè)備名稱標識備份設(shè)備:物理備份設(shè)備是操作系統(tǒng)用來標識備份設(shè)備的名稱,如C:BackupsAccountingFu

18、ll.bak。邏輯備份設(shè)備是用戶定義的別名,用來標識物理備份設(shè)備。邏輯設(shè)備名稱永久性地存儲在SQL Server內(nèi)的系統(tǒng)表中。使用邏輯備份設(shè)備的優(yōu)點是引用它比引用物理設(shè)備名稱簡單。例如,邏輯設(shè)備名稱可以是Accounting_Backup,而物理設(shè)備名稱則可能是E:BackupsAccountingFull.bak。備份或還原數(shù)據(jù)庫時,物理備份設(shè)備名稱和邏輯備份設(shè)備名稱可以互換使用。注意:備份可以使用1到64個備份設(shè)備。2. 創(chuàng)建備份設(shè)備(1)連接到相應(yīng)的Microsoft SQL Server Database Engine實例之后,在“對象資源管理器”中,單擊服務(wù)器名稱以展開服務(wù)器樹。(2

19、)展開“服務(wù)器對象”,然后右鍵單擊“備份設(shè)備”。(3)單擊“新建備份設(shè)備”菜單項,將打開“備份設(shè)備”窗口,如圖13.6所示。圖13.6 “備份設(shè)備”窗口(4)在設(shè)備名稱中輸入設(shè)備的邏輯名稱。(5)若要確定目標位置,選中“目標”中的單選項“文件”,單擊后面的【瀏覽】按鈕,指定該文件的完整路徑,即物理設(shè)備名稱。(6)設(shè)置后單擊【確定】按鈕。3. 查看備份設(shè)備的屬性和內(nèi)容(1)連接到相應(yīng)的Microsoft SQL Server Database Engine實例之后,在“對象資源管理器”中,單擊服務(wù)器名稱以展開服務(wù)器樹。(2)展開“服務(wù)器對象”文件夾,再展開“備份設(shè)備”。(3)單擊設(shè)備并右鍵單擊“

20、屬性”,將打開“備份設(shè)備”窗口。(4)“常規(guī)”頁將顯示設(shè)備名稱和目標,目標為磁帶設(shè)備或者文件路徑,即邏輯備份設(shè)備名及物理備份設(shè)備名,如圖13.7所示。圖13.7 “備份設(shè)備”屬性界面(5)在“選擇頁”窗格中,單擊“媒體內(nèi)容”。(6)右側(cè)窗口顯示以下內(nèi)容。媒體:媒體順序信息,包括媒體序列號、簇序列號和鏡像標識符(如果存在)以及媒體的創(chuàng)建日期和時間。媒體集:媒體集信息,包括媒體集名稱和描述(如果存在)以及媒體集中的簇數(shù)量。(7)“備份集”網(wǎng)格將顯示有關(guān)媒體集內(nèi)容的信息。4. 創(chuàng)建備份(1)使用圖形工具備份數(shù)據(jù)庫1)連接到相應(yīng)的Microsoft SQL Server Database Engine

21、實例之后,在“對象資源管理器”中,單擊服務(wù)器名稱以展開服務(wù)器樹。2)展開“數(shù)據(jù)庫”,選擇用戶數(shù)據(jù)庫,或展開“系統(tǒng)數(shù)據(jù)庫”,再選擇數(shù)據(jù)庫名稱,如teaching。3)右鍵單擊數(shù)據(jù)庫名稱,指向“任務(wù)”,再單擊“備份”,如圖13.8所示。將出現(xiàn)“備份數(shù)據(jù)庫”窗口,如圖13.9所示。圖13.8 備份數(shù)據(jù)庫界面圖13.9 “備份數(shù)據(jù)庫”窗口4)在“數(shù)據(jù)庫”列表框中驗證數(shù)據(jù)庫名稱,也可以從列表中選擇其他數(shù)據(jù)庫。5)在“備份類型”列表框中,列出不同恢復(fù)模式(FULL、BULK_LOGGED或SIMPLE)下可以選擇的備份類型,如選擇“完整”。注意,創(chuàng)建完整數(shù)據(jù)庫備份之后,可以創(chuàng)建差異數(shù)據(jù)庫備份。6)在“備份

22、組件”選擇“數(shù)據(jù)庫”。7)可以接受“備份集”中“名稱”文本框中建議的默認備份集名稱,也可以為備份集輸入其他名稱。8)可以在“說明”文本框中,輸入備份集的說明。9)指定備份集何時過期以及何時可以覆蓋備份集而不用顯式跳過過期數(shù)據(jù)驗證。若要使備份集在特定天數(shù)后過期,選擇“在以下天數(shù)后”(默認選項),并輸入備份集從創(chuàng)建到過期所需的天數(shù)。此值范圍為0到99999天;0天表示備份集將永不過期。若要使備份集在特定日期過期,請單擊“在”,并輸入備份集的過期日期。10)選擇“磁盤”或“磁帶”,以選擇備份目標的類型。若要選擇包含單個媒體集的多個磁盤或磁帶機(最多為64個)的路徑,單擊【添加】。選擇的路徑將顯示在“

23、備份到”列表框中,如圖13.10所示。圖13.10 “選擇備份目標”對話框若要刪除備份目標,選擇該備份目標并單擊【刪除】按鈕。若要查看備份目標的內(nèi)容,可以選擇該備份目標并單擊【內(nèi)容】按鈕。12)若要查看或選擇高級選項,可以在“選擇頁”中選擇“選項”,如圖13.11所示。圖13.11 “備份數(shù)據(jù)庫-選項”對話框13)通過選擇下列選項之一來選擇“覆蓋媒體”選項。備份到現(xiàn)有媒體集可以選擇“追加到現(xiàn)有備份集”或“覆蓋所有現(xiàn)有備份集”?;蛘?,選中“檢查媒體集名稱和備份集過期時間”復(fù)選框,并在“媒體集名稱”文本框中輸入名稱(可選)。如果沒有指定名稱,將使用空白名稱創(chuàng)建媒體集。如果指定了媒體集名稱,將檢查媒

24、體(磁帶或磁盤),以確定實際名稱是否與此處輸入的名稱匹配。備份到新媒體集并清除所有現(xiàn)有備份集可以在“新建媒體集名稱”文本框中輸入名稱,并在“新建媒體集說明”文本框中描述媒體集(可選)。14)在“可靠性”部分中,根據(jù)需要選中下列任意選項。完成后驗證備份?!皩懭朊襟w前檢查校驗和”和“出現(xiàn)校驗和錯誤時繼續(xù)”(可選)。15)如果備份到磁帶機(如同“常規(guī)”頁的“目標”部分指定的一樣),則“備份后卸載磁帶”選項處于活動狀態(tài)。選擇此選項可以激活“卸載前倒帶”選項。注意:除非備份的是事務(wù)日志(如同“常規(guī)”頁的“備份類型”部分中指定的一樣),否則“事務(wù)日志”部分中的選項處于不活動狀態(tài)。此外,還可以使用維護計劃向

25、導(dǎo)來創(chuàng)建數(shù)據(jù)庫備份。16)設(shè)置后單擊【確定】按鈕,如圖13.12所示。圖13.12 備份完成消息框差異備份和日志備份的操作同上。(2)使用Transact-SQL命令備份數(shù)據(jù)庫可以使用BACKUP DATABASE命令備份數(shù)據(jù)庫,命令語法格式如下。BACKUP DATABASE database_name | database_name_var TO ,.,n WITH DIFFERENTIAL | COPY_ONLY := logical_backup_device_name | logical_backup_device_name_var | DISK | TAPE = physical_

26、backup_device_name | physical_backup_device_name_var 各選項含義如下。DATABASE:指定一個完整數(shù)據(jù)庫備份。如果指定了一個文件和文件組的列表,則僅備份該列表中的文件和文件組。在進行完整數(shù)據(jù)庫備份或差異備份時,Microsoft SQL Server會備份足夠的事務(wù)日志,確保還原數(shù)據(jù)庫時生成一個一致的數(shù)據(jù)庫。對于master數(shù)據(jù)庫,只能采用完整數(shù)據(jù)庫備份。 database_name | database_name_var :備份事務(wù)日志、部分數(shù)據(jù)庫或完整的數(shù)據(jù)庫時所用的源數(shù)據(jù)庫。如果作為變量(database_name_var)提供,則可

27、以將該名稱指定為字符串常量(database_name_var = database name)或字符串數(shù)據(jù)類型(ntext或text數(shù)據(jù)類型除外)的變量。TO:表示伴隨的備份設(shè)備組是一個非鏡像媒體集,或者鏡像媒體集中的鏡像之一(如果聲明一個或多個MIRROR TO子句)。 :指定用于備份操作的邏輯備份設(shè)備或物理備份設(shè)備。備份設(shè)備可以是下列一種或多種形式: logical_backup_device_name | logical_backup_device_name_var DISK|TAPE = physical_backup_device_name | physical_backup_de

28、vice_name_var n:表示可以在給定的TO子句或MIRROR TO子句中最多指定64個備份設(shè)備的占位符。每個MIRROR TO子句中的設(shè)備數(shù)必須等于TO子句中的設(shè)備數(shù)。 logical_backup_device_name | logical_backup_device_name_var :數(shù)據(jù)庫要備份到的備份設(shè)備的邏輯名稱。邏輯名稱必須遵守標識符規(guī)則。如果作為變量(logical_backup_device_name_var)提供,則可以將該備份設(shè)備名稱指定為字符串常量(logical_backup_device_name_var = logical backup device n

29、ame)或任何字符串數(shù)據(jù)類型(ntext或text數(shù)據(jù)類型除外)的變量。DISK|TAPE=physical_backup_device_name|physical_backup_device_name_var :允許在指定的磁盤或磁帶設(shè)備上創(chuàng)建備份。在執(zhí)行BACKUP語句之前,指定的設(shè)備不必存在。當指定TO DISK或TO TAPE時,需要輸入完整的路徑和文件名。例如,DISK = C:Program FilesMicrosoft SQL ServerMSSQLBACKUPMybackup.bak或TAPE = .TAPE0。注意:對于備份到磁盤的情況,如果輸入一個相對路徑名,則備份文件將存

30、儲到默認的備份目錄中。該目錄在安裝時被設(shè)置并且存儲在KEY_LOCAL_MACHINESoftware MicrosoftMSSQLServerMSSQLServer目錄下的BackupDirectory注冊表項中。當指定多個文件時,可以混合邏輯文件名(或變量)和物理文件名(或變量)。但是,所有的設(shè)備都必須為同一類型(即磁盤或磁帶)。DIFFERENTIAL:只能與BACKUP DATABASE一起使用,指定數(shù)據(jù)庫備份或文件備份應(yīng)該只包含上次完整備份后更改的數(shù)據(jù)庫或文件部分 差異備份一般會比完整備份占用更少的空間。對于上一次完整備份后執(zhí)行的所有單個日志備份,使用該選項可以不必再進行備份。COP

31、Y_ONLY:指定備份為“僅復(fù)制備份”,該備份不影響正常的備份順序。僅復(fù)制備份是獨立于定期計劃的常規(guī)備份而創(chuàng)建的。僅復(fù)制備份不會影響數(shù)據(jù)庫的總體備份和還原過程。可以使用BACKUP LOG命令備份事務(wù)日志,命令語法格式如下。BACKUP LOG database_name | database_name_var WITH NO_LOG | TRUNCATE_ONLY 各選項含義如下。LOG:指定僅備份事務(wù)日志。該日志是從上一次成功執(zhí)行的LOG備份到當前日志的末尾。備份日志之后,可能會截斷事務(wù)復(fù)制或活動事務(wù)不再需要的空間。NO_LOG | TRUNCATE_ONLY:通過放棄活動日志以外的所有日

32、志,無需備份復(fù)制日志即可刪除不活動的日志部分并截斷日志。該選項會釋放空間。因為并不保存日志備份,所以沒有必要指定備份設(shè)備。NO_LOG和TRUNCATE_ONLY是同義的。使用NO_LOG或TRUNCATE_ONLY截斷日志后,記錄在日志中的更改不可恢復(fù)。為了進行恢復(fù),需要立即執(zhí)行BACKUP DATABASE,以執(zhí)行完整備份或完整差異備份。如果不想進行日志備份,可以將數(shù)據(jù)庫設(shè)置為簡單恢復(fù)模式。BACKUP DATABASE和BACKUP LOG權(quán)限默認授予sysadmin固定服務(wù)器角色和db_owner及db_backupoperator固定數(shù)據(jù)庫角色的成員?!纠?3.2】備份整個teach

33、ing數(shù)據(jù)庫。此示例將創(chuàng)建用于存放teaching數(shù)據(jù)庫完整備份的邏輯備份設(shè)備teachingData。USE masterGOEXEC sp_addumpdevice disk, teachingData, C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLBACKUPteachingData.bakGOBACKUP DATABASE teaching TO teachingDataGO【例13.3】備份數(shù)據(jù)庫和日志此示例創(chuàng)建了完整數(shù)據(jù)庫備份和日志備份。teaching數(shù)據(jù)庫使用簡單恢復(fù)模式。若要創(chuàng)建teaching數(shù)據(jù)庫的日志備份,必須在完整備份

34、之前將該數(shù)據(jù)庫改用完整恢復(fù)模式。將數(shù)據(jù)庫備份到稱為teachingData的邏輯備份設(shè)備上,在更新活動執(zhí)行一段時間后,將日志備份到稱為teachingLog的邏輯備份設(shè)備上。注意:創(chuàng)建邏輯備份設(shè)備需要一次完成。- To permit log backups, before the full backup, alter the database - to use the full recovery model.USE masterGOALTER DATABASE teaching SET RECOVERY FULLGOEXEC sp_addumpdevice disk, teachingData

35、, C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLBACKUPtachingData.bakGOEXEC sp_addumpdevice disk, teachingLog, C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLBACKUPteachingLog.bakGOBACKUP DATABASE teaching TO teachingDataGOBACKUP LOG teaching TO teachingLog13.2 還原數(shù)據(jù)庫13.2.1 還原數(shù)據(jù)庫方案還原方案是從一個或多個備份中還原數(shù)據(jù)

36、,并在還原最后一個備份后恢復(fù)數(shù)據(jù)庫。支持的還原方案取決于恢復(fù)模式。通過還原方案,可以在下列級別之一還原數(shù)據(jù),每個級別的影響如下。數(shù)據(jù)庫級別還原和恢復(fù)整個數(shù)據(jù)庫,并且數(shù)據(jù)庫在還原和恢復(fù)操作期間處于離線狀態(tài)。 數(shù)據(jù)文件級別還原和恢復(fù)一個數(shù)據(jù)文件或一組文件。在文件還原過程中,包含相應(yīng)文件的文件組在還原過程中自動變?yōu)殡x線狀態(tài)。訪問離線文件組的任何嘗試都會導(dǎo)致錯誤。數(shù)據(jù)頁級別可以對任何數(shù)據(jù)庫進行頁面還原,而不管文件組數(shù)為多少。完整恢復(fù)模式下可以還原到此級別。1. 簡單恢復(fù)模式下的還原方案簡單恢復(fù)模式支持如表13.8中所述的基本還原方案。表13.8 簡單恢復(fù)模式所支持的還原方案方案說明數(shù)據(jù)庫完整還原這是基

37、本的還原策略。在簡單恢復(fù)模式下,數(shù)據(jù)庫完整還原可能涉及簡單還原和恢復(fù)完整備份。另外,數(shù)據(jù)庫完整還原也可能涉及還原完整備份并接著還原和恢復(fù)差異備份。文件還原還原損壞的只讀文件,但不還原整個數(shù)據(jù)庫。僅在數(shù)據(jù)庫至少有一個只讀文件組時才可以進行文件還原。 段落還原按文件組級別并從主文件組和所有讀寫輔助文件組開始,分階段還原和恢復(fù)數(shù)據(jù)庫。 僅恢復(fù)適用于從備份復(fù)制的數(shù)據(jù)已經(jīng)與數(shù)據(jù)庫一致而只需使其可用的情況。 注意:只有Enterprise Edition支持在線還原。無論如何還原數(shù)據(jù),數(shù)據(jù)庫引擎都會保證整個數(shù)據(jù)庫的邏輯一致性,以便可以使用數(shù)據(jù)庫。例如,若要還原一個文件,則必須將該文件前滾足夠長度,以便與數(shù)

38、據(jù)庫保持一致,才能恢復(fù)該文件并使其在線.2. 完整恢復(fù)模式下的還原方案完整日志恢復(fù)模式和大容量日志恢復(fù)模式支持如表13.9中介紹的基本還原方案。表13.9 完整日志恢復(fù)模式和大容量日志恢復(fù)模式所支持的還原方案方案說明數(shù)據(jù)庫完整還原這是基本的還原策略。在完整/大容量日志恢復(fù)模式下,數(shù)據(jù)庫完整還原涉及還原完整備份和(可選)差異備份(如果存在),然后還原所有后續(xù)日志備份(按順序)。通過恢復(fù)并還原上一次日志備份(RESTORE WITH RECOVERY)完成數(shù)據(jù)庫完整還原。文件還原還原一個或多個文件,而不還原整個數(shù)據(jù)庫??梢栽跀?shù)據(jù)庫處于離線狀態(tài)或數(shù)據(jù)庫保持在線狀態(tài)(對于某些版本)時執(zhí)行文件還原。在文

39、件還原過程中,包含正在還原的文件的文件組一直處于離線狀態(tài)。必須具有完整的日志備份鏈(包含當前日志文件),并且必須應(yīng)用所有這些日志備份,以使文件與當前日志文件保持一致。頁面還原還原損壞的頁面。可以在數(shù)據(jù)庫處于離線狀態(tài)或數(shù)據(jù)庫保持在線狀態(tài)(對于某些版本)時執(zhí)行頁面還原。在頁面還原過程中,包含正在還原的頁面的文件一直處于離線狀態(tài)。必須具有完整的日志備份鏈(包含當前日志文件),并且必須應(yīng)用所有這些日志備份,以使頁面與當前日志文件保持一致。段落還原按文件組級別并從主文件組開始,分階段還原和恢復(fù)數(shù)據(jù)庫。3. 在大容量日志恢復(fù)模式下進行還原大容量日志恢復(fù)被作為對完整恢復(fù)模式的補充。通常,大容量日志恢復(fù)模式與

40、完整恢復(fù)模式相似,針對完整恢復(fù)模式說明的信息對兩者都適用。此節(jié)僅考慮特定于大容量日志恢復(fù)的還原注意事項。在大容量日志恢復(fù)模式下進行在線還原和段落還原“大容量日志恢復(fù)模式有條件地支持在線文件還原、在線頁面還原和段落還原方案。必須在損壞之前對相關(guān)日志進行了備份;如果數(shù)據(jù)庫中存在大容量更改,那么所有文件必須在線或已失效(也就是說不再屬于數(shù)據(jù)庫),而且必須在備份開始前對大容量更改進行了備份。13.2.2 實施還原方案還原Microsoft SQL Server的完整備份將使用備份完成時數(shù)據(jù)庫中的所有文件重新創(chuàng)建數(shù)據(jù)庫。1. 使用圖形工具還原完整備份在完整恢復(fù)模式或大容量日志恢復(fù)模式下,必須先備份活動事

41、務(wù)日志(稱為日志尾部),然后才能在SQL Server Management Studio中還原數(shù)據(jù)庫。尾日志備份是使數(shù)據(jù)庫處于還原狀態(tài)的一種日志備份。通常會在失敗之后進行尾日志備份來備份日志尾部,以防丟失工作。一般的還原過程需要在“還原數(shù)據(jù)庫”對話框中同時選擇日志備份以及數(shù)據(jù)和差異備份。備份必須按照其創(chuàng)建順序進行還原。在還原給定的事務(wù)日志之前,必須已經(jīng)還原下列備份,但不用回滾未提交的事務(wù)。事務(wù)日志備份之前的完整備份和差異備份(如果存在)。在完整備份和現(xiàn)在要還原的事務(wù)日志之間所做的全部事務(wù)日志備份(如果存在)。注意:上述還原必須使用下面的恢復(fù)狀態(tài)選項:不對數(shù)據(jù)庫執(zhí)行任何操作,不回滾未提交的事務(wù)

42、。使用圖形工具還原步驟如下:1)連接到相應(yīng)的Microsoft SQL Server Database Engine實例之后,在“對象資源管理器“中,單擊服務(wù)器名稱以展開服務(wù)器樹。2)展開“數(shù)據(jù)庫”,選擇用戶數(shù)據(jù)庫,如teaching。3)右鍵單擊數(shù)據(jù)庫,指向“任務(wù)”,再單擊“還原”,如圖13.13所示。圖13.13 還原數(shù)據(jù)庫界面4)單擊“數(shù)據(jù)庫”,打開“還原數(shù)據(jù)庫-teaching”窗口,如圖13.14所示。圖13.14 “還原數(shù)據(jù)庫-teaching”窗口5)在“常規(guī)”選擇頁上,還原數(shù)據(jù)庫的名稱將顯示在“目標數(shù)據(jù)庫”列表框中。若要創(chuàng)建新數(shù)據(jù)庫,可以在列表框中輸入數(shù)據(jù)庫名。6)在“目標時間

43、點“文本框中,可以保留默認值(“最近狀態(tài)”),也可以單擊【瀏覽】按鈕打開“時點還原”對話框,以選擇具體的日期和時間。7)若要指定要還原的備份集的源和位置,可以選擇以下選項之一。源數(shù)據(jù)庫在列表框中選擇或輸入數(shù)據(jù)庫名稱。源設(shè)備單擊【瀏覽】按鈕,打開“指定備份”對話框。在“備份媒體”列表框中,從列出的設(shè)備類型選擇一種。若要為“備份位置”列表框選擇一個或多個設(shè)備,可以單擊【添加】按鈕。將所需設(shè)備添加到“備份位置”列表框后,單擊【確定】按鈕,返回到“常規(guī)”選擇頁。8)在“選擇用于還原的備份集”表格中,選擇用于還原的備份。此網(wǎng)格將顯示對于指定位置可用的備份。默認情況下,系統(tǒng)會推薦一個恢復(fù)計劃。若要覆蓋建議

44、的恢復(fù)計劃,可以更改網(wǎng)格中的選擇。當取消選擇某個早期備份時,將自動取消選擇那些需要還原該早期備份才能進行的備份。表13.10列出了表格的列標題并對列值進行了說明。表13.10 “選擇用于還原的備份集”表格中各列的說明表頭說明還原如果復(fù)選框處于選中狀態(tài),則指示要還原相應(yīng)的備份集。備份集名稱備份集的名稱。備份組件已備份的組件:“數(shù)據(jù)庫”、“文件”或 (表示事務(wù)日志)。備份類型執(zhí)行的備份類型:“完整”、“差異”或“事務(wù)日志”。服務(wù)器名稱執(zhí)行備份操作的數(shù)據(jù)庫引擎實例的名稱。數(shù)據(jù)庫備份操作中所涉及的數(shù)據(jù)庫的名稱。位置備份集在卷中的位置。第一個 LSN備份集中第一個事務(wù)的日志序列號。對于文件備份為空。最后

45、一個 LSN備份集中最后一個事務(wù)的日志序列號。對于文件備份為空。檢查點 LSN創(chuàng)建備份時最近一個檢查點的日志序列號。完整 LSN最新的完整備份的日志序列號。開始日期備份操作開始的日期和時間(按客戶端的區(qū)域設(shè)置顯示)。完成日期備份操作完成的日期和時間(按客戶端的區(qū)域設(shè)置顯示)。大小備份集的大小(字節(jié))。用戶名執(zhí)行備份操作的用戶的名稱。過期備份集的過期日期和時間。9)若要查看或選擇高級選項,可以選擇“選擇頁”窗格中的“選項”,如圖13.15所示。圖13.14 “還原數(shù)據(jù)庫-選項”窗口10)對于“還原選項”面板,有下列幾個選項。覆蓋現(xiàn)有數(shù)據(jù)庫指定還原操作應(yīng)覆蓋所有現(xiàn)有數(shù)據(jù)庫及其相關(guān)文件,即使已存在同

46、名的其他數(shù)據(jù)庫或文件。選擇此選項等效于在Transact-SQL RESTORE語句中使用REPLACE選項。保留復(fù)制設(shè)置將已發(fā)布的數(shù)據(jù)庫還原到創(chuàng)建該數(shù)據(jù)庫的服務(wù)器之外的服務(wù)器時,保留復(fù)制設(shè)置。此選項只能與“回滾未提交的事務(wù),使數(shù)據(jù)庫處于可以使用的狀態(tài).”選項(等效于使用RECOVERY選項還原備份)一起使用。選中此選項等效于在Transact-SQL RESTORE語句中使用KEEP_REPLICATION選項。還原每個備份之前進行提示還原初始備份之后,此選項會在還原每個附加備份集之前打開“繼續(xù)還原”對話框,該對話框?qū)⒁笾甘臼欠褚^續(xù)進行還原。該對話框?qū)@示下一個媒體集(如果有)的名稱、備

47、份集名稱以及備份集說明。在必須交換不同媒體集磁帶的情況下,此選項尤其有用。例如,如果服務(wù)器只有一個磁帶設(shè)備,則可以使用此選項。待做好繼續(xù)操作的準備后,再單擊【確定】按鈕。單擊“否”將使數(shù)據(jù)庫處于還原狀態(tài)。完成上次還原之后,可以在方便時繼續(xù)按順序還原。如果下一個備份是數(shù)據(jù)備份或差異備份,再次使用“還原數(shù)據(jù)庫”任務(wù)。如果下一個備份是日志備份,使用“還原事務(wù)日志”任務(wù)。限制訪問還原的數(shù)據(jù)庫使還原的數(shù)據(jù)庫僅供db_owner、dbcreator或sysadmin的成員使用。選中此選項等效于在Transact-SQL RESTORE語句中使用RESTRICTED_USER選項。將數(shù)據(jù)庫文件還原為以表格格

48、式顯示原始數(shù)據(jù)庫文件名稱??梢愿囊€原到的任意文件的路徑及名稱。表13.11列出了“將數(shù)據(jù)庫文件還原為”表格的列標題并對列值進行了說明。表13.11 “將數(shù)據(jù)庫文件還原為”表格中各列的說明表頭說明原始文件名源備份文件的完整路徑。還原為將來還原的數(shù)據(jù)庫文件的完整路徑。若要指定新的還原文件,請單擊文本框,并編輯建議的路徑和文件名。更改“還原為”列中的路徑或文件名等效于在Transact-SQL RESTORE語句中使用MOVE選項。11)對于“恢復(fù)狀態(tài)”選項,可以指定還原操作之后的數(shù)據(jù)庫狀態(tài)。回滾未提交的事務(wù),使數(shù)據(jù)庫處于可以使用的狀態(tài)。無法還原其他事務(wù)日志?;謴?fù)數(shù)據(jù)庫。此選項等效于Transa

49、ct-SQL RESTORE語句中的RECOVERY選項。僅在沒有要還原的日志文件時選擇此選項。不對數(shù)據(jù)庫執(zhí)行任何操作,不回滾未提交的事務(wù)??梢赃€原其他事務(wù)日志。使數(shù)據(jù)庫處于未恢復(fù)狀態(tài)。此選項等效于在Transact-SQL RESTORE語句中使用NORECOVERY選項。選擇此選項時,“保留復(fù)制設(shè)置”選項將不可用。使數(shù)據(jù)庫處于只讀模式。撤消未提交的事務(wù),但將撤消操作保存在備用文件中,以便可使恢復(fù)效果還原。使數(shù)據(jù)庫處于備用狀態(tài)。此選項等效于在Transact-SQL RESTORE語句中使用STANDBY選項。選擇此選項需要指定一個備用文件。12)也可以在“備用文件”文本框中指定備用文件名。

50、如果使數(shù)據(jù)庫處于只讀模式,則必須選中此選項??梢圆檎覀浞菸募?,也可以在文本框中鍵入其路徑名。13)設(shè)置好后單擊【確定】按鈕,系統(tǒng)開始還原,還原成功后,如圖13.15所示。圖13.15 還原完成消息框2. 使用Transact-SQL命令還原備份(1)簡單恢復(fù)模式下的數(shù)據(jù)庫完整還原可以使用RESTORE DATABASE命令還原數(shù)據(jù)庫,命令語法格式如下。RESTORE DATABASE FROM WITH RECOVERY | NORECOVERYNORECOVERY:指定不發(fā)生回滾,從而使前滾按順序在下一條語句中繼續(xù)進行。在這種情況下,還原順序可還原其他備份,并執(zhí)行前滾。RECOVERY:默認

51、值,應(yīng)在完成當前備份前滾之后執(zhí)行回滾?;謴?fù)數(shù)據(jù)庫要求要還原的整個數(shù)據(jù)集(“前滾集”)必須與數(shù)據(jù)庫一致。如果前滾集尚未前滾到與數(shù)據(jù)庫保持一致的地步,并且指定了RECOVERY,則數(shù)據(jù)庫引擎將發(fā)出錯誤。還原Microsoft SQL Server的完整備份將使用備份完成時數(shù)據(jù)庫中的所有文件重新創(chuàng)建數(shù)據(jù)庫。在簡單恢復(fù)模式下進行完整數(shù)據(jù)庫還原只有一個或兩個步驟,這取決于是否需要還原完整差異備份。如果僅使用完整備份,則只需還原最近的完整備份(WITH RECOVERY)即可。如果還使用了完整差異備份:還原最新的完整備份但不恢復(fù)數(shù)據(jù)庫(WITH NORECOVERY)。還原完整差異備份并恢復(fù)數(shù)據(jù)庫(WIT

52、H RECOVERY)。還原整個數(shù)據(jù)庫時,應(yīng)當使用單一還原順序。下面的示例按照數(shù)據(jù)庫完整還原方案的還原順序說明了關(guān)鍵選項。還原順序由通過一個或多個還原階段來移動數(shù)據(jù)的一個或多個還原操作組成。該數(shù)據(jù)庫還原為完整備份的狀態(tài)。RECOVERY是默認的?!纠?3.4】創(chuàng)建完整備份和完整差異備份。下面的示例說明了如何在簡單恢復(fù)模式下創(chuàng)建teaching數(shù)據(jù)庫的完整備份和完整差異備份,以及如何按順序還原它們。在完整差異備份還原之后,將在一個單獨的步驟中還原數(shù)據(jù)庫。USE masterALTER DATABASE teaching SET RECOVERY SIMPLEGOEXEC sp_addumpdev

53、ice disk, Myteaching, C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLBACKUPMyteaching.bakGOBACKUP DATABASE teaching TO Myteaching WITH FORMATGOBACKUP DATABASE teaching TO Myteaching WITH DIFFERENTIALGORESTORE DATABASE teaching FROM Myteaching WITH NORECOVERYGORESTORE DATABASE teaching FROM Myteachin

54、g WITH FILE=2, RECOVERYGO(2)完整恢復(fù)模式下的數(shù)據(jù)庫完整還原通常,將數(shù)據(jù)庫恢復(fù)到故障點分為下列基本步驟。1)備份活動事務(wù)日志(稱為日志尾部)。此操作將創(chuàng)建尾日志備份。如果活動事務(wù)日志不可用,則該日志部分的所有事務(wù)都將丟失。在大容量日志恢復(fù)模式下,備份任何包含大容量日志操作的日志都需要訪問數(shù)據(jù)庫中的所有數(shù)據(jù)文件。如果無法訪問該數(shù)據(jù)文件,則不能備份事務(wù)日志。在這種情況下,需要手動重做自最近備份日志以來的所有更改。2)還原最新的完整備份,但不恢復(fù)數(shù)據(jù)庫(WITH NORECOVERY)。3)如果存在差異備份,則還原最新的差異備份,而不恢復(fù)數(shù)據(jù)庫(WITH NORECOVER

55、Y)。4)從還原備份后創(chuàng)建的第一個事務(wù)日志備份開始,使用NORECOVERY依次還原日志。5)恢復(fù)數(shù)據(jù)庫(RESTORE DATABASE WITH RECOVERY)。此步驟也可以與還原上一次日志備份結(jié)合使用。6)數(shù)據(jù)庫完整還原通常可以恢復(fù)到日志備份中的某一時間點或標記的事務(wù)。但是,在大容量日志恢復(fù)模式下,如果日志備份包含大容量更改,則不能進行時點恢復(fù)。還原整個數(shù)據(jù)庫(完整恢復(fù)模式)還原整個數(shù)據(jù)庫時,應(yīng)當使用單一還原順序。下面的Transact-SQL命令序列說明還原順序中用于將數(shù)據(jù)庫還原到故障點的數(shù)據(jù)庫完整還原方案的關(guān)鍵選項。還原順序由一個或多個還原操作組成,這些還原操作通過一個或多個還原

56、階段來移動數(shù)據(jù)。數(shù)據(jù)庫將還原并前滾。數(shù)據(jù)庫差異用于減少前滾時間。此還原順序用于避免丟失工作;上次還原的備份為尾日志備份。Transact-SQL命令序列:RESTORE DATABASE FROM WITH NORECOVERYRESTORE DATABASE FROM WITH NORECOVERYRESTORE LOG FROM WITH NORECOVERYRESTORE LOG FROM WITH NORECOVERYRESTORE LOG FROM WITH RECOVERY【例13.5】以下示例說明如何創(chuàng)建teaching數(shù)據(jù)庫的完整備份、純?nèi)罩緜浞莺臀踩罩緜浞菀约叭绾伟错樞蜻€原這

57、些備份。還原尾日志備份后,在單獨的步驟中恢復(fù)數(shù)據(jù)庫。在此示例中,teaching數(shù)據(jù)庫臨時設(shè)置為使用完整恢復(fù)模式。USE masterGOALTER DATABASE teaching SET RECOVERY FULLGO- Create a logical backup device for the full teachings backup.EXEC sp_addumpdevice disk, Myteaching C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLBACKUPMyteaching.bakGO- Back up the full

58、 teaching database:BACKUP DATABASE teaching TO Myteaching WITH FORMATGO-Create a pure log backup:BACKUP LOG teaching TO MyteachingGO-Create tail-log backup:BACKUP LOG teaching TO Myteaching WITH NORECOVERYGO-Restore the full backup (from backup set 1):RESTORE DATABASE teaching FROM Myteaching WITH N

59、ORECOVERY-Restore the pure log backup (from backup set 2):RESTORE LOG teaching FROM Myteaching WITH FILE=2, NORECOVERY-restore the tail-log backup (from backup set 3):RESTORE LOG teaching FROM Myteaching WITH FILE=3, NORECOVERYGO-recover the database:RESTORE DATABASE teaching WITH RECOVERYGO還原完整差異備份

60、還原完整差異備份需要注意以下事項。1)指定NORECOVERY子句后,執(zhí)行RESTORE DATABASE語句以還原完整差異備份之前的完整備份。2)指定下列項后,執(zhí)行RESTORE DATABASE語句以還原完整差異備份:將應(yīng)用完整差異備份的數(shù)據(jù)庫名稱。要從中還原完整差異備份的備份設(shè)備。NORECOVERY子句,前提是還原了完整差異備份后,存在要應(yīng)用的事務(wù)日志備份。否則應(yīng)指定RECOVERY子句。3)使用完整恢復(fù)或大容量日志恢復(fù)模式,還原完整差異備份將把數(shù)據(jù)庫還原到完整差異備份完成時的那一點。若要恢復(fù)到失敗的那一點,則必須應(yīng)用創(chuàng)建上一個完整差異備份后創(chuàng)建的所有事務(wù)日志備份?!纠?3.6】還原數(shù)

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論