如果后者损坏,则日志备份与差异备份

GHa*_*uan 4 sql-server backup

在完全恢复模式下,差异备份会“破坏”之前的日志备份吗?

让我举个例子:假设我们有以下备份:

  • 完整备份 1
  • 日志备份 1
  • 日志备份 2
  • 差异备份 1
  • 日志备份 3
  • 日志备份 4

在这种情况下,通常要恢复,可以按如下方式恢复:

  • 完整备份 1
  • 差异备份 1
  • 日志备份 3
  • 日志备份 4

我的问题如下:如果 DIFF Backup 1 文件以某种方式损坏,那么我是否可以仅使用 FULL 和 LOG 备份来恢复数据库?像这样:

  • 完整备份 1
  • 日志备份 1
  • 日志备份 2
  • 日志备份 3
  • 日志备份 4

任何帮助表示赞赏。如果这已在另一篇文章中得到解答,请告诉我(我尝试搜索)。

Kin*_*hah 7

在完全恢复模式下,差异备份会“破坏”之前的日志备份吗?

不会。差异备份不会破坏日志链。日志备份依赖于LSN(日志序列号)

日志链在以下情况下被破坏:

  • 您无需使用COPY_ONLY选项即可进行临时日志备份。
  • 当您更改恢复模式时,例如从完整模式更改为简单模式。
  • 当您使用 TRUNCATE_ONLY 或 NO_LOG(在 SQL 2008 中均已弃用)或备份到NUL(就像备份并删除它一样!)
  • 当您从数据库快照恢复数据库时。对于这种情况,您必须进行完整备份 - 即使差异也不起作用!

如果 DIFF 备份 1 文件以某种方式损坏,那么我可以仅使用 FULL 和 LOG 备份来恢复数据库吗?

是的,前提是日志备份也没有损坏。由于差异已损坏,您的后续备份可能会损坏。

您甚至可以从差异备份重新初始化辅助日志传送数据库,然后如果您的日志备份链中断并且没有运行完整备份(或者您使用 COPY_ONLY 选项运行完整备份),则开始应用日志备份。

您必须小心,运行没有 COPY_ONLY 的完整备份将重置差异基础,因为每个差异备份都将包含自上次完整备份以来的更改。

阅读这些相关的答案: