第11章數(shù)據庫備份與還原_第1頁
第11章數(shù)據庫備份與還原_第2頁
第11章數(shù)據庫備份與還原_第3頁
第11章數(shù)據庫備份與還原_第4頁
第11章數(shù)據庫備份與還原_第5頁
已閱讀5頁,還剩72頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

SQLServer數(shù)據庫應用技術第11章數(shù)據庫備份與還原第11章數(shù)據庫備份與還原*

備份數(shù)據庫是DBA最重要的任務之一。DBA可以使用備份文件恢復還原數(shù)據庫,從而最大程度地減少災難損失。良好的備份和還原策略是保證數(shù)據庫安全運行的保證,是每個DBA都必須認真對待的任務。主要內容:備份和還原的基本概念、SQLServer2005數(shù)據庫的備份和還原技術與方法、備份和還原全文目錄、表數(shù)據的導入與導出等。目錄11.1備份與還原概述11.2數(shù)據庫備份11.3數(shù)據庫還原11.4備份與還原全文目錄11.5表與視圖的導入與導出練習題11上機實習1011.1備份與還原概述返回本節(jié)首頁11.1.1備份和還原的策略11.1.2恢復模式

11.1備份與還原概述返回本節(jié)首頁“備份”是數(shù)據的副本,用于在系統(tǒng)發(fā)生故障后還原和恢復數(shù)據。備份使您能夠在發(fā)生故障后還原數(shù)據,包括:媒體故障、用戶錯誤(例如,誤刪除了某個表或表中部分數(shù)據)、硬件故障(例如,磁盤驅動器損壞或服務器報廢)、自然災難等。數(shù)據庫備份對于例行的工作也很有用。例如,將數(shù)據庫從一臺服務器復制到另一臺服務器、設置數(shù)據庫鏡像、政府機構文件歸檔和災難恢復。通過備份一臺計算機上的數(shù)據庫,再將該數(shù)據庫還原到另一臺計算機上,可以快速容易地生成數(shù)據庫的副本。11.1備份與還原概述返回本節(jié)首頁圖11-1數(shù)據庫從完整備份中還原數(shù)據此示例說明備份和還原的最簡單形式:只將數(shù)據庫恢復到其最近一次的備份。備份點和故障點之間的所有更新將全部丟失。但是通過添加日志備份,通??蓪?shù)據庫還原到故障點,而不會丟失數(shù)據(如果使用的SQLServer版本支持時點恢復)。

11.1備份與還原概述返回本節(jié)首頁SQLServer有數(shù)據庫完整備份、差異備份、事務日志文件備份、文件及文件組備份等幾種形式,備份創(chuàng)建在備份設備上,如磁盤或磁帶媒體。SQLServer使用物理設備名稱或邏輯設備名稱標識備份設備。物理備份設備是操作系統(tǒng)用來標識備份設備的名稱,如C:\Backups\Accounting\Full.bak;邏輯備份設備是用來標識物理備份設備的別名或公用名稱。邏輯設備名稱永久地存儲在SQLServer內的系統(tǒng)表中。使用邏輯備份設備的優(yōu)點是引用它比引用物理設備名稱簡單。

執(zhí)行備份操作對運行中的事務影響很小,因此可以在正常操作過程中執(zhí)行備份操作。返回本節(jié)首頁設計良好的備份和還原策略可盡量提高數(shù)據的可用性及盡量減少數(shù)據丟失,并考慮到特定的業(yè)務要求。備份和還原策略包含備份部分和還原部分。備份策略定義備份的類型和頻率、它們所需硬件的特性和速度、測試備份的方法以及存儲備份媒體的位置和方法(包含安全注意事項)。還原策略為定義負責執(zhí)行還原的人員以及滿足數(shù)據庫可用性和盡量減少數(shù)據丟失目標的方法。記錄備份和還原過程并在運行手冊中保留文檔的副本。11.1.1備份和還原的策略返回本節(jié)首頁設計有效的備份和還原策略需要仔細計劃、實現(xiàn)和測試。需要考慮各種因素,包含:1)本組織對數(shù)據庫的生產目標,尤其是對可用性和防止數(shù)據丟失的要求;2)每個數(shù)據庫的特性,其大小、其使用模式、其內容特性及其數(shù)據要求等;3)對資源的約束,例如硬件、人員、存儲備份媒體的空間以及存儲媒體的物理安全性等。11.1.1備份和還原的策略返回本節(jié)首頁備份和還原操作是在“恢復模式”下進行的?;謴湍J绞且粋€數(shù)據庫屬性,它用于控制數(shù)據庫備份和還原操作基本行為。例如,恢復模式控制了將事務記錄在日志中的方式、事務日志是否需要備份以及可用的還原操作。新的數(shù)據庫可繼承model數(shù)據庫的恢復模式。11.1.2恢復模式返回本節(jié)首頁

1、恢復模式的優(yōu)點1)簡化了恢復計劃;2)簡化了備份和恢復過程;3)明確了系統(tǒng)操作要求之間的權衡;4)明確了可用性和恢復要求之間的權衡。

11.1.2恢復模式返回本節(jié)首頁2、恢復模式以下是可以選擇的三種恢復模式:簡單模式、完整模式大容量日志模式。11.1.2恢復模式返回本節(jié)首頁(1)簡單恢復模式:此模式簡略地記錄大多數(shù)事務,所記錄的信息只是為了確保在系統(tǒng)崩潰或還原數(shù)據備份之后數(shù)據庫的一致性。由于舊的事務已提交,已不再需要其日志,因而日志將被截斷。截斷日志將刪除備份和還原事務日志。沒有日志備份,數(shù)據庫只可恢復到最近的數(shù)據備份時間。該模式不支持還原單個數(shù)據頁。簡單恢復模式并不適合生產系統(tǒng),因為對生產系統(tǒng)而言,丟失最新的更改是無法接受的,建議使用完整恢復模式。11.1.2恢復模式返回本節(jié)首頁(2)完整恢復模式此模式完整地記錄了所有的事務,并保留所有的事務日志記錄,直到將它們備份。在SQLServerEnterpriseEdition中,完整恢復模式能使數(shù)據庫恢復到故障時間點(假定在故障發(fā)生之后備份了日志尾部)。11.1.2恢復模式返回本節(jié)首頁(3)大容量日志恢復模式此模式簡略地記錄大多數(shù)大容量操作(例如,索引創(chuàng)建和大容量加載),完整地記錄其它事務。大容量日志恢復提高大容量操作的性能,常用作完整恢復模式的補充。大容量日志恢復模式支持所有的恢復形式,但是有一些限制。11.1.2恢復模式返回本節(jié)首頁

