SQL Server數(shù)據(jù)庫應用與開發(fā):第11章 備份和恢復_第1頁
SQL Server數(shù)據(jù)庫應用與開發(fā):第11章 備份和恢復_第2頁
SQL Server數(shù)據(jù)庫應用與開發(fā):第11章 備份和恢復_第3頁
SQL Server數(shù)據(jù)庫應用與開發(fā):第11章 備份和恢復_第4頁
SQL Server數(shù)據(jù)庫應用與開發(fā):第11章 備份和恢復_第5頁
已閱讀5頁,還剩54頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、SQL Server 2005 數(shù)據(jù)庫應用與開發(fā)第11章 備份和恢復內(nèi)容提要SQL Server 2005數(shù)據(jù)庫的備份和恢復功能強大,涉及數(shù)據(jù)庫系統(tǒng)的可靠性、安全性和完整性,是有效地防止數(shù)據(jù)丟失重要工具。計算機用戶能夠?qū)σ恍┲匾募①Y料定期進行備份是必要的。因為當出現(xiàn)比如系統(tǒng)崩潰、系統(tǒng)遭受病毒攻擊等突發(fā)情況,原先的文件就會遭到破壞以至于全部丟失,而通過恢復啟用原先的文件備份,就可以節(jié)省大量的資源。本章重點掌握數(shù)據(jù)庫的備份和恢復的常用操作。第11章 備份和恢復本章內(nèi)容:11.1 備份和還原概述11.2備份數(shù)據(jù)庫11.3還原數(shù)據(jù)庫11.4 還原受損的系統(tǒng)數(shù)據(jù)庫11.5小結(jié)11.1 備份和還原概述

2、對于生產(chǎn)數(shù)據(jù)庫來說,數(shù)據(jù)的安全性是至關(guān)重要的。數(shù)據(jù)丟失可能由于以下多種原因造成:硬件故障、病毒、錯誤地使用UPDATE和DELETE語句、軟件錯誤、自然災害等。在備份數(shù)據(jù)庫的時,SQL Server會執(zhí)行下列操作:將數(shù)據(jù)庫所有的數(shù)據(jù)頁寫到備份介質(zhì)上。記錄最早的事物日志記錄的序列號。把所有的錯誤日志記錄寫到備份介質(zhì)上。執(zhí)行備份后需要將備份的數(shù)據(jù)寫到備份介質(zhì)上,在SQL Server 2005系統(tǒng)中主要有磁盤、磁帶、命名管道3種介質(zhì),而目前的數(shù)據(jù)庫備份多用磁盤介質(zhì)。11.1 備份和還原概述11.1.1備份和還原的目的降低數(shù)據(jù)丟失的可能性,并能夠及時恢復已經(jīng)丟失的數(shù)據(jù),可以在數(shù)據(jù)庫系統(tǒng)中實施備份和恢

3、復策略。備份和恢復就是將數(shù)據(jù)庫中的數(shù)據(jù)進行導出,生成副本,然后在系統(tǒng)發(fā)生故障后能夠恢復全部或部分數(shù)據(jù)。數(shù)據(jù)還原就是在數(shù)據(jù)庫的一定生命周期的某一時刻還原數(shù)據(jù)。作為數(shù)據(jù)庫管理員,應該將數(shù)據(jù)還原的頻率減到最低,預計潛在災難所能影響到的范圍,當災難發(fā)生時,加快還原速度并快速地驗證還原是否成功。11.1 備份和還原概述11.1.2備份的時機備份數(shù)據(jù)庫的時機和頻率取決于可接受的數(shù)據(jù)丟失量和數(shù)據(jù)庫活動的頻繁程度。如果系統(tǒng)處于聯(lián)機事務處理(OLTP)環(huán)境,則需要頻繁備份數(shù)據(jù)庫。如果系統(tǒng)主要用于決策支持(OLAP),則不必頻繁備份數(shù)據(jù)庫。需要決定從每種災難中進行數(shù)據(jù)還原的合理時間長度,根據(jù)災難類型和數(shù)據(jù)庫的大小

4、不同,所需的最短數(shù)據(jù)還原時間也會不同。11.1 備份和還原概述11.1.2備份的時機當計劃從各種潛在的災難中恢復時,需要考慮相關(guān)的問題,并為各種可能性做準備。一個包含數(shù)據(jù)文件的磁盤出現(xiàn)故障,就應該考慮下列問題:關(guān)閉數(shù)據(jù)庫會造成什么后果?替換損壞的數(shù)據(jù)磁盤并用數(shù)據(jù)庫備份還原數(shù)據(jù)的時間可否接受?為了使數(shù)據(jù)庫不會由于單個磁盤的故障而無法使用,是否需要實現(xiàn) RAID?用數(shù)據(jù)庫備份還原數(shù)據(jù)的實際時間是多少?更頻繁地備份數(shù)據(jù)庫是否會顯著地減少還原時間?11.1 備份和還原概述11.1.2備份的時機1備份系統(tǒng)數(shù)據(jù)庫(1)修改master數(shù)據(jù)庫備份數(shù)據(jù)庫。master數(shù)據(jù)庫包含了SQL Server系統(tǒng)中有關(guān)

