備份裝置

進行備份作業時,備份的資料 (「備份」) 會寫入實體備份裝置。「實體備份裝置」是指磁帶機或作業系統提供的磁碟檔案。備份可以寫入 1 到 64 部備份裝置。如果備份需要多部備份裝置,這些裝置都必須對應至單一裝置類型 (磁碟或磁帶)。

[!附註]

當媒體集的第一個備份寫入實體備份裝置時,此裝置就會初始化。單一媒體集是由一組一或多個備份裝置上的備份所組成。「媒體集」是按順序排列的備份媒體、磁帶或磁碟檔案集合,而且它會使用固定類型和編號的備份裝置。如需有關媒體集的詳細資訊,請參閱<媒體集、媒體家族與備份組>。

使用磁碟備份裝置

磁碟備份裝置是指包含一或多個備份檔案的硬碟或其他磁碟儲存媒體。備份檔案是一般作業系統檔案。

如果備份作業將備份附加至媒體集時,磁碟檔案填滿,備份作業就會失敗。由於備份檔案的大小上限是由磁碟裝置上的可用磁碟空間決定,所以備份磁碟裝置的適當大小要根據您的備份大小而定。

磁碟備份裝置可以是簡單的磁碟裝置,例如 ATA 磁碟機。或者,您也可以使用可熱抽換的 (Hot-swappable) 磁碟機,以便您將磁碟機上寫滿的磁碟直接了當地更換成空的磁碟。備份磁碟可以是伺服器上的本機磁碟,也可以是屬於共用網路資源的遠端磁碟。如需如何使用遠端磁碟的詳細資訊,請參閱本主題後面的「備份至網路共用上的檔案」。

SQL Server 管理工具在處理磁碟備份裝置時相當有彈性,因為它們會自動在磁碟檔案上產生具有時間戳記的名稱。

重要事項重要事項

我們建議備份磁碟應該與資料庫資料和記錄磁碟使用不同的磁碟。為了確保您可以在資料或記錄磁碟故障時存取備份,這樣做有其必要。

使用實體名稱來指定備份檔案

使用實體裝置名稱來指定備份檔案的基本 BACKUP 語法為:

BACKUP DATABASE <database_name>

   TO DISK = { 'physical_backup_device_name' | **@**physical_backup_device_name_var }

例如:

BACKUP DATABASE AdventureWorks2008R2 
   TO DISK = 'Z:\SQLServerBackups\AdventureWorks2008R2.bak';
GO

若要在 RESTORE 陳述式中指定實體磁碟裝置,基本語法為:

RESTORE { DATABASE | LOG } <database_name>

   FROM DISK = { 'physical_backup_device_name' | **@**physical_backup_device_name_var }

例如,

RESTORE DATABASE AdventureWorks2008R2 
   FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2008R2.bak'; 

指定磁碟備份檔案的路徑

指定備份檔案時,您應該輸入完整路徑及檔案名稱。當您要備份至檔案時,如果僅指定檔案名稱或相對路徑,便會將備份檔案放在預設的備份目錄中。預設的備份目錄為 C:\Program Files\Microsoft SQL Server\MSSQL.<n>\MSSQL\Backup,其中 <n> 是伺服器執行個體的編號。因此,對預設的伺服器執行個體而言,其預設備份目錄為:C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Backup。

若要避免模稜兩可的情形 (特別是在指令碼中),建議您在每個 DISK 子句中明確指定備份目錄的路徑。不過,當您使用「查詢編輯器」時,這就不是那麼重要。在這種情況下,如果您確定備份檔案是在預設的備份目錄中,即可省略 DISK 子句中的路徑。例如,下列 BACKUP 陳述式會將 AdventureWorks2008R2 資料庫備份到預設備份目錄中的 AdventureWorks2008R2.bak 備份檔案。

BACKUP DATABASE AdventureWorks2008R2 
   TO DISK = ’AdventureWorks2008R2.bak’;
GO

[!附註]

預設位置會儲存在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.n\MSSQLServer 下的 BackupDirectory 登錄機碼。

備份至網路共用上的檔案