3、恢復模式的選擇每種恢復模式(簡單恢復模式、完整恢復模式和大容量日志恢復模式)對可用性、性能、磁盤和磁帶空間以及防止數(shù)據丟失方面都有特別要求。根據所執(zhí)行的操作,可能存在多個適合的模式。選擇恢復模式時須在下列業(yè)務要求之間進行權衡:1)大規(guī)模操作(例如創(chuàng)建索引或大容量加載)的性能;2)數(shù)據丟失情況(例如已提交的事務丟失);3)事務日志的空間占用情況;4)備份和恢復的簡化。11.1.2恢復模式返回本節(jié)首頁表11-1三種恢復模式的優(yōu)點和影響模式優(yōu)點數(shù)據丟失情況能否恢復到時間點?簡單允許執(zhí)行高性能大容量復制操作?;厥杖罩究臻g以使空間要求較小。必須重做自最新數(shù)據庫或差異備份后所做的更改??梢曰謴偷饺魏蝹浞莸慕Y尾。隨后必須重做更改。完整數(shù)據文件丟失或損壞不會導致丟失工作。可以恢復到任意時間點(例如應用程序或用戶錯誤之前)。正常情況下沒有。如果日志損壞,則必須重做自最新日志備份后所做的更改??梢曰謴偷饺魏螘r間點。大容量日志允許執(zhí)行高性能大容量復制操作。大容量操作使用的最小日志空間。如果日志損壞或自最新日志備份后執(zhí)行了大容量操作,則必須重做自上次備份后所做的更改。否則不丟失任何工作??梢曰謴偷饺魏蝹浞莸慕Y尾。隨后必須重做更改。11.1.2恢復模式返回本節(jié)首頁

4、指定數(shù)據庫的恢復模式(1)在ManagementStudio中查看或更改數(shù)據庫的恢復模式,11.1.2恢復模式返回本節(jié)首頁

4、指定數(shù)據庫的恢復模式(2)利用ALTERDATABASE設置數(shù)據庫的恢復模式例11-1本例設置AdventureWorks示例數(shù)據庫的恢復模式。

USEmaster;ALTERDATABASEAdventureWorksSETRECOVERYFULL--完整模式11.1.2恢復模式11.2數(shù)據庫備份返回本節(jié)首頁11.2.1使用ManagementStudio創(chuàng)建完整備份11.2.2使用ManagementStudio創(chuàng)建完整差異備份11.2.3使用ManagementStudio創(chuàng)建事務日志備份11.2.4使用ManagementStudio創(chuàng)建文件和文件組備份11.2.5BACKUP命令

11.2數(shù)據庫備份返回本節(jié)首頁數(shù)據庫備份易于使用并且適用于所有數(shù)據庫,與恢復模式無關。數(shù)據庫備份包括完整備份和完整差異備份。完整備份包含數(shù)據庫中的所有數(shù)據,并且可以用作完整差異備份所基于的“基準備份”。完整差異備份僅記錄自前一完整備份后發(fā)生更改的數(shù)據擴展盤區(qū)數(shù)。與完整備份相比,完整差異備份較小且速度較快,便于進行較頻繁的備份,同時降低丟失數(shù)據的風險。11.2數(shù)據庫備份返回本節(jié)首頁創(chuàng)建正確的備份對成功執(zhí)行備份并還原策略非常重要。在備份過程中,SQLServer將數(shù)據從數(shù)據庫文件直接復制到備份設備中。您的數(shù)據不會改變,并且備份過程中運行的事務也決不會延遲??梢栽谕瓿缮a工作負荷的同時執(zhí)行SQLServer備份,這只會對工作負荷造成很小的影響。備份吞吐量由基礎I/O設備的速度決定。若要實現(xiàn)最高傳輸速率,備份應按順序讀取。如果I/O系統(tǒng)能夠支持生產工作負荷和備份的I/O組合,備份將執(zhí)行得非常快,而系統(tǒng)的效率卻非常低。返回本節(jié)首頁使用ManagementStudio創(chuàng)建完整備份過程如下(略):創(chuàng)建完整差異備份需要具有上一個完整備份。如果選定的數(shù)據庫從未進行備份,則必須先執(zhí)行一次完整備份才能創(chuàng)建差異備份。創(chuàng)建完整差異備份的操作過程與創(chuàng)建完整備份的操作過程相同11.2.1使用ManagementStudio

創(chuàng)建完整備份11.2.1使用ManagementStudio

創(chuàng)建完整備份返回本節(jié)首頁完整恢復模式和大容量日志恢復模式:都應備份事務日志。創(chuàng)建事務日志備份的操作過程與創(chuàng)建完整備份的操作過程也基本相同,主要的不同是:在“備份類型”列表框中,選擇“事務日志”而非“完整”。另外,在“事務日志”區(qū)域中還需選定:1)對于例行的日志備份,請保留默認選項“通過刪除不活動的條目截斷事務日志”;2)若要備份日志尾部(即活動的日志),請選中“備份日志尾部,并使數(shù)據庫處于還原狀態(tài)”。選擇此選項等效于在T-SQLBACKUPLOG語句中指定NORECOVERY選項。11.2.3使用ManagementStudio