5、數(shù)據(jù)庫的全部信息。當用戶創(chuàng)建任何自定義的數(shù)據(jù)庫時都要修改master數(shù)據(jù)庫,此時就應該備份master數(shù)據(jù)庫。在master數(shù)據(jù)庫遭到破壞時,就可以方便的恢復數(shù)據(jù)庫。創(chuàng)建、刪除和修改數(shù)據(jù)庫,要備份master數(shù)據(jù)庫利用sp_logdevice系統(tǒng)存儲過程,用來修改事務日志。用于添加或者刪除服務器的系統(tǒng)存儲過程。例如sp_addserver、sp_dropserver系統(tǒng)存儲過程。11.1 備份和還原概述11.1.2備份的時機1備份系統(tǒng)數(shù)據(jù)庫(2)修改msdb數(shù)據(jù)庫備份數(shù)據(jù)庫。msdb數(shù)據(jù)庫包含了SQL Server2005代理所使用的作業(yè)、警報和操作員的信息。(3)修改model數(shù)據(jù)庫備份數(shù)據(jù)

6、庫。修改model數(shù)據(jù)庫后也要對其進行備份,這樣才能把更改后的所有用戶數(shù)據(jù)庫的默認配置保存下來。11.1 備份和還原概述11.1.2備份的時機2備份用戶數(shù)據(jù)庫用戶應當定期的備份用戶數(shù)據(jù)庫??梢詮南铝袔追矫婵紤]備份的時機:(1)創(chuàng)建數(shù)據(jù)庫后備份數(shù)據(jù)庫。創(chuàng)建數(shù)據(jù)庫或為數(shù)據(jù)庫填充了數(shù)據(jù)以后,用戶應該備份數(shù)據(jù)庫。(2)創(chuàng)建索引后備份數(shù)據(jù)庫。雖然這不是必須的,但是以后如果數(shù)據(jù)庫遭到破壞,那么就可以在還原過程中節(jié)省時間。(3)清理事務日志后備份數(shù)據(jù)庫。(4)執(zhí)行了無日志操作后也應該備份數(shù)據(jù)庫。11.1 備份和還原概述11.1.3備份和恢復的類型在SQL Server 2005系統(tǒng)中,主要有4種常用備份類型

7、:完整數(shù)據(jù)庫備份、差異數(shù)據(jù)庫備份、事務日志備份和數(shù)據(jù)庫文件或文件組備份。1完整數(shù)據(jù)庫備份和恢復完整數(shù)據(jù)庫備份是數(shù)據(jù)庫恢復時的基線,執(zhí)行完整數(shù)據(jù)庫備份時,SQL Server執(zhí)行下列操作:備份在備份過程中發(fā)生的所有活動。備份事務日志中的所有未提交事務。完整數(shù)據(jù)庫的恢復是從完整數(shù)據(jù)庫備份中進行恢復。11.1 備份和還原概述11.1.3備份和恢復的類型2差異數(shù)據(jù)庫備份和恢復為了減少還原頻繁修改的數(shù)據(jù)庫的時間,可以執(zhí)行差異備份。在執(zhí)行差異備份之前必須已經(jīng)執(zhí)行了完整數(shù)據(jù)庫備份。差異備份只備份自上一次完整數(shù)據(jù)庫備份發(fā)生改變的內(nèi)容和在差異備份過程中所發(fā)生的所有活動,及事務日志中所有為提交的部分。差異數(shù)據(jù)庫的

8、恢復必須在完整數(shù)據(jù)庫備份的基礎上進行恢復。11.1 備份和還原概述11.1.3備份和恢復的類型3事務日志備份和恢復備份事務日志可以記錄數(shù)據(jù)庫的更改,但前提是在執(zhí)行了完整數(shù)據(jù)庫備份之后。進行事務日志備份時,SQL Server執(zhí)行備份操作是從上一次成功執(zhí)行BACKUP LOG語句之后到當前事務日志結(jié)尾的這段事務日志,并從事務日志活動部分的起點處截斷事務日志,丟棄不活動部分的信息。事務日志的恢復必須在完整數(shù)據(jù)庫備份的基礎上進行,且可以恢復到特定的即時點或故障點。11.1 備份和還原概述11.1.3備份和恢復的類型4數(shù)據(jù)庫文件或文件組備份和恢復對超大型數(shù)據(jù)庫執(zhí)行完整數(shù)據(jù)庫備份是不可行的,可以執(zhí)行數(shù)據(jù)