為了讓 SQL Server 存取遠端磁碟檔案,SQL Server 服務帳戶必須具有網路共用的存取權。這包括具有讓備份作業寫入網路共用以及讓還原作業從中讀取所需的權限。網路磁碟機和權限的可用性會根據 SQL Server 服務執行的內容而定:

  • 當 SQL Server 在網域使用者帳戶下執行時,若要備份至網路磁碟機,共用磁碟機就必須對應成 SQL Server 正在執行之工作階段中的網路磁碟機。如果是從命令列啟動 Sqlservr.exe,SQL Server 便看得到您登入工作階段中已對應的所有網路磁碟機。

  • 不過,如果 Sqlservr.exe 是以服務方式執行,則 SQL Server 會在另一個與登入工作階段無關的工作階段中執行。服務執行的工作階段可擁有自己的對應磁碟機 (只是它通常沒有)。

  • 您可以使用電腦帳戶代替網域使用者來與網路服務帳戶連接。若要允許從特定電腦備份至共用磁碟機,請將存取權授與電腦帳戶。只要正在寫入備份的 Sqlservr.exe 處理序具有存取權,傳送 BACKUP 命令的使用者是否具有存取權便無關了。

    重要事項重要事項

    透過網路備份資料可能會受到網路問題的影響。因此,我們建議您在使用遠端磁碟時,於備份作業完成後進行驗證。如需詳細資訊,請參閱<驗證備份>。

指定通用命名慣例 (UNC) 名稱

若要在備份或還原命令中指定網路共用,您應該要使用備份裝置檔案的完整通用命名慣例 (UNC) 名稱。UNC 名稱的格式為 \\<Systemname>\<ShareName>\<Path>\<FileName>。

例如:

BACKUP DATABASE AdventureWorks2008R2 
   TO DISK = '\\BackupSystem\BackupDisk1\AW_backups\AdventureWorks2008R2Data.Bak';
GO

使用磁帶裝置

[!附註]

未來的 SQL Server 版本中將會移除磁帶備份裝置的支援。請避免在新的開發工作中使用這項功能,並規劃修改目前使用這項功能的應用程式。

磁帶機必須是 Microsoft Windows 作業系統所支援的,才能將 SQL Server 資料備份到磁帶中。此外,對指定的磁帶機而言,我們建議您僅使用磁帶機製造商所建議的磁帶。如需有關如何安裝磁帶機的詳細資訊,請參閱 Windows 作業系統的文件。

使用磁帶機時,備份作業可能會填滿一捲磁帶,然後繼續寫入另一捲磁帶。每個磁帶都含有媒體標頭。第一個使用的媒體稱為「初始磁帶」。後續的磁帶都稱為接續磁帶,每捲磁帶都有一個媒體序號,後面的磁帶編號比前面的高。例如,與四個磁帶裝置相關聯的媒體集,內含至少四捲初始磁帶;而如果一捲磁帶裝不下整個資料庫,則還會有四捲接續磁帶。附加備份組的時候,您必須掛載整組媒體中的最後一捲磁帶。若未掛載最後一捲磁帶,Database Engine 往前掃描到掛載磁帶的結尾時,便會要求您更換磁帶。此時,請掛載最後一捲磁帶。

使用磁帶備份裝置就像使用磁碟裝置一樣,但有以下例外情況:

  • 磁帶裝置必須在實體上連接至執行 SQL Server 執行個體的電腦。不支援備份至遠端磁帶裝置。

  • 如果在備份作業進行時磁帶備份裝置填滿,但還必須寫入更多資料的話,SQL Server 會提示換新磁帶,並於載入新磁帶後繼續進行備份作業。

管理開啟的磁帶

若要檢視開啟的磁帶裝置清單以及掛載要求的狀態,請查詢 sys.dm_io_backup_tapes 動態管理檢視。這個檢視顯示所有開啟的磁帶。這包括正在等待下一個 BACKUP 或 RESTORE 作業而暫時閒置的使用中磁帶。

如果磁帶不慎保持在開啟狀態,釋放磁帶最快速的方式就是使用下列命令:RESTORE REWINDONLY FROM TAPE =<backup_device_name>。如需詳細資訊,請參閱<RESTORE REWINDONLY (Transact-SQL)>。

使用實體名稱來指定備份磁帶

使用磁帶機之實體裝置名稱來指定備份磁帶的基本 BACKUP 語法為:

BACKUP { DATABASE | LOG } <database_name>

   TO TAPE = { 'physical_backup_device_name' | **@**physical_backup_device_name_var }

例如:

BACKUP LOG AdventureWorks2008R2 
   TO TAPE = '\\.\tape0';
GO

若要在 RESTORE 陳述式中指定實體磁帶裝置,基本語法為:

RESTORE { DATABASE | LOG } <database_name>

   FROM TAPE = { 'physical_backup_device_name' | **@**physical_backup_device_name_var }

磁帶專用的 BACKUP 和 RESTORE 選項