創(chuàng)建事務日志備份返回本節(jié)首頁文件和文件組完整備份僅適用于包含多個文件組的數(shù)據庫。在簡單恢復模式下,僅適用于包含只讀文件組的數(shù)據庫。完整文件備份備份一個或多個完整的文件,相當于完整備份。優(yōu)點是:文件或文件組備份能夠更快地從隔離的媒體故障中恢復??梢匝杆龠€原損壞的文件。可以同時創(chuàng)建文件和事務日志備份。文件備份增加了計劃和媒體處理的靈活性,增加了文件或文件組備份的靈活性,對于包含具有不同更新特征的數(shù)據的大型數(shù)據庫也很有用。11.2.4使用ManagementStudio創(chuàng)建文件和文件組備份返回本節(jié)首頁文件備份也有缺點主要是管理較復雜。如果某個損壞的文件未備份,那么媒體故障可能會導致無法恢復整個數(shù)據庫。必須維護完整的文件備份,包括完整恢復模式的文件備份和日志備份。維護和跟蹤這些完整備份是一種耗時的任務,所需空間可能會超過完整數(shù)據庫備份的所需空間。若要以增加管理復雜性為代價來減少恢復時間,請考慮使用文件差異備份。創(chuàng)建文件和文件組完整備份的操作過程與創(chuàng)建完整備份的操作過程也基本相同,主要的不同是:1)在“備份類型”列表框中,選擇完全或差異。2)對于“備份組件”選項,請單擊文件和文件組。11.2.4使用ManagementStudio創(chuàng)建文件和文件組備份返回本節(jié)首頁BACKUPDATABASE{database_name|@database_name_var}TO<backup_device>[,...n][[MIRRORTO<backup_device>[,...n]][...next-mirror]][WITH……(省略)][;]--備份整個數(shù)據庫BACKUPDATABASE{database_name|@database_name_var}<file_or_filegroup>[,...n]TO<backup_device>[,...n]--備份文件或文件組BACKUPLOG{database_name|@database_name_var}{TO<backup_device>[,...n][[MIRRORTO<backup_device>[,...n]][...next-mirror]]--備份日志BACKUPLOG{database_name|@database_name_var}{WITH{NO_LOG|TRUNCATE_ONLY}]}--截去日志11.2.5BACKUP命令返回本節(jié)首頁執(zhí)行BACKUPDATABASE語句來創(chuàng)建完整備份,同時需要指定:1)要備份的數(shù)據庫的名稱;2)寫入完整備份的備份設備;3)還可以指定:①INIT子句,通過它可以改寫備份媒體,并在備份媒體上將該備份作為第一個文件寫入。②SKIP和INIT子句,用于重寫備份媒體,即使備份媒體中的備份未過期,或其名稱與備份媒體中的名稱不匹配也重寫。③FORMAT子句,第一次使用媒體時對備份媒體進行初始化,并覆蓋任何現(xiàn)有的媒體標頭,有則不需要INIT字句。11.2.5BACKUP命令返回本節(jié)首頁例11-2備份到磁盤設備,本例將把整個AdventureWorks數(shù)據庫備份到磁盤上,并使用FORMAT創(chuàng)建一個新的媒體集'C:\AdventureWorks.Bak':USEAdventureWorks;BACKUPDATABASEAdventureWorksTODISK='C:\MSSQL\BACKUP\AdventureWorks.Bak'WITHFORMAT,NAME='FullBackupofAdventureWorks'GO11.2.5BACKUP命令返回本節(jié)首頁USEmaster--可選地,也可以為這備份文件創(chuàng)建一個邏輯設備名AdventureWorks_Backup:EXECsp_addumpdevice'disk','AdventureWorks_Backup','C:\MSSQL\BACKUP\AdventureWorks.Bak‘--說明:定義轉儲設備的語法格式如下:sp_addumpdevice[@devtype=]'device_type',[@logicalname=]'logical_name',[@physicalname=]'physical_name',{[@cntrltype=]controller_type|[@devstatus=]'device_status'}]11.2.5BACKUP命令返回本節(jié)首頁例11-3備份到磁帶設備,本例將把整個MyAdvWorks數(shù)據庫備份到磁帶。USEMyAdvWorks;BACKUPDATABASEMyAdvWorksTOTAPE='\\.\Tape0'WITHFORMAT,NAME='FullBackupofMyAdvWorks‘USEmaster--可選地,也可以為這備份磁帶創(chuàng)建一個邏輯設備名AdventureWorks_Backup:EXECsp_addumpdevice'tape','MyAdvWorks_Bak','\\.\tape0‘11.2.5BACKUP命令返回本節(jié)首頁例11-4備份整個AdventureWorks數(shù)據庫,本例將創(chuàng)建用于存放AdventureWorks數(shù)據庫完整備份的邏輯備份設備AdvWorksData。USEmaster--為備份AdventureWorks創(chuàng)建邏輯設備名EXECsp_addumpdevice'disk','AdvWorksData','C:\ProgramFiles\MicrosoftSQLServer\MSSQL.1\MSSQL\BACKUP\AdvWorksData.bak‘BACKUPDATABASEAdventureWorksTOAdvWorksData--完整備份AdventureWorks數(shù)據庫11.2.5BACKUP命令11.3數(shù)據庫還原返回本節(jié)首頁11.3.1還原完整備份11.3.2使用ManagementStudio還原事務日志備份11.3.3RESTORE命令11.3數(shù)據庫還原返回本節(jié)首頁數(shù)據庫還原方案是從一個或多個備份中還原數(shù)據并在還原最后一個備份后恢復數(shù)據庫的過程。使用還原方案可以還原下列某個級別的數(shù)據:數(shù)據庫、數(shù)據文件和數(shù)據頁。每個級別的影響如下:

1)數(shù)據庫級別:還原和恢復整個數(shù)據庫,并且數(shù)據庫在還原和恢復操作期間處于離線狀態(tài)。

