版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第12章 數據備份與導入/導出 任課老師:【本章要點】 為使系統(tǒng)在出現故障后,能盡快恢復正常工作,把損失降到最低,必須對數據庫進行經常性的備份,以便在需要時能夠及時恢復。同時,為了能使不同數據庫系統(tǒng)的數據相互通用,可以進行數據的導入、導出。 主要內容如下:SQL Server備份的基本概念;備份設備的類型與建立;數據備份的類型及實現;數據恢復的概念及方法;數據轉換的概念及數據導入、導出方法;SSIS設計器簡介。121 數據庫的備份12.1.1 概述 數據庫備份是指系統(tǒng)管理員定期或不定期地將數據庫中的部分或全部內容復制到其他存儲介質上的過程。數據庫的備份可分為靜態(tài)備份和動態(tài)備份。 靜態(tài)備份是指在
2、備份過程中,不允許對數據庫進行任何存取、修改等操作。靜態(tài)備份操作簡單,但是備份與用戶事務都必須等待對方結束后才能進行。顯然,靜態(tài)備份降低了數據庫的可用性。121 數據庫的備份 動態(tài)備份是指在備份過程中,允許對數據庫進行存取或修改。 動態(tài)備份克服了靜態(tài)備份的缺點,即備份和用戶事務可以并發(fā)執(zhí)行。 由于,在備份的同時,數據庫有可能被修改。因此,動態(tài)備份的數據并不能保證是正確有效的。采用動態(tài)備份時,必須建立日志文件,把備份期間各事務對數據庫的修改活動記錄下來。以便使數據庫恢復到某一時刻的正確狀態(tài)。121 數據庫的備份 SQL Server的備份可以通過手工或SQL Server Agent來完成。SQ
3、L Server Agent可以在事先設定的任一天的任何時候執(zhí)行備份計劃。 數據庫的備份是十分耗費時間和占用資源的過程,不易頻繁進行。應該根據數據庫的使用情況確定一個適當的備份周期。 一般而言,對于數據更新頻繁,或數據非常重要的數據庫,備份的頻率應該較高一些。121 數據庫的備份 在下列情況下,應及時進行數據庫的備份。創(chuàng)建、修改、刪除數據庫前應該備份數據庫;創(chuàng)建了用戶自定義對象;增加或刪除服務器的系統(tǒng)存儲過程;修改了master、msdb、model數據庫;清除事務日志或執(zhí)行了不寫入事務日志的操作。121 數據庫的備份1212 備份設備 備份設備是指在數據庫備份過程中,數據庫、事務日志副本的存
4、儲介質。 創(chuàng)建備份時,必須選擇相應的備份設備,并為其分配邏輯名和物理名。 物理名是操作系統(tǒng)用來標識備份設備的名稱。 邏輯名是用來標識物理備份設備的別名或公用名。設備的邏輯名將永久地存儲在SQL Server的系統(tǒng)表中。 數據庫在備份或還原時,可以交替使用物理名或邏輯名。121 數據庫的備份1備份設備的類型 備份設備一般有磁盤設備和磁帶設備兩類。 磁盤設備包括本地磁盤和遠程磁盤。備份時,建議不要將數據庫與數據庫的備份放在同一物理磁盤上。否則,當包含數據庫的磁盤設備發(fā)生故障時,備份可能會一起遭到破壞,這將導致數據庫無法恢復。 使用磁帶設備時,必須將其物理連接到運行SQL Server實例的計算機上
5、。SQL Server不支持磁帶設備的遠程備份。使用磁帶設備時,應考慮操作系統(tǒng)對其的支持性。121 數據庫的備份2建立備份設備 備份設備的建立,可以使用SQL Server Management Studio,或使用T-SQL語句。(1)使用SQL Server Management Studio 在Microsoft SQL Server Management Studio窗口的對象資源管理器中,右擊“服務器對象”文件夾中的“備份設備”,如圖12-1所示。121 數據庫的備份圖12-1 對象資源管理器121 數據庫的備份 在彈出的快捷菜單中,單擊“新建備份設備”命令,打開“備份設備”對話框,
6、如圖12-2所示。121 數據庫的備份圖12-2 “備份設備”對話框121 數據庫的備份 在“備份設備”對話框的“設備名稱”欄中輸入備份設備的名稱(邏輯名); 選中“文件”單選按鈕,在對應的文本框中,輸入磁盤備份設備的物理名(一個完整的路徑和文件名,如果是網絡備份設備,應該是文件通用命名約定的位置); 單擊“文件”文本框右側“瀏覽”按鈕,打開“定位數據庫文件”對話框,選擇磁盤備份設備所使用的本地計算機上的物理文件。121 數據庫的備份 在“備份設備”對話框中,“磁帶”單選按鈕僅在運行SQL Server 數據引擎實例的計算機附連有磁帶機時才可用。 建立磁帶備份設備的方法與建立磁盤備份設備的方法
7、相同。121 數據庫的備份(2)使用T-SQL語句 系統(tǒng)存儲過程sp_addumpdevice可以用來添加備份設備。其語法形式如下:sp_addumpdevice devtype = device_type, logicalname = logical_name, physicalname = physical_name121 數據庫的備份 其中:device_type:備份設備的類型。disk:硬盤文件作為備份設備;tape:磁帶備份設備;logical_name:備份設備的邏輯名,用于SQL Server管理備份設備;physical_name:備份設備的物理名稱。物理名稱必須遵照操作系統(tǒng)
8、文件名稱的規(guī)則或者網絡設備的通用命名規(guī)則,并且必須包括完整的路徑。121 數據庫的備份示例1:創(chuàng)建一個本地磁盤備份設備。語句如下:USE RSGLXTEXEC sp_addumpdevice disk,SQLBackup_RSGLXT1,e:RSGLXT.bak 備份設備創(chuàng)建后,可在SQL Server Management Studio窗口的對象資源管理器中,查看到新建的備份設備,如圖12-3所示。121 數據庫的備份圖12-3 創(chuàng)建備份設備121 數據庫的備份3刪除備份設備 備份設備的刪除,可以使用SQL Server Management Studio,或使用T-SQL語句。(1)使用T
9、-SQL語言 刪除備份設備可使用系統(tǒng)存儲過程sp_dropdevice。該存儲過程可以選擇刪除備份設備的邏輯名稱或物理文件。其具體語法如下:sp_dropdevice logicalname = device,delfile = delfile121 數據庫的備份 其中:logicalname = device:數據庫設備或備份設備的邏輯名稱;delfile = delfile:指出是否應該刪除物理備份設備文件。如果將其指定為delfile,那么就會刪除物理備份設備磁盤文件。121 數據庫的備份(2)使用SQL Server Management Studio 在Microsoft SQL S
10、erver Management Studio窗口的對象資源管理器中,選擇“服務器對象”“備份設備”; 右擊要刪除的備份設備,在彈出的快捷菜單上單擊“刪除”命令; 在彈出的“刪除對象”窗口中,單擊“確定”銨鈕即可。121 數據庫的備份1213 備份類型 在SQL Server 2005中,備份的類型包括:數據庫備份(Database Backup)、差異數據庫備份(Differentia Database Backup)、事務日志備份(Transaction Log Backup)和數據庫文件和文件組備份(File and File Group Backup)。121 數據庫的備份1數據庫備份
11、 數據庫備份是指對數據庫中所有的數據、日志文件以及數據庫對象進行的備份。 數據庫備份也稱之為完整數據庫備份。這種備份操作簡單、易實施,且數據庫的還原操作簡單。 同時,由于是對數據庫的完整備份,故備份速度慢,且占用大量磁盤空間。121 數據庫的備份 這種類型的備份適用于以下情況:數據不是非常重要,盡管在備份之后恢復之前數據被修改,但這種修改是可以忍受的;通過批處理或其它方法,在數據庫恢復之后可以很容易地重新實現在數據損壞前發(fā)生的修改;數據庫變化的頻率不大。 數據庫備份方法應該與其他幾種備份方法相互結合,才能最大程度地實現對數據庫數據的保護。121 數據庫的備份2差異數據庫備份 差異數據庫備份是指
12、對最近一次完整數據庫備份以來的變更數據進行備份,因此差異備份實際上是一種增量數據庫備份。 與完整數據庫備份相比,差異數據庫備份數據量小、備份速度快、備份和恢復所用的時間較短。 經常采用這種類型的備份方法,可以減少丟失數據的危險。121 數據庫的備份 在實際中為了最大限度地減少數據庫還原時間以及降低數據損失量??梢圆扇祿靷浞?、事務日志備份和差異備份混合使用的備份方案: 首先有規(guī)律地進行數據庫備份,如每日進行備份;其次以較小的時間間隔進行差異備份,如34個小時進行一次備份;最后在兩次差異備份之間進行事務日志備份,如30分鐘進行一次備份。 在進行還原時,可以先還原最近一次的數據庫備份,接著進行差
13、異備份的還原,最后進行事務日志備份的還原。121 數據庫的備份3事務日志備份 事務日志備份是指對數據庫從上次進行事務日志備份、差異數據庫備份和完整數據庫備份后,所有發(fā)生且已完成的事務進行的備份。 一般情況下,由于這類備份僅對數據庫的事務日志進行備份,因此,其占用的資源比完整數據庫備份的少。若數據庫的事務率很高,導致事務日志迅速增大,備份所占用的資源就可能比完整數據庫備份的大。事務日志的備份及恢復相對比較復雜。121 數據庫的備份系統(tǒng)管理員在以下情況,應選擇事務日志備份。不允許在最近一次數據庫備份之后發(fā)生數據丟失或損壞現象;存儲備份文件的磁盤空間很小或者留給進行備份操作的時間有限;準備把數據庫恢
14、復到發(fā)生失敗的前一點;數據庫變化較為頻繁。121 數據庫的備份4文件和文件組備份 文件或文件組備份是指對數據庫中指定的文件或文件夾進行備份。 在進行完文件或文件組備份后應再進行事務日志備份。 在使用文件或文件組進行恢復時,仍要求有一個自上次備份以來的事務日志備份來保證數據庫的一致性,否則在文件或文件組備份中的數據變更將無法恢復。121 數據庫的備份1214 備份操作1備份策略 創(chuàng)建備份的目的是為了最大程度地恢復數據庫系統(tǒng)。因此,在具體備份數據庫前,應制定備份和還原策略。 備份和還原的策略包含備份部分和還原部分。 備份部分的策略應確定備份的類型和備份的頻率、備份所需的硬件特性和速度、備份設備以及
15、備份的驗證方法等。121 數據庫的備份2使用SQL Server Management Studio進行備份 在Microsoft SQL Server Management Studio窗口的對象資源管理器中,右擊“RSGLXT”,在彈出的快捷菜單中,單擊“任務”“備份”;打開“備份數據庫”對話框,如圖12-4所示。121 數據庫的備份圖12-4 備份數據庫-常規(guī)121 數據庫的備份 在“備份數據庫”對話框的“常規(guī)”選項卡中,選擇要備份的數據庫系統(tǒng)數據庫、用戶數據庫;備份的類型完整、差異或事務日志;備份組件數據庫、文件和文件組;確定備份集的名稱、說明、備份集的過期時間;選擇備份的設備。 在選
16、擇不同的要備份的數據庫時,備份的恢復模式將相應的自動確定。數據庫的恢復模式可在“數據庫屬性”對話框的“選項”選項卡中進行選擇或修改。121 數據庫的備份 恢復模式旨在控制事務日志維護?;謴湍J接?種:SIMPLE、FULL、BULK_LOGGED。SIMPLE(簡單模式):該模式不備份事務日志,可最大程度地減少事務日志的管理開銷。如果數據庫損壞,則簡單恢復模式將面臨極大的工作丟失風險。數據只能恢復到已丟失數據的最新備份。 因此,在簡單恢復模式下,備份間隔應盡可能短,以防止大量丟失數據。但是,間隔的長度應該足以避免備份開銷影響生產工作。在備份策略中加入差異備份可有助于減少開銷。121 數據庫的備
17、份 通常,對于用戶數據庫,簡單恢復模式用于測試和開發(fā)數據庫,或用于主要包含只讀數據的數據庫(如數據倉庫)。簡單恢復模式并不適合生產系統(tǒng),因為對生產系統(tǒng)而言,丟失最新的更改是無法接受的。FULL(完整模式):此模式完整記錄所有事務,并將事務日志記錄保留到對其備份完畢為止。如果能夠在出現故障后備份日志尾部,則可以使用完整恢復模式將數據庫恢復到故障點。121 數據庫的備份BULK_LOGGEG(大容量日志模式):此模式可作為完整模式的補充。對于某些大規(guī)模大容量的操作(如大容量導入或索引創(chuàng)建),暫時切換到大容量日志恢復模式可提高性能并減少日志空間使用量。 在此模式下仍需要進行日志備份。與完整模式相同,
18、大容量日志模式也將事務日志記錄保留到對其備份完畢為止。121 數據庫的備份 由于大容量日志恢復模式不支持時點恢復,因此必須在增大日志備份與增加工作丟失風險之間進行權衡。 在各選項確定后,單擊“確定”按鈕,完成數據庫的備份。121 數據庫的備份3數據庫備份選項的設置 進行數據庫備份時,可在“備份數據庫”對話框的“選項”選項卡中(如圖12-5所示),設置備份選項。121 數據庫的備份圖12-5 備份數據庫-選項121 數據庫的備份追加到現有備份集:將備份集追加到現有媒體集,并保留以前的所有備份;覆蓋所有現有備份集:將現有媒體集上以前的所有備份替換為當前備份。檢查媒體集名稱和備份集過期時間:根據需要
19、,可以要求備份操作驗證備份集的名稱和過期時間。121 數據庫的備份媒體集名稱:當選擇“檢查媒體集名稱和備份集過期時間”時,此選項才可用。輸入用于檢查媒體集名稱和備份集過期的媒體集名稱。備份到新媒體集并清除所有現有備份集:使用新媒體集,并清除以前的備份集。確定備份的可靠性。121 數據庫的備份4使用T-SQL語句進行備份 使用T-SQL語言的BACKUP DATABASE語句可以備份完整數據庫或文件和文件組;在完整恢復模式或大容量日志恢復模式下,使用BACKUP LOG語句備份事務日志。BACKUP語句的語法形式有所不同。121 數據庫的備份備份整個數據庫的語法如下:BACKUP DATABAS
20、E database_name | database_name_varTO backup_device,.nWITH DIFFERENTIAL ,FORMATNOFORMAT , INIT | NOINIT , NOSKIP | SKIP 121 數據庫的備份備份文件或文件組的語法如下:BACKUP DATABASE database_name | database_name_var ,.n TO backup_device ,nWITH DIFFERENTIAL ,FORMAT | NOFORMAT ,INIT | NOINIT ,NOSKIP | SKIP 121 數據庫的備份備份事務日志
21、的語法如下:BACKUP LOG database_name | datahase_name_varTObackup_device,.nWITH FORMAT | NOFORMAT , INIT | NOINIT , NOSKIP | SKIP 121 數據庫的備份 在上述3個語法形式中,有關參數的含義如下: database_name | database_name_var:要進行事務日志、部分數據庫或完整的數據庫備份的數據庫;backup_device:指定備份操作時要使用的邏輯或物理備份設備;FILE = logical_file_name | logical_file_name_var
22、 :給一個或多個包含在數據庫備份中的文件命名;121 數據庫的備份FILEGROUP = logical_filegroup_name | logical_fitegroup_name_var:給一個或多個包含在數據庫備份中的文件組命名。文件或文件名備份必須至少包括FILE或FILEGROUP子句之一;DIFFERENTIAL:差異備份必須包括此子句。指定數據庫備份或文件備份應該與上一次完整備份后改變的數據庫或文件部分保持一致。:差異備份一般會比完整備份占用更少的空間;121 數據庫的備份FORMAT:指定應將媒體頭寫入用于此備份操作的所有卷。任何現有的媒體頭都被重寫。FORMAT選項使整個媒
23、體內容無效,并且忽略任何現有的內容;NOFORMAT:指定媒體頭不應寫入所有用于該備份操作的卷中,并且不要重寫該備份設備,除非指定了INIT;INIT:指定應重寫所有備份集,但是保留媒體頭。如果指定了INIT,將重寫那個設備上的所有現有的備份集數據。121 數據庫的備份NOINIT:表示備份集將追加到指定的磁盤或磁帶設備上,以保留現有的備份集。NOINIT是默認設置。NOSKIP:指示BACKUP語句在可以重寫媒體上的所有備份集之前先檢查它們的過期日期。SKIP:禁用備份集過期和名稱檢查,這些檢查一般由BACKUP語句執(zhí)行以防重寫備份集。121 數據庫的備份(2)使用T-SQL語句備份數據庫示
24、例示例2:將RSGLXT數據庫完整地備份到備份設備SQLBackup_RSGLXT1(e:RSGLXT.bak)中。在“查詢”窗口編寫代碼:BACKUP DATABASE RSGLXT TO DISK = e:RSGLXT.bakWITH FORMAT;GO單擊“執(zhí)行”按鈕,備份運行結果,如圖12-6所示。121 數據庫的備份圖12-6 完整數據庫備份結果121 數據庫的備份示例3:將RSGLXT數據庫的事務日志RSGLXT_log寫入備份設備。在“查詢”窗口編寫代碼:BACKUP LOG RSGLXTTO DISK = e:RSGLXT.bak 單擊“執(zhí)行”按鈕,備份運行結果,如圖12-7所
25、示。121 數據庫的備份圖12-7 事務日志備份結果121 數據庫的備份示例4:將RSGLXT數據庫中的“PRIMART”文件夾寫入備份設備。在“查詢”窗口中編寫代碼:BACKUP DATABASE RSGLXTFILEGROUP = PRIMARYTO DISK = e:RSGLXT.bak 單擊“執(zhí)行”按鈕,備份運行結果,如圖12-8所示。121 數據庫的備份圖12-8 文件夾備份結果122 數據庫的恢復 數據庫系統(tǒng)運行時,可能會出現各種各樣的故障,使數據庫中的數據丟失或遭到破壞。SQL Server系統(tǒng)采取一系列措施確保數據盡可能不丟失、不破壞,將數據庫恢復到最近一個正確的狀態(tài),DBMS
26、的這種能力稱為數據庫的可恢復性(Recovery)。 SQL Server 2005 支持的還原方案如下。數據庫完整還原:還原整個數據庫,將從完整數據庫備份開始,然后還原差異數據庫備份和日志備份。122 數據庫的恢復文件還原:還原多文件組數據庫中的文件或文件組。在簡單恢復模式下,此文件必須屬于只讀文件組。完整文件還原之后,便可還原差異文件備份。頁面還原:還原單個頁面。頁面還原僅在完整恢復模式和大容量日志恢復模式下可用。段落還原:從主文件組和一個或多個輔助文件組開始,分階段還原數據庫。段落還原將從 RESTORE DATABASE 開始,使用 PARTIAL 選項并指定一個或多個要還原的輔助文件
27、組。122 數據庫的恢復僅恢復:恢復那些已經與數據庫保持一致且只需使其可用的數據。事務日志還原:在完整恢復模式或大容量日志恢復模式下,必須還原日志備份才能到達所需的恢復點。122 數據庫的恢復 從某種意義上講,數據庫的恢復比備份更重要。執(zhí)行數據庫恢復以前,應注意以下兩點:在數據庫恢復前,應該刪除故障數據庫,以便刪除對故障數據庫的任何引用;數據庫恢復之前,必須限制用戶對數據庫的訪問,數據庫的恢復是靜態(tài)的,應使用SQL Server Management Studio或系統(tǒng)存儲過程sp_dbotion設置數據庫為單用戶。122 數據庫的恢復 從數據庫備份中恢復數據,可以使用SQL Server M
28、anagement Studio,也可以使用T-SQL語句進行恢復。122 數據庫的恢復1221 使用SQL Server Management Studio恢復數據庫備份1恢復數據庫 在Microsoft SQL Server Management Studio窗口的對象資源管理器中,右擊要還原的數據庫;在彈出的快捷菜單中,單擊“任務”“還原”“數據庫”,打開“還原數據庫”對話框,如圖12-9所示。122 數據庫的恢復圖12-9 還原數據庫常規(guī)122 數據庫的恢復 在“還原數據庫”對話框的“常規(guī)”選項卡中,選擇要還原的數據庫、要還原到的時間點、源數據庫、用于還原的備份集等;單擊“確定”按鈕,
29、系統(tǒng)開始數據庫的還原。122 數據庫的恢復2恢復數據庫文件或文件組 在Microsoft SQL Server Management Studio窗口的對象資源管理器中,右擊要還原的數據庫;在彈出的快捷菜單中,單擊“任務”“還原”“文件和文件組”,打開“還原文件和文件組”對話框。 “還原文件和文件組”對話框的“常規(guī)”選項卡,以及還原的選擇內容、方式與數據庫的恢復相似。122 數據庫的恢復3數據庫還原選項的設置 在“還原數據庫/還原文件和文件組”對話框的“選項”選項卡(如圖12-10所示),可以指定用于還原備份的其他選項。122 數據庫的恢復圖12-10 還原數據庫-選項122 數據庫的恢復覆蓋
30、現有數據庫:指定還原操作應覆蓋所有現有數據庫及其相關文件,即使已存在同名的其他數據庫或文件。選擇此選項等效于在RESTORE語句中使用REPLACE選項;保留復制設置:將已發(fā)布的數據庫還原到創(chuàng)建該數據庫的服務器之外的服務器時,保留復制設置;122 數據庫的恢復還原每個備份之前進行提示:在還原每個備份設置前要求進行確認。如果對于不同的媒體集,則必須更換磁帶,例如在服務器具有一個磁帶設備時,此選項非常有用;限制訪問還原的數據庫:使還原的數據庫僅供db_owner、dbcreator或sysadmin的成員使用。選擇此選項等效于在RESTORE語句中使用RESTRICTED_USER選項。122 數
31、據庫的恢復1222 使用T-SQL語句進行數據庫的恢復 使用T-SQL的RESTORE語句可以還原使用 BACKUP 命令所做的備份。包括:基于完整數據庫備份還原整個數據庫(完整還原);還原數據庫的一部分(部分還原);將特定文件、文件組或頁面還原到數據庫(文件還原或頁面還原);將事務日志還原到數據庫(事務日志還原)等。122 數據庫的恢復1RESTORE語句的語法還原完整數據庫的語法如下:RESTORE DATABASE database_name | database_name_var FROM backup_device,.nWITHFILE = file_number | file_nu
32、mber ,NORFXDVERY | RECDVERY | STANDBY = undo_file_nam, REPLACE122 數據庫的恢復還原數據庫部分內容的語法如下:RESTORE DATABASE database_name | database_name_varfile_or_filegroup,.nFROMbackup_device,.nWITHPARTIAL ,FILE = file_number | file_number ,NORECOVERY122 數據庫的恢復還原文件或文件組的語法如下:RESTORE DATABASEdatabase_name | database_n
33、ame_varfile_or_filegroup,.nFROM backup_device,.nWITHFILE = fi1e_number | file_number ,NORECOVERY122 數據庫的恢復還原事務日志的語法如下:RESTORE LOG database_name | database_name_varFROM backup_device,.nWITHFILE = file_number | file_number ,NORECOVERY | RECOVERY | STANDBY = undo_file_name,STOPAT = date_time | date_tim
34、e_var122 數據庫的恢復 在上述4個語法形式中,有關參數的含義如下:database_name | database_name_var:指定了將日志或整個數據庫備份還原后的數據庫名稱。backup_device:指定還原操作要使用的邏輯或物理備份設備。file_or_filegroup:指定包括在數據庫還原中的邏輯文件或文件組的名稱??梢灾付ǘ鄠€文件或文件組。122 數據庫的恢復FILE = file_number | file_number:標識要還原的備份集。NORECOVERY:指示還原操作不回滾任何未提交的事務。如果需要應用另一個事務日志,則必須指定NORECOVERY或STAN
35、DBY選項。如果NORECOVERY、RECOVERY和STANDBY均未指定,則默認為RECOVERY。RECOVERY:指示還原操作回滾未提交的事務。在恢復進程后即可隨時使用數據庫。122 數據庫的恢復PARTIAL:指定部分還原操作。STOPAT = date_time | date_time_var:指定將數據庫還原到指定的。日期和時間時的狀態(tài)。只有在指定的日期和時間前寫入的事務日志記錄才能應用于數據庫。122 數據庫的恢復2恢復數據庫備份示例5:從SQLBackup_RSGLXT1邏輯備份設備,還原數據庫“RSGLXT”的完整數據庫備份。在“查詢”窗口中編寫語句:RESTORE DA
36、TABASE RSGLXT FROM SQLBackup_RSGLXT1WITH REPLACE單擊“執(zhí)行”按鈕,恢復備份的運行結果,如圖12-11所示。122 數據庫的恢復圖12-11 數據庫備份恢復122 數據庫的恢復 使用RESTORE DATABASE語句恢復整個數據庫時,如果要在還原數據庫備份后應用事務日志或差異數據庫備份,則需要指定NORECOVERY子句。 如果備份設備上有多個備份集,可以使用FILE子句指定文件號標識需要從哪個備份集中恢復數據庫。122 數據庫的恢復 從差異數據庫備份中恢復數據時,首先必須執(zhí)行RESTORE DATABASE并指定NORECOVERY子句,以恢復
37、差異數據庫備份之前的完整數據庫備份。然后再執(zhí)行一次RESTORE DATABASE恢復差異數據庫備份,并同時需要指定數據庫名稱和要從其中恢復差異數據庫備份的備份設備。 如果在執(zhí)行完差異數據庫備份恢復以后還要應用事務日志備份,則還必須同時指定NORECOVERY子句,否則指定RECOVERY子句。122 數據庫的恢復 還原差異數據庫備份的順序為:先還原最新的完整數據庫備份,然后還原最后一次的差異數據庫備份。122 數據庫的恢復 執(zhí)行RESTORE LOG語句,可進行由事務日志備份恢復數據庫的工作。 還原事務日志備份的步驟為:還原事務日志備份之前的完整數據庫備份或差異數據庫備份。按順序恢復自完整數
38、據庫備份或差異數據庫以后創(chuàng)建的所有事務日志。撤銷所有未完成的事務。122 數據庫的恢復 如果恢復當前事務日志備份后還要應用其他事務日志備份,則在執(zhí)行RESTORE LOG時還要指定NORECOVERY子句;否則,指定RECOVERY子句以恢復服務器的運行狀態(tài)。123 數據導入與導出 在創(chuàng)建和使用SQL Server數據庫的過程中,數據的導入、導出是非常普遍的操作。 在對各種數據庫系統(tǒng)所管理的格式各不相同、存儲于不同地方的數據進行集中分析時,首先需要將數據轉換為同一種格式。 數據轉換可以將數據由A格式轉換為B格式,反之亦然。 數據在由A格式轉換為B格式時,對B格式數據而言,則可稱之為數據的導入,
39、對A格式的數據而言,則可稱之為數據的導出。123 數據導入與導出1231 概述 Microsoft SQL Server 2005允許在 SQL Server 數據表和數據文件之間大容量導入和導出數據(“大容量數據”)。這對在 SQL Server 和異類數據源之間有效傳輸數據是非常重要的。 “大容量導出”是指將數據從 SQL Server 表復制到數據文件。 “大容量導入”是指將數據從數據文件加載到 SQL Server 表。如用戶可以將數據從 Microsoft Excel 應用程序導出到數據文件,然后將這些數據大容量導入到 SQL Server 表中。123 數據導入與導出1數據導入與導
40、出的方法 在Microsoft SQL Server 2005中,從 SQL Server 表中大容量導出數據的基本方法是使用大容量導出數據并生成格式化文件的命令行bcp 實用工具(Bcp.exe)。 在Microsoft SQL Server 2005中,將大容量數據導入SQL Server 表或未分區(qū)的視圖的基本方法包括:大容量導入數據并生成格式化文件的命令行bcp實用工具(Bcp.exe);123 數據導入與導出將數據直接從數據文件導入數據庫表或未分區(qū)視圖的BULK INSERT 語句;通過在INSERT語句中指定 OPENROWSET(BULK.)函數選擇數據,從而使用 OPENROW
41、SET 大容量行集提供程序,將數據大容量導入SQL Server 表的INSERT.SELECT * FROM OPENROWSET(BULK.)語句。123 數據導入與導出bcp實用工具、BULK INSERT 語句和INSERT.SELECT * FROM OPENROWSET(BULK.)語句的語法均較為復雜,具體可參考有關資料。123 數據導入與導出2導入大容量數據的基本原則 在將數據文件中的數據大容量導入到 Microsoft SQL Server 實例時,請使用以下原則:設置權限。使用 bcp 實用工具、BULK INSERT 語句或 INSERT .SELECT * FROM O
42、PENROWSET(BULK.) 語句的用戶帳戶必須具有表的所需權限,這些權限由表所有者分配。123 數據導入與導出使用大容量日志恢復模式。此原則適用于使用完整恢復模式的數據庫。在執(zhí)行大容量導入操作之前,先將數據庫更改為使用大容量日志恢復模式。之后應立即將數據庫重設為完整恢復模式。大容量導入數據后進行備份。對于使用簡單恢復模式的數據庫,用戶在大容量導入操作完成后執(zhí)行完整備份或差異備份。123 數據導入與導出刪除表索引。在導入的數據量與表中已有數據量相比很大時,刪除表中的索引可顯著提高性能。 注意: 如果加載的數據量與表中已有的數據量相比較小時,刪除索引會適得其反。因為重建索引所需的時間可能要比
43、大容量導入操作期間所節(jié)省的時間更長。 123 數據導入與導出查找并刪除數據文件中的隱藏字符。許多實用工具和文本編輯器都會顯示隱藏字符,這些隱藏字符通常位于數據文件末尾。 在大容量導入操作期間,ASCII 數據文件中的隱藏字符會導致問題,這些問題會引發(fā)“發(fā)現意外空字符”錯誤。查找并刪除所有隱藏字符有助于避免此問題。123 數據導入與導出3注意事項 如果用戶不確定應如何針對大容量導入設置數據文件的格式,則可以使用 bcp 實用工具將數據從表導出到數據文件中。 此文件中每個數據字段的格式均顯示了將數據大容量導入對應表列時所要求的格式。對數據文件的各個字段使用相同的數據格式。123 數據導入與導出(1
44、)大容量導出的數據文件格式注意事項 在使用 bcp 命令執(zhí)行大容量導出操作之前,應考慮以下事項:將數據導出到文件時,bcp 命令使用指定的文件名自動創(chuàng)建數據文件。如果該文件名已經存在,正在大容量復制到數據文件的數據將覆蓋文件中的現有內容。從表或視圖大容量導出到數據文件要求對正在大容量復制的表或視圖具有 SELECT 權限。123 數據導入與導出Microsoft SQL Server 可以使用并行掃描檢索數據。因此,通常不保證從 SQL Server 實例大容量導出的表行在數據文件中按特定順序排列。為了確保大容量導出的表行在數據文件中按特定順序排列,請使用 queryout 選項來通過查詢進行
45、大容量導出,并指定一個 ORDER BY 子句。123 數據導入與導出(2)大容量導入的數據文件格式要求 為了導入數據文件中的數據,該文件必須滿足以下基本要求:數據必須以行和列的格式表示。 注意:數據文件的結構不必與 SQL Server 表的結構一致,因為大容量導入過程中可以跳過列或對列重新排序。數據文件中的數據格式必須是支持的格式,例如字符格式或本機格式。123 數據導入與導出數據可以是字符格式或本機二進制格式(包括 Unicode)。為了使用 bcp 命令、BULK INSERT 語句或 INSERT . SELECT * FROM OPENROWSET(BULK.) 語句導入數據,目標
46、表必須已存在。數據文件中的每個字段都必須與目標表中的對應列兼容。123 數據導入與導出若要從SQL Server 外部,如從Visual FoxPro表(.dbf)文件或者Microsoft Excel工作表(.xls)文件導入數據,應先將數據轉換為逗號分隔值(CSV)文件,才可以在 SQL Server 執(zhí)行大容量導入操作。若要從包含固定長度或固定寬度字段的數據文件導入數據,則必須使用格式化文件。123 數據導入與導出 此外,在將數據文件中的數據大容量導入表中時,還有注意:用戶必須對表具有 INSERT 和 SELECT 權限。如果用戶需要執(zhí)行數據定義語言(DDL)操作(例如禁用約束)時,應
47、具有 ALTER TABLE 權限。123 數據導入與導出使用BULK INSERT 或 INSERT . SELECT * FROM OPENROWSET(BULK.) 大容量導入數據時,必須可以通過 SQL Server 進程的安全性配置文件(如果用戶使用 SQL Server 提供的登錄名進行登錄)或在委托安全性下使用的 Microsoft Windows 登錄名對數據文件進行讀取操作。此外,用戶還必須具有 ADMINISTER BULK OPERATIONS 權限以讀取文件。 注意:由于不支持大容量導入到分區(qū)視圖,因此無法將數據大容量導入到分區(qū)視圖。123 數據導入與導出1232 使用
48、SQL Server Management Studio導出與導入數據 在SQL Server 2005中,使用SQL Server Management Studio可以很方便地進行數據的導出或導入。數據的導入與導出過程類似。 下面以將RSGLXT數據庫中的Employees數據表導出到Excel工作表為例,具體介紹導出數據的方法。123 數據導入與導出 在Microsoft SQL Server Management Studio窗口的對象資源管理器中,右擊RSGLXT數據庫;在彈出的快捷菜單中,單擊“任務”“導出數據”選項,如圖12-12所示。123 數據導入與導出圖12-12 選擇“導
49、出數據”選項 123 數據導入與導出 打開“SQL Server導入和導出向導”對話框,如圖12-13所示。123 數據導入與導出圖12-13 SQL Server導入與導出向導 123 數據導入與導出 單擊“下一步”按鈕,打開“選擇數據源”對話框,如圖12-14所示。從中選擇數據源為“Microsoft OLE DB Provider for SQL Server”,同時選擇數據庫服務器名和身份驗證方式。123 數據導入與導出圖12-14 “選擇數據源”對話框 123 數據導入與導出 單擊“下一步”按鈕,打開“選擇目標”對話框(如圖12-15所示),從中選擇導出數據的類型、目標文件的存儲路徑
50、和版本。 123 數據導入與導出圖12-15 “選擇目標”對話框 123 數據導入與導出 單擊“下一步”按鈕,打開“指定表復制或查詢”對話框(如圖12-16所示),在此選擇“復制一個或多個表或視圖的數據”選項。 123 數據導入與導出圖12-16 “指定表復制或查詢”對話框 123 數據導入與導出 單擊“下一步”按鈕,打開“選擇源表和源視圖”對話框(如圖12-17所示),從中選擇準備導出數據的數據表。 123 數據導入與導出圖12-17 “選擇源表和源視圖”對話框 123 數據導入與導出 選定數據表后,單擊“編輯”按鈕,打開“列映射”對話框(如圖12-18所示),在此選擇默認設置;單擊“確定”
51、按鈕,返回“選擇源表和源視圖”對話框。 123 數據導入與導出圖12-18 “列映射”對話框 123 數據導入與導出 單擊“下一步”按鈕,打開“保存并執(zhí)行包”對話框(如圖12-19所示),在此選擇“立即執(zhí)行”復選框。 123 數據導入與導出圖12-19 “保存并執(zhí)行包”對話框 123 數據導入與導出 單擊“下一步”按鈕,打開“完成該向導”對話框(如圖12-20所示),驗證任務選項。 123 數據導入與導出圖12-20 “完成該向導”對話框 123 數據導入與導出 單擊“完成”按鈕,執(zhí)行數據導出任務,數據導出完成后,顯示“執(zhí)行成功”界面,如圖12-21所示。 123 數據導入與導出圖12-21
52、數據導出執(zhí)行結果 123 數據導入與導出示例6:現有純文本文件courses.txt,數據如下(數據之間以“逗號”分隔)。課程編號,課程名稱,學分0014,離散數學,20015,電子技術,30016,軟件工程,30017,數據結構,40018,計算機網絡技術基礎,2 使用SQL Server Management Studio將courses.txt導入到數據庫JXGLXT的CURRICULUM數據表中。123 數據導入與導出 操作步驟如下:在Microsoft SQL Server Management Studio窗口的對象資源管理器中,右擊JXGLXT數據庫;在彈出的快捷菜單中,單擊“任
53、務”“導出數據”選項,如圖12-22所示。123 數據導入與導出圖12-22 選擇“導入數據”選項 123 數據導入與導出打開“SQL Server導入和導出向導”對話框后,單擊“下一步”按鈕,打開“選擇數據源”對話框,在“數據源”下拉列表中,選擇“平面文件源”;選定欲導入文件名;確定導入文件的格式,如圖12-23所示。123 數據導入與導出圖12-23 “選擇數據源”對話框 123 數據導入與導出單擊“下一步”按鈕,打開“選擇目標”對話框,選擇目標數據庫,如圖12-24所示。123 數據導入與導出圖12-24 “選擇目標數據庫”對話框 123 數據導入與導出單擊“下一步”按鈕,打開“選擇源表
54、和源視圖”對話框,在“目標”下拉列表中選擇欲導入數據的數據表,如圖12-25所示。123 數據導入與導出圖12-25 “選擇目標數據表”對話框 123 數據導入與導出選定目標數據表后,可單擊“編輯”按鈕,打開“列映射”對話框,用戶可根據需要選擇“刪除目標表中的行”替換目標表中的數據,或選擇“向目標表中追加行”添加數據,如圖12-26所示。123 數據導入與導出圖12-26 “列映射”對話框 123 數據導入與導出單擊“確定”按鈕,返回“選擇源表和源視圖”對話框;單擊“下一步”按鈕,打開“保存并執(zhí)行包”對話框,確定是否選擇“保存SSIS包”復選框,如圖12-27所示。123 數據導入與導出圖12
55、-27 “保存并執(zhí)行包”對話框 123 數據導入與導出單擊“下一步”按鈕,打開“完成該向導”對話框,如圖12-28所示。123 數據導入與導出圖12-28 “完成該向導”對話框 123 數據導入與導出單擊“完成”按鈕,系統(tǒng)開始導入數據;數據導入任務完成后,顯示“執(zhí)行成功”對話框,如圖12-29所示。123 數據導入與導出圖12-29 “執(zhí)行成功”對話框 123 數據導入與導出1233 SSIS設計器簡介 在SQL Server 2005中,以前版本的數據轉換服務(DTS)被SQL Server整合服務(SSIS)所代替。在進行數據轉換過程中,以前版本的DTS設計器被新的SSIS設計器所代替。123 數據導入與導出1SSIS設計器的啟
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度彩鋼棚鋼結構材料質量檢測合同3篇
- 2025年度年度財務報表編制保密合作協(xié)議3篇
- 年度非開挖導向鉆機鋪管機市場分析及競爭策略分析報告
- 二零二五年恒大地產商業(yè)地產租賃及產權變更代理合同樣本3篇
- 2025廠長任期企業(yè)可持續(xù)發(fā)展戰(zhàn)略合同3篇
- 二零二五版創(chuàng)業(yè)園區(qū)租賃合同參考模板(含孵化服務)3篇
- 2025年度瓷磚批發(fā)市場入駐經營合同4篇
- 2025年蔬菜運輸合同含蔬菜品牌推廣效果評估條款2篇
- 2025年度豪華品牌4S店新車銷售與服務保障合同3篇
- 2025年LED廣告屏租賃與品牌推廣服務合同模板3篇
- GB/T 37238-2018篡改(污損)文件鑒定技術規(guī)范
- 普通高中地理課程標準簡介(湘教版)
- 河道治理工程監(jiān)理通知單、回復單范本
- 超分子化學簡介課件
- 高二下學期英語閱讀提升練習(一)
- 易制爆化學品合法用途說明
- 【PPT】壓力性損傷預防敷料選擇和剪裁技巧
- 大氣喜慶迎新元旦晚會PPT背景
- DB13(J)∕T 242-2019 鋼絲網架復合保溫板應用技術規(guī)程
- 心電圖中的pan-tompkins算法介紹
- 羊絨性能對織物起球的影響
評論
0/150
提交評論