9、庫文件或文件組備份。在備份數(shù)據(jù)庫文件或文件組時應考慮以下幾點:必須指定邏輯文件或文件組,一般將表和索引一起備份。必須執(zhí)行事務日志備份,使還原的文件與數(shù)據(jù)庫的其他部分相一致,必須同時備份事務日志。最多可以指定16個文件或文件組,且應制定輪流備份每個文件的計劃。數(shù)據(jù)庫文件或文件組的恢復通過完整數(shù)據(jù)庫備份上進行恢復,也可以單獨恢復。11.1 備份和還原概述11.1.4 備份策略的選擇1完整數(shù)據(jù)庫備份策略完整數(shù)據(jù)庫備份的備份內(nèi)容包括還原數(shù)據(jù)庫時需要的所有數(shù)據(jù)和數(shù)據(jù)庫的元數(shù)據(jù)信息,其中包括全文目錄。在還原完整數(shù)據(jù)庫備份時,數(shù)據(jù)庫將恢復所有數(shù)據(jù)庫文件,這些文件包含備份結(jié)束時處于一致狀態(tài)的所有數(shù)據(jù)。在執(zhí)行數(shù)

10、據(jù)庫備份時,數(shù)據(jù)庫即使處于聯(lián)機狀態(tài),用戶依然可以像平常一樣發(fā)起事務,更改數(shù)據(jù)?!耙恢聽顟B(tài)”是指在備份執(zhí)行過程中,所有提交的事務將被接受,所有未完成的事務將被回滾。 11.1 備份和還原概述11.1.4 備份策略的選擇1完整數(shù)據(jù)庫備份策略在SQL Server執(zhí)行備份時可能存在事務正在修改數(shù)據(jù)的情形,而這種情形很可能導致數(shù)據(jù)不一致。SQL Server 2005有一種特殊的處理過程以保證數(shù)據(jù)的一致性。這個過程包括向備份設備寫數(shù)據(jù)頁和事務日志記錄。完整數(shù)據(jù)庫備份策略適合如下情況:數(shù)據(jù)庫中的數(shù)據(jù)量比較小,總的備份時間可以接受。數(shù)據(jù)庫中的數(shù)據(jù)量變化少或者數(shù)據(jù)庫是只讀的。 11.1 備份和還原概述11.

11、1.4 備份策略的選擇2數(shù)據(jù)庫和事務日志備份策略如果數(shù)據(jù)庫要求有比較嚴格的可恢復性,而使用完整數(shù)據(jù)庫備份的時間與效率不允許時,可以通過數(shù)據(jù)庫和事務日志備份策略。當進行數(shù)據(jù)庫和事務日志備份策略時,用戶應該從最近的完整數(shù)據(jù)庫備份開始,使用事務日志備份。這種策略一般用于經(jīng)常修改操作的數(shù)據(jù)庫上。11.1 備份和還原概述11.1.4 備份策略的選擇3差異備份策略差異備份策略一般是在完整數(shù)據(jù)庫備份上、且數(shù)據(jù)變化比較頻繁的數(shù)據(jù)庫上,該類備份可以節(jié)省數(shù)據(jù)庫備份的時間。4文件或文件組備份策略 文件或文件組備份策略主要包含單個文件或文件組的操作,適用于數(shù)據(jù)量龐大、完整備份耗時長的數(shù)據(jù)庫。11.1 備份和還原概述1

12、1.1.5恢復模式的設置恢復模式是指數(shù)據(jù)庫運行時,記錄事務日志的模式?;謴湍J娇刂剖聞沼涗浽谌罩局械姆绞?、事務日志是否需要備份以及還原的操作。1恢復模式的分類恢復模式包含簡單恢復模式、完整恢復模式和大容量日志恢復模式3種類型,適合于數(shù)據(jù)庫的恢復模式取決于數(shù)據(jù)庫的可用性和恢復要求。簡單恢復。完整恢復。大容量日志恢復。11.1 備份和還原概述11.1.5恢復模式的設置2選擇數(shù)據(jù)庫的恢復模式指定數(shù)據(jù)庫的恢復模式,可以參考如下步驟。(1)啟動SQL Server Management Studio,在對象資源管理器中,右擊“數(shù)據(jù)庫”|teaching,在彈出的快捷菜單中選擇“屬性”命令。(2)在彈出的

13、“數(shù)據(jù)庫屬性”對話框中,選擇“選項”選項卡,在“恢復模式”后的列表框中,可以選擇恢復模式,如圖11.1所示。(3)也可以從列表中,更改的恢復模式??梢赃x擇“簡單”、“完整”或“大容量日志”恢復模式中的一種。然后單擊“確定”按鈕即可。11.1 備份和還原概述11.1.5恢復模式的設置3利用Transact-SQL語句設置恢復模式(1)設置簡單恢復模式。數(shù)據(jù)庫所用的默認恢復模式取決于數(shù)據(jù)庫創(chuàng)建時指定的數(shù)據(jù)庫恢復模式。為了實現(xiàn)只包括完整數(shù)據(jù)庫備份的備份策略,恢復模式應該被設置為“簡單模式”。如果只使用完整數(shù)據(jù)庫備份和差異備份,數(shù)據(jù)庫必須置于簡單恢復模式。在簡單恢復模式中,事務日志會在每一個檢查點后被