2)數(shù)據文件級別:還原和恢復一個數(shù)據文件或一組文件。在文件還原過程中,包含相應文件的文件組在還原過程中自動變?yōu)殡x線狀態(tài)。訪問離線文件組的任何嘗試都會導致錯誤。

3)數(shù)據頁級別:可以對任何數(shù)據庫進行頁面還原,而不管文件組數(shù)為多少。11.3數(shù)據庫還原返回本節(jié)首頁數(shù)據庫還原方案一般分為:簡單恢復模式下的還原方案與完整恢復模式下的還原方案(適用于完整恢復模式和大容量日志恢復模式)兩種。返回本節(jié)首頁1、還原完整備份的一般方法還原完整備份是指用備份完成時數(shù)據庫中包含的所有文件重新創(chuàng)建數(shù)據庫。通常,將數(shù)據庫恢復到故障點分為下列基本步驟:備份活動事務日志(稱為日志尾部)。此操作將創(chuàng)建尾日志備份。如果活動事務日志不可用,則該日志部分的所有事務都將丟失;還原最新的完整備份但不恢復數(shù)據庫(WITHNORECOVERY);如果存在差異備份,則還原最新的差異備份,而不恢復數(shù)據庫(WITHNORECOVERY);11.3.1還原完整備份返回本節(jié)首頁4)從還原備份后創(chuàng)建的第一個事務日志備份開始,使用NORECOVERY依次還原日志;5)恢復數(shù)據庫(RESTOREDATABASE<database_name>WITHRECOVERY)。此步驟也可以與還原上一次日志備份結合使用;6)數(shù)據庫完整還原通??梢曰謴偷饺罩緜浞葜械哪骋粫r間點或標記的事務。但是,在大容量日志恢復模式下,如果日志備份包含大容量更改,則不能進行時點恢復。11.3.1還原完整備份返回本節(jié)首頁還原整個數(shù)據庫(完整恢復模式)時,應當使用單一還原順序。還原順序由一個或多個還原操作組成,這些還原操作通過一個或多個還原階段來移動數(shù)據。數(shù)據庫將還原并前滾。數(shù)據庫差異用于減少前滾時間。此還原順序用于避免丟失工作;上次還原的備份為尾日志備份。11.3.1還原完整備份返回本節(jié)首頁RESTOREDATABASE<database>FROM<fullbackup>WITHNORECOVERY

RESTOREDATABASE<database>FROM<full_differential_backup>WITHNORECOVERY

RESTORELOG<database>FROM<log_backup>WITHNORECOVERY

RESTORELOG<database>FROM<tail_logbackup>WITHRECOVERY11.3.1還原完整備份返回本節(jié)首頁例11-10本例說明:如何創(chuàng)建AdventureWorks

數(shù)據庫的完整備份、純日志備份和尾日志備份如何按順序還原這些備份。還原尾日志備份后,在單獨的步驟中恢復數(shù)據庫。在此示例中,AdventureWorks

數(shù)據庫臨時設置為使用完整恢復模式。11.3.1還原完整備份返回本節(jié)首頁USEmaster;ALTERDATABASEAdventureWorksSETRECOVERYFULL;GO--以下為完整數(shù)據庫備份創(chuàng)建邏輯備份設備EXECsp_addumpdevice'disk','MyAdvWorks_FullRM','C:\ProgramFiles\MicrosoftSQLServer\MSSQL.1\MSSQL\BACKUP\MyAdvWorks_FullRM.bak';GO--以下創(chuàng)建完整備份BACKUPDATABASEAdventureWorksTOMyAdvWorks_FullRMWITHFORMAT;GO--以下創(chuàng)建純日志備份到備份文件BACKUPLOGAdventureWorksTOMyAdvWorks_FullRM;GO--以下創(chuàng)建尾日志備份BACKUPLOGAdventureWorksTOMyAdvWorks_FullRMWITHNORECOVERY;GO11.3.1還原完整備份返回本節(jié)首頁--從備份集1中還原完整備份RESTOREDATABASEAdventureWorksFROMMyAdvWorks_FullRMWITHNORECOVERY;--從備份集2中還原純日志備份RESTORELOGAdventureWorksFROMMyAdvWorks_FullRMWITHFILE=2,NORECOVERY;--從備份集3中還原尾日志備份RESTORELOGAdventureWorksFROMMyAdvWorks_FullRMWITHFILE=3,NORECOVERY;GORESTOREDATABASEAdventureWorksWITHRECOVERY;--恢復整個數(shù)據庫GO11.3.1還原完整備份返回本節(jié)首頁2、使用ManagementStudio還原完整備份在完整恢復模式或大容量日志恢復模式下,必須先備份活動事務日志(稱為日志尾部),然后才能在ManagementStudio中還原數(shù)據庫。尾日志備份是使數(shù)據庫處于還原狀態(tài)的一種日志備份。通常會在失敗之后進行尾日志備份來備份日志尾部,以防丟失工作。11.3.1還原完整備份返回本節(jié)首頁一般的還原過程需要在“還原數(shù)據庫”對話框中同時選擇日志備份以及數(shù)據和差異備份。備份必須按照其創(chuàng)建順序進行還原。在還原給定的事務日志之前,必須已經還原下列備份,但不用回滾未提交的事務:事務日志備份之前的完整備份和差異備份(如果存在);在完整備份和現(xiàn)在要還原的事務日志之間所做的全部事務日志備份(如果存在)。11.3.2使用ManagementStudio

還原事務日志備份返回本節(jié)首頁利用RESTORE命令還原使用BACKUP命令所做的備份。使用此命令您可以實現(xiàn)以下操作:1)基于完整備份還原整個數(shù)據庫(完整還原);2)還原數(shù)據庫的一部分(部分還原);3)將特定文件、文件組或頁面還原到數(shù)據庫(文件還原或頁面還原);4)將事務日志還原到數(shù)據庫(事務日志還原);5)將數(shù)據庫恢復到數(shù)據庫快照捕獲的時間點。

