SQL Server 備份與恢復之六:介質集與備份集

weixin_34262482發表於2012-06-14

本文主要來源於Microsoft《SQL Server 2008 R2聯機叢書》。轉裁請註明出處。

  在備份操作過程中,將要備份的資料(即“備份資料”)寫入物理備份裝置。“物理備份裝置”是指磁帶機或作業系統提供的磁碟檔案。可以將備份資料寫入 1 到 64 個備份裝置。如果備份資料需要多個備份裝置,則所有裝置必須對應於一種裝置型別(磁碟或磁帶)。


一、備份裝置

  SQL Server 早期版本需要在配置備份裝置之後才能備份資料庫。對於 SQL Server 2008,不需要明確地定義備份裝置。不過,備份裝置提供了一種簡單的方式,用來確保多次建立的備份具有相同的檔名和位置。通過使用一致的名稱和儲存位置,可以更加容易地管理備份和還原過程。

  “邏輯備份裝置”是指向特定物理備份裝置(磁碟檔案或磁帶機)的可選使用者定義名稱。通過邏輯備份裝置,您可以在引用相應的物理備份裝置時使用間接定址。

230842168.png

  磁碟備份裝置是指包含一個或多個備份檔案的硬碟或其他磁碟儲存介質。備份檔案是常規作業系統檔案。指定備份檔案時,應輸入其完整路徑和檔名。如果您在備份到檔案時僅指定檔名或相對路徑,則備份檔案將儲存到預設備份目錄中。

  如果在備份操作將備份資料追加到介質集時磁碟檔案已滿,則備份操作會失敗。備份檔案的最大大小由磁碟裝置上的可用磁碟空間決定,因此,備份磁碟裝置的適當大小取決於備份資料的大小。

  重要提示: 我們建議備份磁碟應不同於資料庫資料和日誌的磁碟。這是資料或日誌磁碟出現故障時訪問備份資料必不可少的。

  要讓 SQL Server 訪問遠端磁碟檔案,SQL Server 服務帳戶必須有權訪問網路共享。這包括備份操作向網路共享中寫入所需的許可權以及還原操作從網路共享中讀取所需的許可權(例如,使用域使用者帳戶)。

  在 SQL Server 的以後版本中將不再支援磁帶備份裝置。磁帶備份裝置的用法類似於磁碟裝置,但下述情況例外:

(1)磁帶裝置必須物理連線到執行 SQL Server 例項的計算機上。不支援備份到遠端磁帶裝置上。

(2)如果磁帶備份裝置在備份操作過程中已滿,但還必須寫入一些資料,則 SQL Server 將提示更換新磁帶並在載入新磁帶後繼續備份操作。


二、介質集(媒體集)

1、介質型別

  包含一個或多個備份介質的集合的備份構成一個介質集。“介質集”是“備份介質”(磁帶或磁碟檔案)的有序集合,使用固定型別和數量的備份裝置向其寫入一個或多個備份操作。

2、新增備份介質

  可以直接新增磁碟、磁帶,也可以先將備份介質設定為“備份裝置”然後再新增進來。

233630525.png

  注意:必須指定介質集使用磁帶機或磁碟驅動器,但不能同時使用兩者。備份裝置的型別和數量是在建立介質集時建立的,不能更改。但是,如有必要,可以在備份和還原操作之間將給定裝置替換為同一型別的裝置。


3、介質簇(媒體簇)

  非映象時,介質簇由介質集中的單個裝置構成;映象時,介質簇由一組映象裝置上建立的備份構成。介質集所使用的備份裝置的數量決定了介質集中介質簇的數量。例如,介質集使用2個非映象備份裝置,則該介質集包含2個介質簇。

  注意:在映象介質中,所有介質簇也是映象的。例如,如果使用六個備份裝置來設定介質集的格式,其中使用了兩個映象,則有三個介質簇,每個介質簇包含兩個相同的備份資料副本。

  介質簇中的每個磁帶或磁碟都分配了“介質序列號”。磁碟的介質序列號通常為 1。在磁帶介質簇中,起始磁帶的序列號為 1,第二盤磁帶的序列號為 2,依此類推。


4、初始化介質集

  介質集是在備份操作過程中通過格式化備份介質(一個或多個磁帶或磁碟檔案)從而在備份介質上建立的。格式化程式會對備份媒體進行以下更改:

(1)刪除舊標頭(如果存在),從而有效地刪除備份媒體中以前的內容。格式化磁帶裝置會刪除當前裝入的磁帶中以前所有內容。格式化磁碟隻影響您為備份操作指定的檔案。

(2)向每個備份裝置中的備份媒體(磁帶或磁碟檔案)寫入新的媒體標頭。

  設定格式後,每個檔案或磁帶都包含介質集的介質標頭,可以開始接收備份內容。有了標頭後,備份操作會將指定資料備份到為該操作指定的所有備份裝置中的備份介質。

