《數(shù)據(jù)庫的備份和恢復》由會員分享,可在線閱讀,更多相關《數(shù)據(jù)庫的備份和恢復(43頁珍藏版)》請在裝配圖網上搜索。
1、單擊此處編輯母版標題樣式,,單擊此處編輯母版文本樣式,,第二級,,第三級,,第四級,,第五級,,第12章,數(shù)據(jù)庫的備份和恢復,,第1,2,章 數(shù)據(jù)庫的備份和恢復,學習要點:,,備份的概念,,,備份的類型,,,數(shù)據(jù)庫備份的方法,,,恢復數(shù)據(jù)庫的方法,,,,第1,2,章 數(shù)據(jù)庫的備份和恢復,12.1,備份概述,,,12.2,備份操作,,,12.3,恢復操作,,,12.4,恢復數(shù)據(jù)庫的其他方法,,,12.5,數(shù)據(jù)的導入和導出,,12.1,備份概述,12.1.1 為什么以及何時備份,,備份是指數(shù)據(jù)庫管理員定期或不定期地將數(shù)據(jù)庫部分或全部內容復制到磁帶或磁盤上保存起來的過程。當數(shù)據(jù)庫遭到破壞時,可以利用
2、備份進行數(shù)據(jù)庫的恢復。,,備份的目的就是當數(shù)據(jù)庫發(fā)生意外時,盡可能的減少數(shù)據(jù)的丟失。,,,何時進行備份,取決于所能承受數(shù)據(jù)損失的大小。,,執(zhí)行備份操作必須擁有數(shù)據(jù)庫備份的權限。,,,12.1.2,備份類型,,,,SQL Server 2000,支持的備份類型有四種,:,,完全數(shù)據(jù)庫備份,,差異備份,,事務日志備份,,文件和文件組備份,,1,.完全數(shù)據(jù)庫備份,,,完全數(shù)據(jù)庫備份是指備份數(shù)據(jù)庫中當前所有的數(shù)據(jù)包括事務日志。與事務日志備份和差異備份相比,完全數(shù)據(jù)庫備份使用的存儲空間多,完成備份操作需要的時間長,所以完全數(shù)據(jù)庫備份的創(chuàng)建頻率通常比差異備份或事務日志備份低。完全數(shù)據(jù)庫備份適用備份容量較小
3、、或數(shù)據(jù)庫中數(shù)據(jù)的修改較少的數(shù)據(jù)庫。,,2,.差異備份,,,差異備份是指備份自上次完全數(shù)據(jù)庫備份以來更改的數(shù)據(jù)。差異備份比完全數(shù)據(jù)庫備份小而且備份速度快,因此可以經常地備份,經常備份將減少丟失數(shù)據(jù)的危險。差異備份適合于修改頻繁的數(shù)據(jù)庫。,,3,.事務日志備份,,,事務日志備份是指備份自上次備份以來數(shù)據(jù)變化的過程,即事務日志文件的信息。其中的上次備份可以是完全數(shù)據(jù)庫備份、差異備份或事務日志備份。可以使用事務日志備份將數(shù)據(jù)庫恢復到特定的即時點(如輸入多余數(shù)據(jù)前的那一點)或恢復到故障點。,,4,.文件和文件組備份,,,文件和文件組備份適合于特大型數(shù)據(jù)庫,因為一個很大的數(shù)據(jù)庫要進行完全數(shù)據(jù)庫備份需要很
4、長的時間,那么可以將數(shù)據(jù)庫的文件和文件組分別進行備份。,,備份后如果數(shù)據(jù)庫發(fā)生了意外,一般應遵循如下的步驟來進行恢復:,,(1)如果當前日志沒有損壞,首先備份事務日志;,,(2)恢復最近的完全數(shù)據(jù)庫備份;,,(3)恢復最近的差異備份(如果進行過差異備份);,,(4)依次恢復自差異備份以后的所有事務日志備份,,(按備份的先后順序恢復)。,,12.1.3,恢復模型,,,,SQL Server 2000,提供了三種恢復模型,以確定如何備份數(shù)據(jù)以及能承受何種程度的數(shù)據(jù)丟失。,,簡單恢復,,完全恢復,,大容量日志記錄恢復,,,,1.簡單恢復,,使用簡單恢復模型可以將數(shù)據(jù)庫恢復到最后一次備份的時刻的 狀
5、態(tài)。不過,無法將數(shù)據(jù)庫還原到故障點或特定的即時點。在簡單恢復的模型下只能進行完全數(shù)據(jù)庫備份和差異備份。,,,2.完全恢復,,完全恢復提供將數(shù)據(jù)庫恢復到故障點或特定即時點的能力。在完全恢復模型下能進行各種備份。,,3.大容量日志記錄恢復,,允許大容量日志記錄操作,對某些大規(guī)模或大容量復制操作提供最佳性能和最少的日志使用空間。在大容量日志記錄恢復模型下能進行數(shù)據(jù)庫備份、差異備份和事務日志備份。,,12.1.4,備份設備,,,創(chuàng)建備份時,必須選擇存放備份數(shù)據(jù)的備份設備,即存放備份的存儲介質。備份設備可以是磁盤、磁帶、命名管道。當建立一個備份設備是要分配一個邏輯名和一個物理名。,,,1,.使用企業(yè)管理
6、器創(chuàng)建備份設備,。,,(1),打開“企業(yè)管理器”,展開服務器組,然后展開服務器。,,(2)展開“管理”文件夾,右擊“備份”,然后單擊“新建備份設備”命令,彈出“備份設備屬性”對話框,如圖12,-,1 所示。,,圖,12-1,備份設備屬性對話框,,(3)在“名稱”框中輸入該備份設備的名稱。,,(4)單擊“文件名”,輸入備份設備的物理文件名或,,單擊瀏覽(“...”)按鈕顯示“備份設備位置”對,,話框,再選擇備份設備所使用的物理文件。,,(,5,)單擊“確定”按鈕完成創(chuàng)建備份設備操作。,,2.使用系統(tǒng)存儲過程,sp_,addumpdevice,創(chuàng)建備份設備,,,sp_,addumpdevice,'
7、,device_type,' , ',logical_name,' ,? ',physical_name’,,device_type,是指備份設備類型,,,磁盤:,disk,;,,磁帶:,tape,;,,,命名管道:,pipe,。,,,例,12-1,下面的示例添加一個名為,,sales_backup,的磁盤備份設備,其物理名稱為,D:\sales_backup.,bak,。,,EXEC sp_,addumpdevice,'disk', 'sales_backup', 'd:\sales_backup.,bak,',可以使用系統(tǒng)存儲過程,sp_,dropdevice,刪除備份設備。,,例,12-
8、2,下面的示例刪除上例創(chuàng)建的備份設備。,,EXEC sp_,dropdevice,'sales_backup',,12.2,備份操作,,12.2.1,使用企業(yè)管理器備份數(shù)據(jù)庫,,,(1)打開“企業(yè)管理器”,展開服務器組,然后展開服務器。,,(2)展開“數(shù)據(jù)庫”文件夾,右擊需要的數(shù)據(jù)庫,選擇“所有任務”子菜單,然后單擊“備份數(shù)據(jù)庫”,打開“,SQL Server,備份”對話框,如圖12-2 所示。,,,圖,12-2,,SQL Server,備份對話框,,(3)在“名稱”框內,輸入備份名稱。在“描述”框中輸入對備份集的描述。也可以不填寫描述框。,,(4)在“備份”選項下單擊“數(shù)據(jù)庫—完全”?;蛘哌x
9、擇其他的備份類型。,,(5)在“目的”選項下,指定備份存放的位置。單擊“添加”可以添加備份文件或備份設備,如圖12-3 所示。,,(6)在“重寫”選項下,單擊“追加到媒體”,將備份追加到當前備份設備的內容之后;單擊“重寫現(xiàn)有媒體”,將重寫備份設備中備份內容,即原來的內容被覆蓋。,,(7)選擇“調度”復選框確定備份操作執(zhí)行的時間,也可以直接單擊“確定”按鈕,立即執(zhí)行備份操作。,,圖12-3 選擇備份目的對話框,,12.2.2,使用,Transact-SQL,語句備份數(shù)據(jù)庫,,,語法形式如下:,,,BACKUP DATABASE,database_name,,,,TO backup_devi
10、ce,,[ WITH [INIT | NOINIT]?[ [ , ] DIFFERENTIAL ]],,,init:,選項表示重寫備份集的數(shù)據(jù)。,,Noinit,:,選項表示備份數(shù)據(jù)將追加在原有的內容之后,,NOINIT,是 默 認設置。,,Differential:,選項表示差異備份。,,例12-3 下例為,sales,數(shù)據(jù)庫創(chuàng)建一個完全數(shù)據(jù)庫備份和一個差異數(shù)據(jù)庫備份。,,BACKUP DATABASE sales,,TO sales_backup,,With init,,GO,,BACKUP DATABASE sales,,TO sales_backup,,with different
11、ial,,GO,使用,BACKUP log,命令可以對數(shù)據(jù)庫進行事務日志備份,,語法形式如下:,,BACKUP LOG database_name TO backup_device,,,例12-4 下例為,sales,數(shù)據(jù)庫創(chuàng)建一個事務日志備份。,,BACKUP LOG sales TO sales_backup,,12.3,恢復操作,,,恢復數(shù)據(jù)庫是加載備份并應用事務日志重建數(shù)據(jù)庫的過程。,在數(shù)據(jù)庫的恢復過程中,用戶不能進入數(shù)據(jù)庫,即數(shù)據(jù)庫是不能使用的。一般而言,總是設置該數(shù)據(jù)庫中“單用戶”選項為真來限制用戶訪問要恢復的數(shù)據(jù)庫。,,,,SQL Server,中進行數(shù)據(jù)庫恢復,可以使用企業(yè)管理
12、器和,Transact-SQL,語句。,12.3.1,使用企業(yè)管理器恢復數(shù)據(jù)庫,,(1)打開“企業(yè)管理器”,展開服務器組,然后展開服務器。,,(2)展開“數(shù)據(jù)庫”文件夾,右擊數(shù)據(jù)庫,指向“所有任務”子菜單,然后單擊“還 原數(shù)據(jù)庫”命令。彈出“還原數(shù)據(jù)庫”對話框,如圖12-4 所示。,,,(3)在“還原為數(shù)據(jù)庫”框中,如果要還原的數(shù)據(jù)庫名稱與顯示的默認數(shù)據(jù)庫名稱不同,請在其中進行輸入或選擇。若要用新名稱還原數(shù)據(jù)庫,請輸入新的數(shù)據(jù)庫名稱。,(4)單擊“數(shù)據(jù)庫”,在“要還原的第一個備份”列表中,選擇要還原的備份集。如果要將一個服務器上的數(shù)據(jù)庫備份恢復到另一個服務器上,應選擇“從設備”還原。,,(5)
13、在“還原”列表中,單擊要還原的數(shù)據(jù)庫備份。,,(,6,)單擊“選項”選項卡,根據(jù)需要進行各選項的設置,如圖,12-5,所示。,,,(,7,)單擊“確定”按鈕開始恢復數(shù)據(jù)庫。,,圖,12-4,還原數(shù)據(jù)庫對話框,,圖,12-5,還原數(shù)據(jù)庫對話框“選項”選項卡,12.3.2,使用,Transact-SQL,語句恢復數(shù)據(jù)庫,,語法形式如下:,,,RESTORE DATABASE,database_name,,,,FROM,,backup_device,,[ WITH,,[FILE =,file_number,][ [ , ] { NORECOVERY | RECOVERY | STANDBY=,u
14、ndo_file_name,} ] ],,,其中:,,FILE =,file_number:,標識要還原的備份集。例如,,file_number,,為 1 表示備份媒體上的第一個備份集,,file_number,,為 2 表示第二個備份集。,,NORECOVERY:,表示還原操作不回滾任何未提交的事務。如果需要恢復另一個事務日志,則必須指定,NORECOVERY,或,STANDBY,選項。如果,NORECOVERY、RECOVERY,和,STANDBY,均未指定,則默認為,RECOVERY。,當還原數(shù)據(jù)庫備份和多個事務日志時,或在需要多個,RESTORE,語句時(例如在完整數(shù)據(jù)庫備份后進行差異
15、數(shù)據(jù)庫備份),,SQL Server,要求在除最后的,RESTORE,語句外的所有其它語句上使用,WITH NORECOVERY,選項。,,RECOVERY:,表示還原操作回滾任何未提交的事務。在恢復后即可使用數(shù)據(jù)庫。只有在最后一步恢復是使用。,,例12-4:從,sales_backup,備份設備中還原完全數(shù)據(jù)庫備份后還原差異備份。,,RESTORE DATABASE sales,,FROM sales_backup,,WITH NORECOVERY,,,,RESTORE DATABASE sales,,FROM sales_,buckup,,WITH FILE = 2,,12
16、.4,恢復數(shù)據(jù)庫的其他方法,,12.4.1,數(shù)據(jù)庫的脫機和聯(lián)機,,,具體操作步驟如下:,,(1)打開“企業(yè)管理器”,展開服務器組,然后展開服務器。,,(2)展開“數(shù)據(jù)庫”文件夾,右擊,Pubs,數(shù)據(jù)庫,指向“所有任務”子菜單,然后單擊“脫機”命令。,,(3)在,Pubs,數(shù)據(jù)庫旁出現(xiàn)“脫機”兩字,操作完成。這時可以對,Pubs,的數(shù)據(jù)庫文件進行復制。,,脫機的數(shù)據(jù)庫要恢復使用,則使用聯(lián)機操作。,,12.4.2,分離和附加數(shù)據(jù)庫,,,SQL Server 2000,允許分離數(shù)據(jù)庫的數(shù)據(jù)文件和事務日志文件,然后將其重新附加到另一臺服務器,甚至同一臺服務器上,。,,如果想將數(shù)據(jù)庫從一臺計算機移到另一
17、臺計算機或者從一個物理磁盤移到另一物理磁盤上,則分離和附加數(shù)據(jù)庫很有用:一般是先分離數(shù)據(jù)庫;然后將數(shù)據(jù)庫文件移到另一服務器或磁盤;最后通過指定移動文件的新位置附加數(shù)據(jù)庫。當附加在數(shù)據(jù)庫時,必須指定主數(shù)據(jù)文件的名稱和物理位置。,,12.5,數(shù)據(jù)的導入和導出,,,在實際工作中我們的數(shù)據(jù)可能存儲在,Excel、Access、Sybase、Oracle,等數(shù)據(jù)庫中,用戶有時需要在,SQL Server,中利用這些數(shù)據(jù),這就需要一種工具能夠將數(shù)據(jù)轉換到,SQL Server,中。,SQL Server,提供了一種很容易的把數(shù)據(jù)從一個,SQL Server,數(shù)據(jù)庫或非,SQL Server,數(shù)據(jù)庫,,傳輸
18、到一個,SQL Server,數(shù)據(jù)庫的方法,這就是使用數(shù)據(jù)傳輸服務(,Data Transformation Services,,,DTS)。,通過,DTS,用戶可以進行不同數(shù)據(jù)源之間數(shù)據(jù)的導入、導出和轉換。,,12.5.1,數(shù)據(jù)的導入,,,例12-6 將,Excel,表中的數(shù)據(jù)導入,SQL Server,中的,mydb,數(shù)據(jù)庫中。具體操作步驟如下:,,(1)打開“企業(yè)管理器”,展開服務器組,然后展開服務器。,,(2)右擊“數(shù)據(jù)庫”,選擇“所有任務”中的“導入數(shù)據(jù)”,彈出“數(shù)據(jù)轉換服務導入/導出向導”。,,(3)單擊“下一步”,出現(xiàn)“選擇數(shù)據(jù)源”對話框,在“數(shù)據(jù)源” 下拉列表框中選擇“,Mi
19、crosoft Excel 97-2000”,,如圖12-9所示對話框。在“文件名”框中選擇需要導入的文件的路徑和文件名。,,,圖12-9 導入/導出選擇數(shù)據(jù)源對話框,,圖,12-10,選擇目的,,(4)單擊“下一步”,出現(xiàn)如圖12-10 所示對話框。選擇目的,在數(shù)據(jù)庫框中選擇,mydb,。,,圖,12-11,選擇方式,,(,5,),單擊“下一步”,選中“從源數(shù)據(jù)復制表和視圖”,如圖,12-11,所示對話框。,圖,12-12,選擇表和視圖對話框,,(,6)單擊“下一步”,出現(xiàn)如圖12-12所示對話框,選擇需要復制的表和視圖,。,圖,12-13,保存、調度和復制包對話框,,(,7,)單擊“下一步
20、”,出現(xiàn)保存、調度和復制包對話框,如圖,12-13,所示,。,圖,12-14,完成對話框,,(,8,)單擊“下一步”,出現(xiàn)完成對話框,如圖,12-14,所示。,,圖,12-15,數(shù)據(jù)導入對話框,,(9)單擊“完成”按鈕,開始復制數(shù)據(jù)。如圖12-15所示。,12.5.2,數(shù)據(jù)的導出,,數(shù)據(jù)的導出是指將,SQL Server,中的數(shù)據(jù)轉為用戶指定的格式的過程,例如將,,SQL Server,表的內容復制到,,Microsoft Access,數(shù)據(jù)庫中。使用向導完成數(shù)據(jù)的導出工作的步驟和數(shù)據(jù)的導入相似。,小結:,,本章主要介紹了,SQL Server2000,的備份和恢復的相關知識。講述了備份的四種類型,備份設備的創(chuàng)建,通過企業(yè)管理器和,Transact-SQL,語句進行備份和恢復的具體操作的方法,以及數(shù)據(jù)的導入和導出。,,