差异数据库备份

“差异数据库备份”只记录自上次完整数据库备份后更改的数据。此完整备份称为“差异基准”。差异数据库备份比完整数据库备份更小、更快。这会缩短备份时间,但将增加复杂程度。对于大型数据库,差异备份的间隔可以比完整数据库备份的间隔更短。这将降低工作丢失风险。

如果数据库的某个子集比该数据库的其余部分修改得更为频繁,则差异数据库备份特别有用。在这些情况下,使用差异数据库备份,您可以频繁执行备份,并且不会产生完整数据库备份的开销。

注意注意

当创建差异基准时,即使只有一个文件组是只读的,读/写数据库的差异备份也能正常执行。对于读/写数据库的任何差异备份,数据库引擎都是在主文件中记录差异基准。

安排差异数据库备份的最佳方法

对于大型数据库,完整数据库备份需要大量磁盘空间。为了节省时间和磁盘空间,可以在一次完整数据库备份后安排多次差异备份。每次连续的差异数据库备份都大于前一次备份,这就需要更长的备份时间、还原时间和更大的空间。因此,建议您定期执行新的完整备份以提供新的差异基准。

当您使用差异数据库备份时,我们建议您最好遵循以下原则:

  1. 在每次完整数据库备份后,定期安排差异数据库备份。例如,可以每四小时执行一次差异数据库备份,对于活动性较高的系统,此频率可以更高。

  2. 在确保差异备份不会太大的情况下,定期安排新的完整数据库备份。例如,可以每周备份一次完整数据库。

注意注意

在完整恢复模式下,还必须安排事务日志备份。建议日志备份的频率高于差异数据库备份。有关详细信息,请参阅使用事务日志备份

差异数据库备份策略(简单恢复模式)

在简单恢复模式下,备份之间的工作丢失风险随着时间的推移而增加。下图阐释的备份策略通过使用由差异数据库备份补充的数据库备份,将减少工作丢失的风险。在第一个数据库备份完成后,会接着进行 3 个差异备份。第三个差异备份已经足够大,所以下一个备份为完整数据库备份。此数据库备份将生成新的差异基准。

完整数据库备份和差异数据库备份

差异数据库备份策略(完整恢复模式)

在完整恢复模式和大容量日志恢复模式下,差异数据库备份将最大限度地减少在还原数据库时前滚事务日志备份所需的时间。差异数据库备份可将数据库还原到差异备份完成的时间。

下图显示了使用差异数据库备份补充完整数据库备份的备份策略以及一系列例程日志备份。使用事务日志备份可减少潜在的工作丢失风险,使该风险仅在最新日志备份之后存在。在第一个数据库备份完成后,会接着进行 3 个差异备份。第三个差异备份已经足够大,所以下一个备份为完整数据库备份。这一完整数据库备份将生成新的差异基准。

完整数据库备份和差异数据库备份及日志备份

在创建此图中的第一个数据库备份之前,数据库存在潜在的工作丢失风险(从时间 t0 到时间 t1)。该备份建立之后,例程日志备份将工作丢失的风险降为丢失自最近日志备份之后所做的更改(最近备份的时间为 t14)。如果出现磁盘故障,则数据库管理员应该立即尝试备份活动日志(日志尾部)。如果这个“结尾日志备份”成功,则数据库就可以还原到故障点。

注意注意

事务日志备份使您能将数据库恢复到故障点。有关详细信息,请参阅将数据库还原到备份中的某个时间点

创建和安排差异数据库备份

创建差异数据库备份所需的 BACKUP 语法如下:

BACKUP DATABASE database_name TO <backup_device> WITH DIFFERENTIAL

创建差异数据库备份

注意注意

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

计划备份作业

使用差异数据库备份还原数据库

在还原差异备份之前,必须先还原其基准。如果按指定基准进行一系列完整差异备份,则在还原时只需还原基准和最近的差异备份。有关详细信息,请参阅执行数据库完整还原(简单恢复模式)执行数据库完整还原(完整恢复模式)

重要说明重要提示

建议完全按照保留的基准保留创建的所有差异备份。如果最近的差异备份损坏了,则可以使用上一个差异备份还原数据库。