14、刪除。在簡單恢復模式中不能創(chuàng)建事務日志備份。設置恢復模式為簡單模式可以用ALTER DATABASE語句來設置恢復模式。例11.1 為數(shù)據(jù)庫test01設置簡單恢復模式。程序代碼如下:USE master;GOALTER DATABASE test01SET RECOVERY SIMPLE;GO-查看恢復模式語句SELECT DATABASEPROPERTYEX(test01,Recovery)11.1 備份和還原概述11.1.5恢復模式的設置3利用Transact-SQL語句設置恢復模式(2)完整恢復模式。如果也想使用事務日志備份,恢復模式必須置于完整恢復模式(FULL)或者大容量日志恢復模

15、式(BULK_LOGGED)。完整恢復模式會使得SQL Server將所有事務保存在一個事務日志文件中直到一次事務日志備份發(fā)生。當事務日志備份發(fā)生時,SQL Server將在事務日志備份寫入備份設備后刪除事務日志。在數(shù)據(jù)庫置于完整恢復模式的時候,執(zhí)行事務日志備份是非常重要的。如果沒有進行事務日志備份,事務日志文件將不斷增加直至其最大大小限制。事務日志已滿且不能再增加的時候,就不能再執(zhí)行事務了。使用ALTER DATABASE將數(shù)據(jù)庫的恢復模式設置為FULL。以下代碼將test01數(shù)據(jù)庫的恢復模式設為FULL:USE master;GOALTER DATABASE test01SET RECOV

16、ERY FULL;GO11.1 備份和還原概述11.1.5恢復模式的設置3利用Transact-SQL語句設置恢復模式(3)大容量日志恢復模式。大容量日志恢復模式可以允許事務日志既捕獲日志又捕獲大容量操作的結(jié)果。在大容量日志恢復模式下,將數(shù)據(jù)庫還原到特定的時間點是不可能的。而且,在數(shù)據(jù)文件損壞且在最后一次事務日志備份之后發(fā)生了大容量操作的情況下,不可能再執(zhí)行事務日志備份,這恰好是事務日志備份的重要優(yōu)點之一。大容量日志恢復模式必須在執(zhí)行大容量操作的時候打開,并且要讓使用這種模式的時間盡量短。數(shù)據(jù)庫使用完整備份模式。如果只需要使用完整日志操作,就不要使用大容量日志恢復模式。11.1 備份和還原概述

17、11.1.6 在幾種不同災難情況下的恢復制定各種故障和災難的恢復計劃,應該預計到各種形式的潛在災難,并針對具體情況制定恢復計劃。在數(shù)據(jù)庫系統(tǒng)生命周期中可能發(fā)生的災難主要分為3類。1系統(tǒng)故障系統(tǒng)故障一般是指由于硬件故障或軟件錯誤,如掉電、操作系統(tǒng)運行錯誤等原因,使得內(nèi)存中的數(shù)據(jù)或日志突然遭到破壞,事務處理終止,但物理介質(zhì)上的信息沒有被破壞。SQL Server 2005本身就可以自己修復這類故障。11.1 備份和還原概述11.1.6 在幾種不同災難情況下的恢復2事務故障在SQL Server 2005系統(tǒng)中,一個事務可能包含一組SQL語句的操作。事務故障是指事務運行過程中,沒有正常提交就產(chǎn)生的故

18、障,事務中的語句組具有原子性,要么都完成,要么會滾到執(zhí)行該事務前的狀態(tài)。SQL Server 2005本身就能夠處理事務故障。特殊情況下,還可以通過重啟服務來處理該故障。3介質(zhì)故障 由于物理介質(zhì)發(fā)生讀寫錯誤,或者管理員在操作過程中不慎刪除一些重要數(shù)據(jù)或日志文件,機會產(chǎn)生介質(zhì)故障。介質(zhì)故障需要數(shù)據(jù)庫管理員手工進行恢復,恢復時需要在發(fā)生故障前的數(shù)據(jù)庫備份和日志備份。11.2備份數(shù)據(jù)庫 備份和恢復數(shù)據(jù)庫過程中常用的術(shù)語。(1)備份 (backup)。數(shù)據(jù)庫、文件組、文件或事務日志的副本,可用于恢復數(shù)據(jù)。(2)備份集 (backup set)。從備份所屬的媒體集方面進行說明的單個備份。每個備份集都分布