11.3.3RESTORE命令返回本節(jié)首頁表11-2還原方案和RESTORE語句之間的關系還原類別語句操作數(shù)據庫完整還原RESTOREDATABASE<數(shù)據庫名稱>...WITHNORECOVERY...復制備份中的所有數(shù)據,如果備份包含日志,還會前滾數(shù)據庫。文件還原RESTOREDATABASE<數(shù)據庫名稱><文件或文件組>[n]...WITHNORECOVERY...僅從備份復制指定的文件或文件組,如果備份包含日志,則前滾數(shù)據庫。頁面還原RESTOREDATABASE<數(shù)據庫名稱>PAGE='文件:頁[,...p]'...WITHNORECOVERY...僅從備份中復制指定的頁,如果某個頁的備份包含日志,還會前滾數(shù)據庫。段落還原RESTOREDATABASE<數(shù)據庫>[<文件組>[n]]...WITHPARTIAL,NORECOVERY...復制主文件組以及指定的文件組或組,如果備份包含日志,則前滾數(shù)據庫。注意如果未指定任何文件組,則還原備份集的所有內容。用于恢復數(shù)據庫的日志還原RESTORELOG<數(shù)據庫名稱>...WITHRECOVERY...還原日志備份并使用該日志前滾數(shù)據庫。11.3.3RESTORE命令返回本節(jié)首頁RESTOREDATABASE{database_name|@database_name_var}[FROM<backup_device>[,...n]][WITH[{CHECKSUM|NO_CHECKSUM}][WITH……(省略)][;]RESTOREDATABASE{database_name|@database_name_var}<files_or_filegroups>[FROM<backup_device>[,...n]]--恢復部分數(shù)據庫RESTOREDATABASE{database_name|@database_name_var}<file_or_filegroup_or_pages>[,...f][FROM<backup_device>[,...n]]--恢復文件、文件組或頁RESTORELOG{database_name|@database_name_var}[<file_or_filegroup_or_pages>[,...f]][FROM<backup_device>[,...n]]--恢復事務日志11.3.3RESTORE命令返回本節(jié)首頁例11-11還原完整數(shù)據庫,MyAdvWorks數(shù)據庫僅供舉例說明。RESTOREDATABASEMyAdvWorksFROMMyAdvWorks_1例11-12還原完整數(shù)據庫備份和差異備份,本例還原完整數(shù)據庫備份后還原差異備份。另外,以下示例還說明如何還原媒體上的另一個備份集。差異備份追加到包含完整數(shù)據庫備份的備份設備上。RESTOREDATABASEMyAdvWorksFROMMyAdvWorks_1WITHNORECOVERYRESTOREDATABASEMyAdvWorksFROMMyAdvWorks_1WITHFILE=211.3.3RESTORE命令返回本節(jié)首頁例11-13使用RESTART語法還原數(shù)據庫,本例使用RESTART選項重新啟動因服務器電源故障而中斷的RESTORE操作。RESTOREDATABASEMyAdvWorksFROMMyAdvWorks_1--電源故障而中斷的RESTORERESTOREDATABASEMyAdvWorksFROMMyAdvWorks_1WITHRESTART--重新啟動11.3.3RESTORE命令返回本節(jié)首頁例11-14還原數(shù)據庫并移動文件,本例還原完整數(shù)據庫和事務日志,并將已還原的數(shù)據庫移動到C:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data目錄下。RESTOREDATABASEMyAdvWorksFROMMyAdvWorks_1WITHNORECOVERY,MOVE'MyAdvWorks'TO'c:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\NewAdvWorks.mdf',MOVE'MyAdvWorksLog1'TO'c:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\NewAdvWorks.ldf'RESTORELOGMyAdvWorksFROMMyAdvWorksLog1WITHRECOVERY11.3.3RESTORE命令返回本節(jié)首頁例11-15使用BACKUP和RESTORE語句創(chuàng)建AdventureWorks數(shù)據庫的副本。MOVE語句使數(shù)據和日志文件還原到指定的位置。RESTOREFILELISTONLY語句用于確定待還原數(shù)據庫內的文件數(shù)及名稱。該數(shù)據庫的新副本稱為TestDB。BACKUPDATABASEAdventureWorksTODISK='C:\AdventureWorks.bak'RESTOREFILELISTONLYFROMDISK='C:\AdventureWorks.bak'RESTOREDATABASETestDBFROMDISK='C:\AdventureWorks.bak'WITHMOVE'AdventureWorks_Data'TO'C:\testdb.mdf',MOVE'AdventureWorks_Log'TO'C:\testdb.ldf‘11.3.3RESTORE命令返回本節(jié)首頁例11-16使用STOPAT語法還原到時間點和使用多個設備進行還原,本例將數(shù)據庫還原到它在2006年4月25日中午12點時的狀態(tài),并顯示涉及多個日志和多個備份設備的還原操作。RESTOREDATABASEMyAdvWorksFROMMyAdvWorks_1,MyAdvWorks_2WITHNORECOVERY,STOPAT='Apr25,200612:00AM'RESTORELOGMyAdvWorksFROMMyAdvWorksLog1WITHNORECOVERY,STOPAT='Apr25,200612:00AM'RESTORELOGMyAdvWorksFROMMyAdvWorksLog2WITHRECOVERY,STOPAT='Apr25,200612:00AM'11.3.3RESTORE命令11.4備份與還原全文目錄返回本節(jié)首頁1、使用BACKUP語句備份全文目錄每個全文目錄均被當作一個文件處理,并將包括在已備份的數(shù)據庫文件集中。在備份過程中,不會刪除或添加全文目錄。通常情況下,SQLServer會在BACKUP操作中執(zhí)行下列任務:暫時掛起,MicrosoftFull-TextEngineforSQLServer(MSFTESQL)服務,并將對全文目錄所做的所有掛起的更改刷新到磁盤。此外,SQLServer還會停止對目錄的所有寫活動,并在備份之初將所有尚未處理的更改排隊到通知日志中,以便在備份完成后將這些更改提交給全文目錄。磁盤上的目錄狀態(tài)保持不變。此時仍然可以查詢該目錄。備份所有表、全文目錄數(shù)據、更改跟蹤日志以及元數(shù)據。備份自開始備份以來事務日志中出現(xiàn)的所有數(shù)據?;謴蚆SFTESQL服務并填充全文索引。備份完全文目錄之后,SQLServer將啟動MSFTESQL服務,提交通知日志中排隊的更新,然后恢復正常操作。11.4備份與還原全文目錄返回本節(jié)首頁2、差異備份若要備份自上次完整備份以來對數(shù)據庫數(shù)據和全文目錄所做的更改,請在BACKUP命令中指定WITHDIFFERENTIAL。例11-21以下語句備份自上次完整備份以來對數(shù)據庫數(shù)據(包括全文目錄)所做的更改。BACKUPDATABASEdatabase_nameTObackup_deviceWITHDIFFERENTIALFAT32文件系統(tǒng)不支持對全文目錄進行差異備份。11.4備份與還原全文目錄返回本節(jié)首頁3、全文目錄的文件備份若要只備份全文目錄(而不備份數(shù)據庫數(shù)據),請在BACKUP命令中指定FILE子句。例11-22以下語句只備份全文目錄fulltext_cat。BACKUPDATABASEdatabase_nameFILE='sysft_fulltext_cat'TObackup_device例11-23以下語句只備份文件組fulltext_catFG。BACKUPDATABASEdatabase_nameFILEGROUP='fulltext_catFG'TObackup_device11.4備份與還原全文目錄返回本節(jié)首頁4、全文目錄的差異文件備份,若要只備份對全文目錄所做的更改,請在BACKUP命令中指定FILE子句和WITHDIFFERENTIAL。例11-24以下語句備份自上次完整備份以來對全文目錄fulltext_cat所做的更改。BACKUPDATABASEdatabase_nameFILE='sysft_fulltext_cat'TObackup_deviceWITHDIFFERENTIAL例11-25以下語句備份自上次完整備份以來對存儲在文件組fulltext_catFG中的所有全文目錄所做的更改。BACKUPDATABASEdatabase_nameFILEGROUP='fulltext_catFG'TObackup_deviceWITHDIFFERENTIAL11.4備份與還原全文目錄返回本節(jié)首頁5、若要還原全文目錄RESTOREDATABASEdatabase_nameFROMbackup_device發(fā)出此命令后,將從備份數(shù)據(包括全文目錄數(shù)據)所在的磁盤位置還原數(shù)據。11.4備份與還原全文目錄返回本節(jié)首頁6、還原到替代位置若要為全文目錄的根路徑指定替代位置,請在RESTORE命令中指定WITHMOVE。例11-26以下語句會將全文目錄fulltext_cat還原到F:\FtCat目錄中。RESTOREDATABASEAdventureWorksFROMbackup_deviceWITHMOVE'sysft_fulltext_cat'TO'F:\FtCat’11.4備份與還原全文目錄返回本節(jié)首頁7、還原全文目錄的差異備份若要還原全文目錄和數(shù)據庫數(shù)據的差異備份,請執(zhí)行兩步還原操作:先進行完整還原,再進行差異還原。第二步還原只更新在完整備份與差異備份之間改變過的數(shù)據庫區(qū)。RESTOREDATABASEAdventureWorksFROMbackup_deviceWITHNORECOVERYRESTOREDATABASEAdventureWorksFROMbackup_device2FILE='sysft_fulltext_cat‘在此方案中,數(shù)據庫在兩步還原操作之間將保持離線且MicrosoftSearch將停止運行。只有當?shù)诙竭€原完成后,它們才會恢復在線。還可以還原文件和文件組的差異備份。11.4備份與還原全文目錄返回本節(jié)首頁8、還原全文目錄的文件備份若要還原全文目錄的文件備份和文件組備份,請在RESTORE命令中指定FILE或FILEGROUP子句。RESTOREDATABASEAdventureWorksFILE='sysft_fulltext_cat'FROMbackup_device--或--RESTOREDATABASEAdventureWorksFILEGROUP='fulltext_catFG'FROMbackup_device注意:在還原事務日志備份時,全文索引可能會處于不一致狀態(tài)。若要使全文索引恢復為一致狀態(tài),需要執(zhí)行一次完全爬網。11.5表與視圖的導入與導出返回本節(jié)首頁11.5.1表與視圖的導入與導出操作11.5.2SQLServer的復制功能11.5.3SQLServer的其它數(shù)據移動方法

返回本節(jié)首頁啟動導入或導出功能:在ManagementStudio的對象資源管理器中,選擇某數(shù)據庫,鼠標右鍵彈出的快捷菜單中“任務”->選擇“導入數(shù)據”或“導出數(shù)據”菜單即可。導入與導出數(shù)據的過程是類似的,不同處為數(shù)據源與數(shù)據目的的指定不同,數(shù)據復制的方向不同,導入往往是指從其它數(shù)據源復制到本數(shù)據庫(作為數(shù)據目的),導出往往是指從本數(shù)據庫(作為數(shù)據源)復制到其它數(shù)據源。導入與導出是相對的,也就是說導入能完成導出功能,導出也能完成導入功能,關鍵在于指定什么樣的數(shù)據源與數(shù)據目的。在數(shù)據源與數(shù)據目的均指定非SQLServer數(shù)據庫時,導入或導出還能實現(xiàn)非SQLServer數(shù)據源間的數(shù)據復制,如ACCESS數(shù)據庫間,ACCESS數(shù)據庫與Excel數(shù)據表間等的數(shù)據復制。11.5.1表與視圖的導入與導出操作返回本節(jié)首頁

SQLServer提供了強大的數(shù)據復制功能,通過復制數(shù)據庫向導可以在不同服務器之間輕松移動或復制數(shù)據庫及其對象(在服務器不停機的情況下)??梢詮椭脐P聯(lián)的元數(shù)據,如,master數(shù)據庫中的登錄名和對象,復制的數(shù)據庫需要這些登錄名和對象。不能通過復制數(shù)據庫向導來復制或移動model數(shù)據庫、msdb

數(shù)據庫和master數(shù)據庫。11.5.2SQLServer的復制功能返回本節(jié)首頁復制數(shù)據庫說明幾點:1)model、msdb和master:不能通過復制數(shù)據庫向導復制或移動model數(shù)據庫、msdb數(shù)據庫和master數(shù)據庫;2)全文目錄:SQL管理對象方法可移動全文目錄。移動后,必須重新啟動索引填充。如果使用的是分離和附加方法,則必須手動移動全文目錄;3)源服務器上的數(shù)據庫:當在不同的服務器或磁盤驅動器之間移動數(shù)據庫時,復制數(shù)據庫向導將把數(shù)據庫復制到目標服務器,并驗證其是否在線。4)使用復制數(shù)據庫向導升級至SQLServer2005。11.5.2SQLServer的復制功能返回本節(jié)首頁1、利用Bcp工具這種工具雖然在SQLServer7的版本中不推薦使用,但許多數(shù)據庫管理員仍很喜歡用它,尤其是用過SQLServer早期版本的人。Bcp有局限性,首先它的界面不是圖形化的,其次它只是在SQLServer的表(視圖)與文本文件之間進行復制,但它的優(yōu)點是性能好,開銷小,占用內存少,速度快。11.5.3SQLServer的其它數(shù)據移動方法