232944268.png

  介質標頭是在第一次使用磁帶(或磁碟)執行備份操作時建立的,標頭在重新格式化介質之前保持不變。介質標頭的主要資訊有:介質的名稱(可選)、介質集的唯一ID、介質集中的介質簇數、包含此介質的介質簇的序列號、介質簇的ID、介質簇中此介質的序列號(對於磁碟檔案,此值始終為1;對於磁帶,起始磁帶為1,第二盤磁帶為2,依此類推)、建立標籤的日期和時間、介質集中的映象數(1至4,1表示裝置未映象)。


5、示例

  下例將備份到一個介質集,備份前對新介質集執行格式化操作。該介質集包含2個磁碟檔案和一個備份裝置(同為磁碟檔案)。

BACKUP DATABASE [AdventureWorks2008R2]
TO  DISK = N'C:\Backup\BakFile1.bak',  
DISK = N'C:\Backup\BakFile2.bak',  
[BackupDevice1]
WITH FORMAT, INIT,  
NAME = N'AdventureWorks2008R2-完整 資料庫 備份',
SKIP, NOREWIND, NOUNLOAD,  STATS = 10


三、備份集

1、新建備份集

  成功的備份操作將向介質集中新增一個“備份集”。在每個介質上,備份集都包含說明備份集的標頭。

  下例顯示一個 Transact-SQL 語句,該語句使用三個磁帶機作為備份裝置,為 AdventureWorks2008R2 資料庫建立一個名為 MyAdvWorks_MediaSet_1 的介質集。

BACKUP DATABASE AdventureWorks2008R2
TO TAPE = '\\.\tape0', TAPE = '\\.\tape1', TAPE = '\\.\tape2'
WITH  FORMAT,
  MEDIANAME = 'MyAdvWorks_MediaSet_1';

  如果成功,此備份操作將生成一個新的介質集,該介質集包含一個新介質標頭和一個分佈在三個磁帶裝置上的備份集。下圖說明了這些結果:

231346343.png


2、追加備份集

  為了儘可能利用可用空間,通常將新的備份集追加到現有媒體集。追加到備份時會保留所有以前的備份。

  通常,建立介質集後,後續備份操作將依次向介質集追加其備份集。備份集使用的所有介質構成了介質集,而與所涉及到的介質或備份裝置的數量無關。備份集按照其在介質集中的位置依次編號,從而使您能夠指定還原哪個備份集。

234710301.png

  介質集的每個備份操作都必須寫入相同數量和型別的備份裝置。如果使用多個裝置,則與第一個備份集相同,每個後續備份集的內容都分佈在所有裝置的備份介質中。為了繼續上面的示例,第二個備份操作(差異備份)將向同一介質集追加資訊:

BACKUP DATABASE AdventureWorks2008R2
TO TAPE = '\\.\tape0', TAPE = '\\.\tape1', TAPE = '\\.\tape2'
WITH   NOINIT,
  MEDIANAME = 'AdventureWorksMediaSet1',
  DIFFERENTIAL;

  注意: “追加”是 BACKUP 的預設行為,可以通過使用 NOINIT 選項顯式指定追加。但為清楚起見,要包括此選項。

  如果第二個備份操作成功,將向介質集寫入第二個備份集,並按以下方式分佈備份內容:

231454420.png


3、覆蓋備份集

  SQL Server 備份提供防止意外覆蓋媒體的安全措施。但是,備份集到達預定義的到期日期時,備份會自動覆蓋備份集。

  也可以通過以下選項顯示地說明:

(1)“追加到現有備份集”即:WITH NOFORMAT, NOINIT

(2)“覆蓋所有現有備份集”即:WITH NOFORMAT, INIT

  覆蓋現有備份集是使用 BACKUP 語句的 INIT 選項指定的。此選項將覆蓋媒體上的所有備份集並保留媒體標頭(如果有)。如果沒有媒體標頭,則建立一個標頭。

  對於磁帶標頭,適當地保留標頭還是很有幫助的。對於磁碟備份媒體,只覆蓋備份操作中指定的備份裝置所使用的檔案;磁碟上的其他檔案不受影響。覆蓋備份時,保留現有的所有媒體標頭,同時將新的備份建立為備份裝置中的第一個備份。如果沒有現有的媒體標頭,將自動編寫一個帶相關媒體名稱和媒體描述的有效媒體首部。如果現有的媒體標頭無效,備份操作將終止。如果媒體為空,則使用給定的 MEDIANAME、MEDIAPASSWORD 和 MEDIADESCRIPTION(如果存在)生成新的媒體標頭。

  注意:下一版本的 Microsoft SQL Server 將刪除該功能。請避免在新的開發工作中使用該功能,並著手修改當前還在使用該功能的應用程式。

  “檢查介質集名稱和備份過期時間”可以顯式申明在滿足下列任一條件時不覆蓋備份媒體:

(1)媒體上的現有備份尚未過期(如果指定 SKIP,則不檢查過期。)過期日期將指定備份過期的日期,並可以由另一個備份覆蓋。建立備份時可以指定過期日期。預設情況下,過期日期由 sp_configure 設定的 media retention 選項確定。有關詳細資訊,請參閱 sp_configure (Transact-SQL)。

