【问题标题】:SQL transaction log shipping after differential backup差异备份后的 SQL 事务日志传送
【发布时间】:2017-12-09 23:31:03
【问题描述】:

我正面临一个场景:

  1. 已创建生产数据库的完整备份
  2. 完整备份已恢复到 DR 数据库
  3. 生产数据库的差异备份已创建,但意外删除
  4. 在生产数据库上启动事务日志备份

问题是,是先生成的事务日志能恢复到容灾数据库,还是先把删除的差异数据库备份恢复到容灾数据库?

【问题讨论】:

    标签: sql-server transaction-log disaster-recovery log-shipping


    【解决方案1】:

    简短的回答是否定的,您需要差异备份或新的完整备份。因此,要么采用新的完整备份来重新启动备份链,要么采用新的差异备份来替换丢失/删除的备份。

    简化,事务日志备份将维护自上次备份以来对数据库所做更改的时间顺序列表(任何备份;完整、差异或其他事务日志备份)。差异备份将保存自上次完全备份以来更改的所有 extents 的列表(因此包括同时已备份的任何事务日志备份)。这也意味着,如果您创建一个完整备份,然后是差异备份,然后是差异备份,则第二个差异备份包含第一个包含的所有内容。

    典型情况是先进行完整备份,然后再进行一些事务日志备份。下一步是差异备份,可能还有更多事务日志备份和差异备份,直到创建新的完整备份。

    这样可以确保在发生灾难时可以备份事务日志的尾部,从而缩短恢复时间。然后,您可以恢复完整备份,然后是最新的差异备份,然后是任何事务日志备份(按时间顺序)。

    【讨论】:

    • 否则我必须生成另一个完整的数据库备份并将其重新还原到 DR 数据库对吗?
    • 新的完整备份或新的差异备份。我用一堆附加信息更新了我的答案。但是,是的,如果差异备份消失了,您要么需要一个新的完整备份,要么需要一个新的差异备份(因为那些只是备份自上次完整备份(包括以前的差异备份)以来所有更改的范围)。
    • 非常清晰有用。非常感谢!我会标记为答案
    • @BogdanSahlean - 这就是我将答案的第一行更改为“a/差异备份”的原因。我将进行编辑以使其更清楚,新的差异备份也可以解决问题。
    • @BogdanSahlean 您确实在我的回答中看到了 simplified 这个词,对吧?此外,问题是删除差异备份后在服务器上创建的 t-log 是否可以恢复
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-18
    相关资源
    最近更新 更多