返回本節(jié)首頁2、利用備份和恢復先對源數(shù)據庫進行完整備份,備份到一個設備(device)上,然后把備份文件復制到目的服務器上(恢復的速度快),進行數(shù)據庫的恢復操作,在恢復的數(shù)據庫名中填上源數(shù)據庫的名字(名字必須相同),選擇強制型恢復(可以覆蓋以前數(shù)據庫的選項),在選擇從設備中進行恢復,瀏覽時選中備份的文件就行了。這種方法可以完全恢復數(shù)據庫,包括外鍵,主鍵,索引。11.5.3SQLServer的其它數(shù)據移動方法

返回本節(jié)首頁3、直接拷貝數(shù)據文件直接COPY數(shù)據庫數(shù)據與日志文件,在目的數(shù)據庫系統(tǒng)中利用sp_attach_db將數(shù)據庫附加到服務器在目的服務器查詢窗口中用語句進行恢復:EXECsp_attach_db@dbname='test',@filename1='c:\test_data.mdf',@filename2='c:\test_log.ldf'這樣就把test數(shù)據庫附加到SQLServer中,可以照常使用。如果不想用原來的日志文件,可以用如下的命令:EXECsp_attach_single_file_db@dbname='test',--單文件附加數(shù)據庫@physname='c:\test_data.mdf'11.5.3SQLServer的其它數(shù)據移動方法

