差异部分备份

本主题与所有 SQL Server 数据库相关。

部分差异备份只与部分备份一起使用。部分差异备份仅记录自上一次部分备份(称为差异“基准”)以来文件组中发生更改的数据区。如果部分备份所包含的数据只有一部分发生了变化,则部分差异备份将小于差异基准而且创建速度更快。对于大型数据库,采用差异备份便于进行数据的频繁备份,从而降低数据丢失的风险。

但是,从部分差异备份进行还原必然要比从部分备份进行还原需要更多的步骤和时间。而且还原过程也更为复杂,因为其中涉及两个备份文件。

部分差异备份旨在与单个差异基准一起使用。尝试创建多基准部分差异备份将导致错误。有关详细信息,请参阅差异备份的基准

注意注意

有关如何使用差异备份的详细信息(包括最佳方法),请参阅使用差异备份

添加、删除或修改部分差异备份中的文件组的影响

下表定义了是否在部分差异备份中自动包括某个文件组。这取决于自作为基准的部分备份以来是否添加或删除了该文件组,或其访问权限是否发生了变化。

对文件组的更改(部分备份之后)

包括还是排除此文件组?

已删除文件组

已排除

注意注意
还原差异备份将删除该文件组。

添加只读文件组

已排除

注意注意
创建部分差异备份之前,应当创建一个所添加文件组的单独的完整文件备份。如果尚未备份文件组,SQL Server 数据库引擎将发出警告,部分差异备份将在不备份只读文件组的情况下成功完成。

添加读/写文件组

已包括

注意注意
还原差异备份将还原此新文件组。

将文件组更改为读/写文件组

如果以下针对文件组的两项条件为真,则包括;否则,备份将失败:

  • 当文件组仍为只读时包括在作为基准的部分备份中

  • 从未进行过备份。

文件组更改为只读

已包括

注意注意

有关在将文件组的权限从读/写更改为只读访问或从只读更改为读/写权限后如何使用部分和部分差异备份的信息,请参阅本主题后面的“更改文件组的访问权限后创建部分备份”。

部分差异备份策略(简单恢复模式)

下图显示了一个将只读文件组的完整和部分差异备份与完整文件备份相结合的备份策略。数据库的第一个备份为完整部分备份。这包括主文件组和读/写辅助文件组 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 或维护计划向导不支持部分备份。

更改文件组的访问权限后创建部分备份

本节仅与包含多个文件组的数据库相关;在简单模式下,仅与只读文件组相关。

在大多数情况下,部分差异备份都能按预期与部分备份一起使用。但是,如果在执行部分备份和执行部分差异备份之间更改了对文件组的只读或读/写权限,就会引起问题。当尝试执行部分差异备份时,可能会遇到错误,具体取决于文件是否包括在部分差异备份中。有关文件组是否自动包括在部分差异备份中的信息,请参阅差异部分备份

最佳方法:   将文件组更改为读/写文件组后,在进行下一次备份时,应执行部分备份,而不是部分差异备份。唯一的例外情况是:您打算在下一次备份之前将文件组更改回只读文件组。

最佳方法: 将文件组更改为只读访问后,请对文件组执行完整文件备份,以使后续的部分差异备份自动跳过该文件组。