為了方便磁帶管理作業,BACKUP 陳述式提供了下列磁帶專用的選項:

  • { NOUNLOAD | UNLOAD }

    您可以控制在備份或還原作業之後,備份磁帶是否會自動從磁帶機卸載。UNLOAD/NOUNLOAD 是工作階段設定,在工作階段的存留期間會一直保持不變,直到指定其他設定來進行重設為止。

  • { REWIND | NOREWIND }

    您可以控制在備份或還原作業之後,SQL Server 會將磁帶保持在開啟狀態,還是會在磁帶填滿之後,釋出並倒轉磁帶。預設行為是倒轉磁帶 (REWIND)。

[!附註]

如需 BACKUP 語法和引數的詳細資訊,請參閱<BACKUP (Transact-SQL)>。如需 RESTORE 語法和引數的詳細資訊,請分別參閱<RESTORE (Transact-SQL)>和<RESTORE 引數 (Transact-SQL)>。

使用邏輯備份裝置

「邏輯備份裝置」是選用的使用者自訂名稱,而且它會指向特定的實體備份裝置 (磁碟檔案或磁帶機)。邏輯備份裝置可讓您在參考對應的實體備份裝置時,使用間接取值。

定義邏輯備份裝置會需要將邏輯名稱指派給實體裝置。例如,您可以定義邏輯裝置 AdventureWorks2008R2Backups 以指向 Z:\SQLServerBackups\AdventureWorks2008R2.bak 檔案或 \\.\tape0 磁帶機。BACKUP 與 RESTORE 命令便可以將 AdventureWorks2008R2Backups 指定為備份裝置,而不需設定 DISK = 'Z:\SQLServerBackups\AdventureWorks2008R2.bak' 或 TAPE = '\\.\tape0'。

邏輯裝置名稱在伺服器執行個體上所有邏輯備份裝置中都必須是唯一的。若要檢視現有的邏輯裝置名稱,請查詢 sys.backup_devices 目錄檢視。這個檢視會顯示每個邏輯備份裝置的名稱,並且描述對應實體備份裝置的類型及實體檔案名稱或路徑。

定義邏輯備份裝置之後,您就可以在 BACKUP 或 RESTORE 命令中指定邏輯備份裝置來替代裝置的實體名稱。例如,下列陳述式會將 AdventureWorks2008R2 資料庫備份到 AdventureWorks2008R2Backups 邏輯備份裝置。

BACKUP DATABASE AdventureWorks2008R2 
   TO AdventureWorks2008R2Backups;
GO

[!附註]

在指定的 BACKUP 或 RESTORE 陳述式中,邏輯備份裝置名稱和對應的實體備份裝置名稱是可互換的。

使用邏輯備份裝置的其中一項優點是,它比冗長的路徑名稱更容易使用。如果您打算將一系列備份寫入相同的路徑名稱或磁帶裝置,使用邏輯備份裝置會很有用。邏輯備份裝置對於識別磁帶備份裝置特別有用。

您可以撰寫備份指令碼來使用特定的邏輯備份裝置。這樣您就可以不更新指令碼而切換到新的實體備份裝置。切換時會涉及下列程序:

  1. 卸除原始邏輯備份裝置。

  2. 定義使用原始邏輯裝置名稱,但對應至不同實體備份裝置的新邏輯備份裝置。邏輯備份裝置對於識別磁帶備份裝置特別有用。

若要定義邏輯備份裝置

若要刪除邏輯備份裝置

若要使用邏輯備份裝置 (SQL Server Management Studio)

若要使用邏輯備份裝置 (Transact-SQL)

鏡像備份媒體集

備份媒體集的鏡像功能可減少備份裝置功能異常時的影響。這些功能異常會特別嚴重,因為備份是避免資料遺失的最後一道防線。隨著資料庫大小的成長,備份裝置或媒體故障而導致備份無法還原的可能性也越大。鏡像備份媒體可透過提供實體備份裝置的備援性,藉以提升備份的可靠性。如需詳細資訊,請參閱<使用鏡像備份媒體集>。

[!附註]

只有 SQL Server 2005 Enterprise Edition 和更新版本才支援鏡像備份媒體集。

封存 SQL Server 備份

我們建議您使用檔案系統備份公用程式來封存磁碟備份,並將封存保存在異地。使用磁碟的優點是,您可以使用網路將封存的備份寫入異地磁碟。使用磁帶的優點是,您可以累積一系列封存的備份,直到確定不再需要它們為止。

常見的封存方法是將 SQL Server 備份寫入本機備份磁碟、將備份封存至磁帶,然後將磁帶存放在異地。