(2)媒體名稱(如果有)與備份媒體上的名稱不匹配。媒體名稱是一個描述性名稱,用於方便地識別媒體。

  如果確實想要覆蓋現有媒體(例如知道不再需要磁帶上的備份),則可以顯式跳過這些檢查。

  如果備份媒體受 Windows 密碼保護,則 SQL Server 不會寫入媒體。若要覆蓋有密碼保護的媒體,必須重新初始化該媒體。


四、條帶化與映象

1、條帶備份

  例如, BACKUP DATABASE 語句的 TO 子句列出三個裝置,則 BACKUP 將資料分佈在三個介質中。

TO  DISK = N'C:\Backup\BakFile1.bak',  
DISK = N'C:\Backup\BakFile2.bak',  
[BackupDevice1]

  通過一個稱為“並行條帶備份”的程式,SQL Server 能同時執行備份到多個備份裝置,因此可以顯著提高備份操作的速度。這個速度的關鍵是有可用於備份的同一型別獨立的物理裝置,例如3個不同的磁帶裝置,或3個不同的磁碟驅動器。

  當您使用多個磁帶機或磁碟檔案時,請注意以下事項:

(1)備份時的注意事項。由備份操作建立的整個介質集必須用於所有後續備份操作。例如,如果介質集是使用兩臺磁帶備份裝置建立的,則涉及相同介質集的所有後續備份操作都必須使用兩臺備份裝置。

(2)還原時的注意事項。對於任何從磁碟備份進行的還原以及任何聯機還原,必須同時裝入此介質集的全部介質。

(3)壓縮和未壓縮的備份不能在一個介質集中共存。當同時使用壓縮和未壓縮的備份介質時,必須在備份選項中顯式申明格式化介質集。


2、刪除條帶化

  條帶化的介質集如果不再用於原介質集,可以被重新用於組成其他介質集。在被新介質集使用時,必須格式化這些介質(一個或多個磁帶或磁碟檔案),格式化程式會刪除備份介質中以前的內容並向每個備份裝置中的備份介質寫入新的媒體標頭。

3、映象備份

  映象介質集通過降低備份裝置故障的影響來提高備份的可靠性。由於備份是防止資料丟失的最後“防線”,因此備份裝置出現故障的後果是非常嚴重的。隨著資料庫大小的增加,備份裝置或介質發生故障致使備份不可還原的可能性也相應增加。映象備份介質通過提供冗餘來提高備份的可靠性。

  一個映象介質集包含2個到4個映象。每個映象包含介質集中的所有介質簇。映象必須有相同的裝置數,每個介質簇一個裝置。每個映象要求每個介質簇都有一個單獨的備份裝置。例如,包含四個介質簇、三個映象的映象介質集需要十二個備份裝置。所有這些裝置必須是相同的。例如,使用同一製造商提供的同一型號的磁帶機。

  下圖顯示了包含兩個介質簇、兩個映象的映象介質集示例。每個介質簇都包含三個介質卷,這些介質卷在每個映象中都備份一次。

000331692.png

  映象中的對應卷都具有相同的內容。這樣,還原時它們可以互換。例如,在上圖中,tape2 的第三卷可以與 tape0 的第三卷互換。上圖的示例程式碼如下:

BACKUP DATABASE AdventureWorks2008R2
TO TAPE = '\\.\tape0', TAPE = '\\.\tape1'
MIRROR TO TAPE = '\\.\tape2', TAPE = '\\.\tape3'
WITH  FORMAT,
   MEDIANAME = 'AdventureWorks2008R2Set1';

  注意:不能通過刪除某個映象來隱性分割(拆分)映象介質集。如果某個映象中磁帶或磁碟已損壞或已經過重新格式化,則該映象不能再用於其他備份。至少有一個完整映象保持完好無損時,才可以讀取介質集。如果每個映象都丟失了指定的介質簇,則介質集將不再可用。


五、密碼保護

1、介質集密碼

  它對介質集集中儲存的資料提供較弱的保護。當寫入媒體標頭時,將儲存介質集密碼。

  不能更改該密碼。如果格式化介質集時提供了密碼,則在該介質集上建立備份集時必須提供密碼。另外,從該介質集執行任何還原操作時也必須提供介質集密碼。

注意: 只能對 SQL Server 備份和還原操作使用介質。

  若要指定介質集密碼,請在 BACKUP 或 RESTORE 語句中使用 MEDIAPASSWORD 選項。


2、備份集密碼

  它對特定的備份集提供較弱的保護。可以對媒體上的每個備份集使用不同的備份集密碼。備份集密碼是在將備份集寫入媒體時建立的。如果為一個備份集指定了密碼,必須提供這個密碼才能對該備份集執行任何還原操作。

  若要指定備份集密碼,請在 BACKUP 或 RESTORE 語句中使用 PASSWORD 選項。

相關文章