19、在所屬媒體集的所有媒體簇中。(3)備份設備 (backup device)。備份的存儲位置稱為備份設備,包含備份媒體的磁帶機或磁盤驅(qū)動器兩種形式。(4)備份文件 (backup file)。存儲完整或部分數(shù)據(jù)庫、事務日志、文件和/或文件組備份的文件。11.2備份數(shù)據(jù)庫11.2.1 創(chuàng)建備份設備利用SQL Server Management Studio創(chuàng)建磁盤備份設備的步驟如下:(1)在對象資源管理器中,展開“服務器對象”選項,然后右擊“備份設備”。(2)在彈出的菜單中選擇“新建備份設備”命令,打開“備份設備”對話框,如圖.(3)若要確定目標位置,請單擊“文件”并指定該文件的完整路徑。然后輸入

20、設備名稱device1。(4)單擊“確定”按鈕,備份設備device1.bak創(chuàng)建成功。11.2備份數(shù)據(jù)庫11.2.1 創(chuàng)建備份設備備份設備由設備名標識。設備名可以是一個邏輯設備名或者一個物理設備名。一個磁盤設備的物理設備名是備份文件的路徑,如“F:sqlprogramBackupdevice1.bak ”。邏輯設備名是存儲在備份SQL Server中指向備份設備物理名的名稱。當一個連接設備名在備份語句中使用的時候,SQL Server將在系統(tǒng)目錄中搜尋相應的物理位置并在搜到的位置執(zhí)行備份。11.2備份數(shù)據(jù)庫11.2.1 創(chuàng)建備份設備也可以使用系統(tǒng)存儲過程sp_addumpdevice創(chuàng)建備份

21、設備。單擊圖11.2中的“腳本”按鈕,即可得到如下創(chuàng)建備份設備的代碼:USE masterGOEXEC master.dbo.sp_addumpdevice devtype = Ndisk, logicalname = Ndevice1, physicalname=N F:sqlprogramBackupdevice1.bak”GO11.2備份數(shù)據(jù)庫11.2.2 執(zhí)行完整數(shù)據(jù)庫備份1使用SQL Server Management Studio備份數(shù)據(jù)庫步驟如下:(1)在“對象資源管理器”窗口中選擇|“數(shù)據(jù)庫”| teaching。(2)右擊teaching,在彈出的快捷菜單里選擇“任務”|“備

22、份”命令,彈出如圖11.3所示的“備份數(shù)據(jù)庫”對話框。(3)在如圖11.3所示對話框里可以完成以下操作:選擇要備份的數(shù)據(jù)庫選擇要備份類型。設置備份集的信息。將數(shù)據(jù)庫備份到哪里:11.2備份數(shù)據(jù)庫11.2.2 執(zhí)行完整數(shù)據(jù)庫備份1使用SQL Server Management Studio備份數(shù)據(jù)庫步驟如下:(4)單擊“腳本”按鈕,即可獲得如下創(chuàng)建臨時設備文件的代碼:(5)單擊“確定”按鈕,開始數(shù)據(jù)庫備份數(shù)據(jù)庫teaching。(6)也可以單擊圖11.3界面“添加”按鈕添加備份路徑。在彈出的 “選擇備份目標”對話框中選擇“備份設備”下的device1。(7)若要查看或選擇高級選項,請在選擇“選項

23、”選項卡進行設計。然后單擊“確定”按鈕即可完成完整數(shù)據(jù)庫備份。11.2備份數(shù)據(jù)庫11.2.2 執(zhí)行完整數(shù)據(jù)庫備份1使用SQL Server Management Studio備份數(shù)據(jù)庫步驟如下:(8)查看備份文件。展開“對象資源管理器”窗口,右擊“服務器對象”|“備份設備”| device1,在彈出的菜單中選擇“屬性”命令。在彈出的“備份設備-device1”對話框中選擇“媒體內(nèi)容”選項卡,如圖11.5所示,即可觀察到teaching數(shù)據(jù)庫的完整備份文件“teaching完整備份”。11.2備份數(shù)據(jù)庫11.2.2 執(zhí)行完整數(shù)據(jù)庫備份2利用Transact-SQL語句創(chuàng)建完整數(shù)據(jù)庫備份完整數(shù)據(jù)庫

24、備份是通過BACKUP DATABASE語句來執(zhí)行的,其簡單語法形式如下:BACKUP DATABASE database_name | database_name_var TO ,.n WITH BLOCKSIZE = blocksize | blocksize_variable , DESCRIPTION = text | text_variable , DIFFERENTIAL , EXPIREDATE = date | date_var | RETAINDAYS = days | days_var , PASSWORD = password | password_variable ,

25、FORMAT | NOFORMAT , INIT | NOINIT , NOSKIP | SKIP , NOREWIND | REWIND , STATS = percentage , COPY_ONLY 11.2備份數(shù)據(jù)庫11.2.2 執(zhí)行完整數(shù)據(jù)庫備份例11.2創(chuàng)建邏輯設備名為nbac的備份設備,并執(zhí)行完整數(shù)據(jù)庫備份。程序代碼如下:Use masterGOExec sp_addumpdevice disk, nbac, F:sqlprogrambackupnbac.bakGOBACKUP DATABASE test01 TO disk=F:sqlprogrambackupnbac.bakG