返回本節(jié)首頁4、編程序式數(shù)據移動、備份與恢復可以在應用程序(PB、VB)中執(zhí)行自己編寫的程序,也可以在QueryAnalyzer中執(zhí)行,這種方法比較靈活,其實是在某平臺上連接到數(shù)據庫,利用SQL語句實現(xiàn)數(shù)據操作,這種方法對數(shù)據庫的影響小,但是如果用到遠程鏈接服務器,要求網絡之間的傳輸性能好,一般主要使用兩種語句:

1>onew_tablenamewhere...2>insert(into)old_tablenameselect...from...where...區(qū)別是前者把數(shù)據插入一個新表(先建立表,再插入數(shù)據),后者是把數(shù)據插入已經存在的一個表中。11.5.3SQLServer的其它數(shù)據移動方法

返回本節(jié)首頁5、從某個OLEDB提供程序中選擇數(shù)據,并將數(shù)據從外部數(shù)據源復制到SQLServer實例,詳細略。

6、使用分布式查詢從另一個數(shù)據源中選擇數(shù)據并指定要插入的數(shù)據,詳細略。

7、使用BULKinsert語句將數(shù)據從數(shù)據文件導入到SQLServer實例。例11-27從c:\sc.txt導入數(shù)據到SC表

bulkinsertjxgl.dbo.scfrom'c:\sc.txt'with(FIELDTERMINAtoR=',',ROWTERMINAtoR='|\n')11.5.3SQLServer的其它數(shù)據移動方法

練習題11

返回本節(jié)首頁一、填空題1、SQLServer數(shù)據庫備份的設備類型包括:________、________和________。2、SQLServer數(shù)據庫恢復模式有三種類型,它們分別是______、______和______。3、完整恢復模式下的備份可以分為三類,它們分別是_______、_______和_______。二、選擇題1、下列關于數(shù)據庫備份的敘述錯誤的是:_____。A、如果數(shù)據庫很穩(wěn)定就不需要經常做備份,反之要經常做備份以防數(shù)據庫損壞B、數(shù)據庫備份是一項很復雜的任務,應該由專業(yè)的管理人員來完成C、數(shù)據庫備份也受到數(shù)據庫恢復模式的制約D、數(shù)據庫備份策略的選擇應該綜合考慮各方面因素,并不是備份做得越多越全就越好2、關于SQLServer2005的恢復模式敘述正確的是:______。A、簡單恢復模式支持所有的文件恢復B、大容量日志模式不支持時間點恢復C、完全恢復模式是最好的安全模式D、一個數(shù)據庫系統(tǒng)中最好是用一種恢復模式,以避免管理的復雜性三、簡答題1、數(shù)據庫備份和還原的概念和作用是什么?2、什么是備份?備份分為哪幾種類型?3、確定備份計劃應該考慮哪些因素?4、進行數(shù)據庫恢復應該注意哪幾點?5、數(shù)據庫故障有哪幾類?6、什么是物理備份設備和邏輯備份設備?它們的區(qū)別是什么?7、數(shù)據庫導入和導出的概念和作用是什么?它是否具有備份和還原作用?請說明。上機實習10

