SQL 差异备份后传送事务日志
SQL transaction log shipping after differential backup
我面临一个场景:
- 已创建生产数据库的完整备份
- 完整备份恢复到 DR 数据库
- 已创建生产数据库的差异备份,但被意外删除
- 在生产数据库上开始事务日志备份
问题是,首先生成的事务日志是否可以恢复到容灾库中,还是删除的差异数据库备份必须先恢复到容灾库中?
简短的回答是否定的,您需要 a/the 差异备份或新的完整备份。因此,要么进行新的完整备份以重新启动备份链,要么进行新的差异备份以替换 lost/deleted 一个。
简单来说,事务日志备份将维护自上次备份(任何备份;完整备份、差异备份或其他事务日志备份)以来对数据库所做更改的时间顺序列表。差异备份将保存自上次完整备份以来更改的所有 extents 的列表(因此包括同时已备份的任何事务日志备份)。这也意味着如果您创建完整备份,然后创建差异备份,再创建差异备份,则第二个差异备份包含第一个差异备份包含的所有内容。
典型的情况是进行完整备份,然后进行一些事务日志备份。下一步是差异备份,可能还有更多事务日志备份和差异备份,直到创建新的完整备份。
这确保在发生灾难时可以备份事务日志的尾部,从而缩短恢复时间。然后您可以还原完整备份,然后是最新的差异备份,然后是任何事务日志备份(按时间顺序)。
我面临一个场景:
- 已创建生产数据库的完整备份
- 完整备份恢复到 DR 数据库
- 已创建生产数据库的差异备份,但被意外删除
- 在生产数据库上开始事务日志备份
问题是,首先生成的事务日志是否可以恢复到容灾库中,还是删除的差异数据库备份必须先恢复到容灾库中?
简短的回答是否定的,您需要 a/the 差异备份或新的完整备份。因此,要么进行新的完整备份以重新启动备份链,要么进行新的差异备份以替换 lost/deleted 一个。
简单来说,事务日志备份将维护自上次备份(任何备份;完整备份、差异备份或其他事务日志备份)以来对数据库所做更改的时间顺序列表。差异备份将保存自上次完整备份以来更改的所有 extents 的列表(因此包括同时已备份的任何事务日志备份)。这也意味着如果您创建完整备份,然后创建差异备份,再创建差异备份,则第二个差异备份包含第一个差异备份包含的所有内容。
典型的情况是进行完整备份,然后进行一些事务日志备份。下一步是差异备份,可能还有更多事务日志备份和差异备份,直到创建新的完整备份。
这确保在发生灾难时可以备份事务日志的尾部,从而缩短恢复时间。然后您可以还原完整备份,然后是最新的差异备份,然后是任何事务日志备份(按时间顺序)。