26、O 11.2備份數(shù)據(jù)庫11.2.3 執(zhí)行差異數(shù)據(jù)庫備份差異備份只存儲在上一次完整備份之后發(fā)生改變的數(shù)據(jù)。當一些數(shù)據(jù)在上一次完整備份后被改變多次的時候,差異備份只存儲更改數(shù)據(jù)的最新版本。由于差異備份包括自上次完整備份以后的所有變化,因此為了還原差異備份,首先需要還原上一次的完整數(shù)據(jù)庫備份,然后只需應用最后一次差異備份,如圖11.7所示。先備份一個完整數(shù)據(jù)庫備份“完整備份1”,再備份2個差異備份,然后還可以再備份“完整備份2”。和完整數(shù)據(jù)庫備份一樣,差異備份包括部分的事務日志以恢復一致狀態(tài)。11.2備份數(shù)據(jù)庫11.2.3 執(zhí)行差異數(shù)據(jù)庫備份利用Transact-SQL語句創(chuàng)建差異備份的簡單語法格式

27、如下:BACKUP DATABASE database_name | database_name_ varTo ,nWITH ,DIFFERENTIAL例11.3 在備份設備nbac上為數(shù)據(jù)庫test01創(chuàng)建差異備份。程序代碼如下:Use masterGOBACKUP DATABASE test01 TO DISK = F:sqlprogrambackupnbac.bak WITH DIFFERENTIAL , EXPIREDATE = 10/01/2009 00:00:00, NAME = test01-差異備份, STATS = 10GO11.2備份數(shù)據(jù)庫11.2.4 執(zhí)行事務日志備份使用

28、事務日志備份的主要優(yōu)點如下:通過事務日志備份能夠?qū)?shù)據(jù)庫恢復到特定時間點。由于事務備份日志是日志實體的備份,即使是數(shù)據(jù)文件已被損壞,也能夠執(zhí)行事務日志備份。通過事務日志備份,數(shù)據(jù)庫可以恢復到錯誤發(fā)生前最后那個事務發(fā)生后的狀態(tài)。一個事務日志備份包括自從上次事務日志備份后發(fā)生的所有事務。完整數(shù)據(jù)庫備份可以在數(shù)據(jù)庫使用的非高峰期間進行,而事務日志備份則可以在預先規(guī)定好的白天某一時間進行。因此,所有事務日志備份都是需要完整數(shù)據(jù)庫備份的基礎上進行備份。11.2備份數(shù)據(jù)庫11.2.4 執(zhí)行事務日志備份在事務日志備份之間可以接受的時間周期取決于:在數(shù)據(jù)庫中發(fā)生的事務大小。對工作丟失的可接受程度。圖11.9描

29、繪了使用事務日志備份的備份策略??梢钥闯觯WC所有的備份可用是很重要的。如果完整數(shù)據(jù)庫備份或者其中任何一個事務日志備份丟失了,將不可能如愿以償?shù)剡€原數(shù)據(jù)庫。11.2備份數(shù)據(jù)庫11.2.4 執(zhí)行事務日志備份備份事務日志語法形式如下:BACKUP LOG database_name | database_name _varTo ,nWITH INIT | NOINIT在實際工作中,可以結(jié)合使用事務日志備份和差異備份實現(xiàn)組合備份策略。例11.4 創(chuàng)建備份test01數(shù)據(jù)庫的事務日志文件。程序代碼如下:Use masterGOBACKUP LOG test01 TO DISK = F:sqlprogr

30、ambackupnbac.bak WITH NOFORMAT, NOINIT, NAME = test01-事務日志備份, STATS = 10GO11.2備份數(shù)據(jù)庫11.2.5 執(zhí)行文件或文件組的備份 對超大型數(shù)據(jù)庫 (VLDB) 執(zhí)行完全數(shù)據(jù)庫備份是不現(xiàn)實的,可以執(zhí)行數(shù)據(jù)庫文件或者文件組備份。使用SQL Server Management Studio備份數(shù)據(jù)庫中的文件或文件組的步驟。(1)在對象資源管理器中,展開“數(shù)據(jù)庫”,右擊數(shù)據(jù)庫test01。在彈出的菜單中指向“任務”|“備份”,將彈出“備份數(shù)據(jù)庫”對話框。(2)在“數(shù)據(jù)庫”列表框中,選擇test01。也可以從列表中選擇其他數(shù)據(jù)庫。

