日志备份是否依赖于差异备份?

dsu*_*suy 6 sql-server backup transaction-log

我设置了以下备份策略:

备份策略

到目前为止,我的理解是: 差异备份不会截断事务日志,因此,差异备份和日志备份之间没有关系,两者可以并行共存而不会相互影响。

基于这种理解,我认为我将有两种选择来完全恢复到最近的状态。

替代方案#1: 恢复序列号一

这个替代 #1 可以按预期工作,没有问题。

备选方案#2: 恢复序列号二

此替代方法 #2 显示以下错误。

消息 4305,级别 16,状态 1,第 53 行 此备份集中的日志从 LSN 144000000122400001开始,它太新,无法应用于数据库。 可以还原包含 LSN 73000000188800001的早期日志备份。

分析备份历史后,我可以得出结论,如果在日志备份之前有差异备份,则必须在恢复备份之前恢复最新的差异备份。

查看备份历史记录

到目前为止,我一直认为由于 Full/Diff 备份不会影响链日志,因此差异备份主要是通过减少要恢复的日志备份数量来缩短恢复时间。

但是,如此处所示,如果尚未恢复 DIFF 备份,则不允许仅基于日志备份执行完全恢复,因此,我的问题是:

需要 DIFF 备份以允许恢复序列 #2 中的 LOG 恢复背后的原因是什么?

Kin*_*hah 5

差异备份不会截断事务日志,因此,差异备份和日志备份之间没有关系,两者可以并行共存而不会相互影响。

这是正确的理解。在完全恢复中,只有事务日志备份将允许日志截断。

我一直认为由于 Full/Diff 备份不会影响链日志,因此差异备份主要是为了通过减少要恢复的日志备份数量来缩短恢复时间。

是的,这也是正确的。事实上,当日志传送中断时(例如,某些进程需要一个 NON COPY_ONLY 日志备份),重建日志传送的最快方法是进行差异备份并将其恢复到二级备份,然后进行日志备份以建立日志链。

事务日志和差异备份之间确实存在很强的依赖性。事实上,如果我丢失了最新的差异备份,我将无法恢复所有内容

不。这不是 100% 正确的。Diff 和 t-log 备份是独立的。

Diff 将允许您跳过需要恢复的日志备份。但是要进行时间点恢复,您将需要一个日志备份(使用 STOP AT 命令进行时间点恢复)。

有关更多详细信息,请参阅我的回答 -如果后者损坏,则日志备份与差异备份

sp_RestoreGene将自动为您构建正确的序列。

需要 DIFF 备份以允许恢复序列 #2 中的日志恢复背后的原因是什么?

这是证明您不需要差异备份来允许在恢复序列中进行日志恢复的最小存储库