差異部分備份

這個主題是有關所有的 SQL Server 資料庫。

差異部分備份僅限用於部分備份。差異部分備份僅記錄自上一次部分備份後在檔案群組中變更過的資料範圍,稱為差異「基底」。如果部分備份所擷取的資料,只有部分變更過,差異部分備份會比基底更小,而且建立起來更快。在大型資料庫中,進行差異備份有利於經常備份資料以降低資料遺失的風險。

不過,從差異部分備份中還原較之從部分備份中還原,勢必要採取更多的步驟和時間。此外,還原程序也會更複雜,因為其中涉及兩個備份檔案。

差異部分備份主要是用於單一差異基底。嘗試建立多重基底差異部分備份會導致錯誤。如需詳細資訊,請參閱<差異備份的基底>。

[!附註]

如需有關如何使用差異備份的詳細資訊 (包括最佳作法),請參閱<使用差異備份>。

新增、刪除或修改檔案群組對部分差異備份的影響

下表定義檔案群組是否會自動併入差異部分備份中。這是根據自從部分備份 (做為基底) 以後,檔案群組是否已新增、刪除或其存取權是否已變更。

對檔案群組的變更 (自從部分備份以後)

這個檔案群組已併入或已排除?

檔案群組已刪除

已排除

附註附註
還原差異備份會卸除該檔案群組。

已新增唯讀檔案群組

已排除

附註附註
建立部分差異備份之前,您應該建立新增檔案群組的個別完整檔案備份。如果還沒有備份檔案群組,SQL Server Database Engine 會發出警告,而且差異部分備份會順利完成,但是不會備份該唯讀檔案群組。

已新增讀取/寫入檔案群組

已併入

附註附註
還原差異備份將會還原此新檔案群組。

檔案群組變更為讀取/寫入

如果檔案群組符合下列任一條件,便會併入;否則,備份會失敗:

  • 當檔案群組還是唯讀時,已併入在基底部分備份中。

  • 從未備份過。

檔案群組變更為唯讀

已併入

[!附註]

如需有關在檔案群組的存取權限從讀取/寫入變更為唯讀,或從唯讀變更為讀取/寫入之後,如何使用部分和差異部分備份的詳細資訊,請參閱本主題稍後的「變更檔案群組的存取權之後建立部分備份」。

差異部分備份策略 (簡單復原模式)

下圖顯示結合完整和差異部分備份以及唯讀檔案群組之完整檔案備份的備份策略。在資料庫上的第一個備份是完整部分備份。這包括主要檔案群組和讀寫的次要檔案群組 A。下一個備份是兩個唯讀檔案群組 (B 和 C) 的完整檔案備份。接下來,進行兩個差異部分備份。最後,建立第二個完整部分備份,以提供下一次差異部分備份 (圖中未顯示) 的新基底。

結合部分和檔案群組備份

建立差異部分備份

若要建立差異部分備份,您必須使用 BACKUP 陳述式。陳述式必須包含 DIFFERENTIAL 選項,還有 READ_WRITE_FILEGROUPS 選項。如果最近一次部分備份 (差異基底) 包含任何唯讀檔案或檔案群組,您也必須在陳述式中一一指定。建立差異部分備份所需的 BACKUP 語法:

BACKUP DATABASE database_name READ_WRITE_FILEGROUPS [ ,<file_filegroup_list> ] TO <backup_device> WITH DIFFERENTIAL

[!附註]

SQL Server Management Studio 或「維護計畫精靈」不支援部分備份。

變更檔案群組的存取權之後建立部分備份

本節只與包含多個檔案群組 (在簡單模式下,則只有唯讀檔案群組) 的資料庫有關。

幾乎在所有情況中,差異部分備份都會使用部分備份。不過,如果在進行部分備份和進行差異部分備份的中間,變更了檔案群組的唯讀或讀取/寫入權限,則會發生問題。當您試著使用差異部分備份時,可能發生錯誤,這要看檔案是否併入差異部分備份中。如需有關檔案群組是否自動併入差異部分備份中的詳細資訊,請參閱<差異部分備份>。

**最佳作法:**將檔案群組變更為讀取/寫入之後,下一個要進行的備份應該是部分備份,而不是差異部分備份。唯一的例外情況是,當您打算在下一次備份之前,將檔案群組變更回唯讀時。

**最佳作法:**將檔案群組變更為唯讀存取權之後,請建立檔案群組的完整檔案備份,讓後續的差異部分備份自動略過檔案群組。