31、并進行下列設置:在“備份類型”列表框中,選擇“完整”或“差異”。對于“備份組件”選項,請單擊“文件和文件組”。在彈出的“選擇文件組和文件”對話框中,選擇要備份的文件和文件組。11.2備份數(shù)據(jù)庫11.2.5 執(zhí)行文件或文件組的備份 使用SQL Server Management Studio備份數(shù)據(jù)庫中的文件或文件組的步驟。(3)在“備份集”輸入名稱文本框中“test01-完整文件組備份”,在“說明”文本框中,輸入備份集的說明。(4)指定備份集的過期時間。(5)選擇備份目標的類型。如:選擇F:sqlprogrambackup nbac.bak,如圖11.12所示。(6)若要查看或選擇高級選項,請

32、選擇“選項”選項卡進行設置。 (7)單擊“確定”按鈕完成文件或文件組備份。例11.5 創(chuàng)建teaching數(shù)據(jù)庫的文件組備份文件。程序代碼如下:USE masterGO BACKUP DATABASE teaching FILEGROUP = PRIMARY TO device1WITH NOFORMAT, NOINIT, NAME = teaching-完整文件組備份,STATS = 10GO 11.3 還原數(shù)據(jù)庫SQL Server 2005提供了兩種恢復過程,即自動恢復過程和手工恢復過程。(1)自動恢復。自動恢復是指SQL Server數(shù)據(jù)庫每次在出現(xiàn)錯誤或關(guān)機重啟之后SQL Serve

33、r會自動運行帶有容錯功能的特性。SQL Server用事務日志來完成這項任務。 (2)手動恢復。手動恢復數(shù)據(jù)庫需要指定數(shù)據(jù)庫恢復工作的應用程序和接下來的按照創(chuàng)建順序排列的事務日志的應用程序。完成這些之后,數(shù)據(jù)庫就會處于和事務日志最后一次備份時一致的狀態(tài) 11.3 還原數(shù)據(jù)庫11.3.1從完整數(shù)據(jù)庫備份還原 1在SQL Server Management Studio中還原數(shù)據(jù)庫在SQL Server Management Studio中還原數(shù)據(jù)庫的步驟如下:(1)啟動SQL Server Management Studio,在“對象資源管理器”窗口中,選擇“數(shù)據(jù)庫”| test01。右擊tes

34、t01數(shù)據(jù)庫,在彈出的快捷菜單里選擇“任務”|“還原”|“數(shù)據(jù)庫”命令,彈出如圖11.14所示的“還原數(shù)據(jù)庫”對話框。11.3 還原數(shù)據(jù)庫11.3.1從完整數(shù)據(jù)庫備份還原 1在SQL Server Management Studio中還原數(shù)據(jù)庫(2)不同的還原情況選擇不同的選擇項:目標數(shù)據(jù)庫目標時間點還原的源選擇用于還原的備份集:(3)設置完畢后,單擊“腳本”按鈕,可以得到參數(shù)豐富的代碼。腳本代碼如下:RESTORE DATABASE test01 FROM DISK = NF:sqlprogrambackupnbac.bak WITH FILE = 1, NOUNLOAD, STATS =

35、10GO(4)單擊“確定”按鈕完成還原操作。11.3 還原數(shù)據(jù)庫11.3.1從完整數(shù)據(jù)庫備份還原2使用Transact-SQL語句還原數(shù)據(jù)庫使用Transact-SQL語句還原完整數(shù)據(jù)庫簡單語法結(jié)構(gòu)如下:RESTORE DATABASE database_name | database_name_var FROM ,.n WITH CHECKSUM | NO_CHECKSUM , CONTINUE_AFTER_ERROR , FILE = file_number | file_number , MOVElogical_file_name TO operating_system_file_nam

36、e ,.n , PASSWORD = password | password_variable , RECOVERY | NORECOVERY | STANDBY = standby_file_name , REPLACE , RESTRICTED_USER , STATS = percentage , STOPAT = date_time | date_time_var |STOPBEFOREMARK = mark_name AFTER datetime ;11.3 還原數(shù)據(jù)庫11.3.2從差異數(shù)據(jù)庫備份還原從差異備份中還原數(shù)據(jù)庫時,SQL Server2005只還原數(shù)據(jù)庫中自最近的完整數(shù)據(jù)

37、庫備份以來的變化部分,在執(zhí)行此種恢復時,應注意以下幾點:在執(zhí)行從差異備份中恢復數(shù)據(jù)庫之前,應先從完整數(shù)據(jù)庫備份中恢復執(zhí)行從差異備份中恢復數(shù)據(jù)庫和完整數(shù)據(jù)庫備份中恢復的語法相同,不同點在于FROM子句中指定的備份文件不同當有事務日志需要還原時,可以指定NORECOVERY選項從差異備份中還原數(shù)據(jù)庫時的步驟與從完整數(shù)據(jù)庫備份還原數(shù)據(jù)庫的步驟相近,只是要求先還原一個完整備份之后,才能進行差異數(shù)據(jù)庫備份還原。11.3 還原數(shù)據(jù)庫11.3.3從事務日志備份還原從事務日志備份還原的Transact-SQL語句語法形式如下:RESTORE LOG database_name | database_name