返回本節(jié)首頁實驗目的1)了解SQLServer2005數(shù)據庫備份和還原的基本概念;2)實踐數(shù)據庫的備份和還原技術與方法、備份和還原全文目錄、表數(shù)據的導入與導出等的基本操作。實驗內容1、備份設備管理(1)創(chuàng)建備份設備1)在ManagementStudio中創(chuàng)建備份設備KCGL的步驟如下:①在對象資源管理器中依次展開某數(shù)據庫服務器->服務器對象->備份設備->某備份設備,在“備份設備”或“某備份設備”上按鼠標右件,從彈出的快捷菜單中選擇“新建備份設備”菜單項;②系統(tǒng)會打開“備份設備”新建對話框;③在設備名稱文本框中輸入新設備名如:“KCGL”,對應在“文件”文本框中會自動出現(xiàn)“KCGL.BAK”的文件名稱;④單擊“確定”按鈕,在“備份設備”文件夾下即能看到新建的“KCGL”設備名。2)使用系統(tǒng)存儲過程sp_addumpdevice例11-28通過命令方式創(chuàng)建“KCGL_1”備份設備,命令為:USEmaster;EXECsp_addumpdevice'disk','KCGL_1','c:\KCGL_1.bak'上機實習10

返回本節(jié)首頁(2)查看備份設備的信息1)在ManagementStudio中查看備份設備的方法類似于創(chuàng)建備份設備,只要在備份設備列表中,雙擊某要查看的備份設備或從某備份設備快捷菜單中選擇“屬性”命令即可。在打開的備份設備對話框中,按左上“媒體內容”選項卡,在對話框右邊可列出該設備上保存的所有備份信息,包括每個備份的類型、日期、位置、大小等信息;2)在查詢窗口中使用如下語句也可以查看備份設備的詳細信息:RESTOREHeaderonlyFrom備份設備邏輯名例11-29查看備份設備KCGL_1的信息命令為:RESTOREHeaderonlyFromKCGL_1(3)刪除備份設備1)在ManagementStudio中刪除備份設備的方法:從數(shù)據庫引擎->服務器對象->備份設備,定位到待刪除備份設備后,通過按快捷菜單中選擇“刪除”命令,再在刪除對象對話框中單擊“確定”按鈕即可完成。注意要徹底刪除備份設備,需手工從磁盤上刪除備份設備對應的操作系統(tǒng)備份文件。2)利用T-SQL命令進行刪除。sp_dropdevice,從SQLServer除去數(shù)據庫設備或備份設備,語法:sp_dropdevice[@logicalname=]'device'[,[@delfile=]'delfile']其中,如果指定了defile參數(shù),則在刪除備份設備的同時刪除它使用的操作系統(tǒng)文件。例如:除去“KCGL_1”備份設備,并同時刪除操作系統(tǒng)文件的命令為:sp_dropdevice'KCGL_1','delfile'上機實習10

返回本節(jié)首頁2、備份數(shù)據庫本實驗主要介紹數(shù)據庫完整備份,備份的執(zhí)行主要有以下2種方法:(1)在ManagementStudio中對KCGL數(shù)據庫進行完整備份(還請參閱11.2.1)。完成備份設備的創(chuàng)建后便可以進行數(shù)據庫的備份。若沒有創(chuàng)建任何備份設備,則打開備份數(shù)據庫程序時會提醒用戶必須先創(chuàng)建備份設備。備份過程如下:①在某備份設備的快捷菜單中選擇“備份數(shù)據庫”命令;②打開“SQLServer備份”對話框,選擇所要備份的數(shù)據庫KCGL;③選擇完全數(shù)據庫備份的方式;④單擊“目的”區(qū)中的“添加”按鈕,進入“選擇備份目標”對話框;⑤更改“磁盤上的目標”的方式,選擇所創(chuàng)建的備份設備KCGL_1;⑥單擊“確定”按鈕,回到“備份數(shù)據庫”對話框;⑦在“備份數(shù)據庫”對話框點擊左上的“選項”選項卡,圖略,在此可選擇“備份到現(xiàn)有媒體集”或“備份到現(xiàn)新媒體集并清除所有現(xiàn)有備份集”等;⑧備份信息設置完成后,按“確定”按鈕正式開始備份。說明:在ManagementStudio中,展開數(shù)據庫服務器,展開“數(shù)據庫”文件夾,右擊要備份的數(shù)據庫名,例如KCGL,將鼠標指針指向彈出的快捷菜單中的“任務(T)”選項,單擊“備份(B)”,也能打開“備份數(shù)據庫”對話框。上機實習10

返回本節(jié)首頁(2)使用T-SQL命令執(zhí)行備份在T-SQL命令中,使用不同形式的backup命令能實現(xiàn)不同形式的備份:例11-30完成以下備份操作①創(chuàng)建用于存放kcgl數(shù)據庫完整備份的邏輯備份設備,然后備份整個kcgl數(shù)據庫。命令:usemaster;execsp_addumpdevice'disk','kcgl_1','c:\ProgramFiles\MicrosoftSQLServer\MSSQL\backup\kcgl_1.dat';backupdatabasekcgltokcgl_1②創(chuàng)建了一個數(shù)據庫和日志的完整備份。將數(shù)據庫備份到稱為kcgl_1的邏輯備份設備上,然后將日志備份到稱為kcglLog1的邏輯備份設備上。usemaster;execsp_addumpdevice'disk','kcgl_1','c:\ProgramFiles\MicrosoftSQLServer\MSSQL\backup\kcgl_1.dat';execsp_addumpdevice'disk','kcglLog1','c:\ProgramFiles\MicrosoftSQLServer\MSSQL\backup\kcglLog1.dat';backupdatabas

溫馨提示

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

評論

0/150

提交評論