38、_varFROM ,nWITH NORECOVERY | RECOVERY | STANDBY=undo_file_name,STOPAT=date_time | date_time _var,STOPBEFOREMARK=mark_name AFTER date_time例11.6 創(chuàng)建test01數(shù)據(jù)庫的完整數(shù)據(jù)庫備份、1次差異備份和1次事務日志備份,查詢備份信息,然后還原數(shù)據(jù)庫test01。程序代碼(略)11.3 還原數(shù)據(jù)庫11.3.4從文件或文件組的備份還原如果數(shù)據(jù)庫中的某個文件受損,還可以從文件或文件組備份恢復某個文件。(1)啟動SQL Server Management Studi

39、o,在“對象資源管理器”窗口中,選擇“數(shù)據(jù)庫”| teaching。在數(shù)據(jù)庫中添加文件aaaaaaaa并備份一次。(2)備份活動事務日志后,右擊teaching 數(shù)據(jù)庫,在彈出的快捷菜單里選擇“任務”|“還原”|“文件和文件組”命令,彈出“還原文件和文件組”對話框。(3)選擇要還原文件或文件組,如圖11.17所示。(4)單擊“按鈕”腳本,查看還原文件和文件組的腳本代碼 (5)單擊“確定”按鈕,備份完成。11.3 還原數(shù)據(jù)庫在SQL Server2005系統(tǒng)提供了靈活的備份和還原策略,在實踐過程中常用如下一些組合實現(xiàn)數(shù)據(jù)庫的備份和恢復。完整數(shù)據(jù)庫備份和恢復。完整+ 差異數(shù)據(jù)庫備份和恢復。完整+

40、事務日志的數(shù)據(jù)庫備份和恢復。文件或文件組+ 事務日志的數(shù)據(jù)庫備份和恢復11.4 還原受損的系統(tǒng)數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫如果受損,則SQL Server系統(tǒng)便無法正常工作。尤其是master數(shù)據(jù)庫被破壞了,SQL Server就會崩潰。因此,將這些系統(tǒng)數(shù)據(jù)庫進行備份以防系統(tǒng)錯誤是極其重要的。系統(tǒng)數(shù)據(jù)庫一般通過使用完整數(shù)據(jù)庫備份的簡單模式定期完成。由于這些數(shù)據(jù)庫表中的數(shù)據(jù)一般都保持不變,因此這是一種高效的備份策略。在對系統(tǒng)進行重大更新之后,包括創(chuàng)建數(shù)據(jù)庫、登錄名或者改變配置信息之后,需要進行額外的系統(tǒng)數(shù)據(jù)庫備份。11.4 還原受損的系統(tǒng)數(shù)據(jù)庫SQL Server 2005數(shù)據(jù)庫備份和還原的過程都在聯(lián)機狀態(tài)

41、下執(zhí)行。有兩種方式可以讓SQL Server啟動并運行。如果數(shù)據(jù)庫被破壞,但二進制文件(編譯過的執(zhí)行文件)并沒有受到影響,那么可以用SQL Server安裝程序來重建系統(tǒng)數(shù)據(jù)庫。如果整個系統(tǒng)都遭到破壞,則要使用安裝程序進行全新安裝。在系統(tǒng)故障之前安裝的所有服務包和補丁都需要重新安裝到新裝的系統(tǒng)上。安裝后的SQL Server啟動并運行后,但它依然缺乏有關(guān)用戶數(shù)據(jù)庫、登錄、作業(yè)、警告和配置的信息。為了校正這些錯誤,必須還原系統(tǒng)數(shù)據(jù)庫。11.4 還原受損的系統(tǒng)數(shù)據(jù)庫1還原master數(shù)據(jù)庫(1)備份master,msdb和model數(shù)據(jù)庫。啟動SQL Server Management Studi

42、o,在查詢編輯器中,輸入如下代碼并運行成功。-MASTER 數(shù)據(jù)庫備份BACKUP DATABASE MASTERTO DISK = F:sqlprogrambackupmaster.bakWITH INIT-MSDB 數(shù)據(jù)庫備份BACKUP DATABASE MSDBTO DISK = F:sqlprogrambackupmsdb.bakWITH INIT-MODEL 數(shù)據(jù)庫備份BACKUP DATABASE MODELTO DISK = F:sqlprogrambackupmodel.bakWITH INIT11.4 還原受損的系統(tǒng)數(shù)據(jù)庫1還原master數(shù)據(jù)庫(2)關(guān)閉SQL Server Management Studio和連接到SQL Server的所有程序。(3)打開“開始”|“所有程序”|Microsoft SQL Server 2005|“配置工具”|SQL Server Configuration Manager。(4)在SQL Server Configu

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論