开发者社区> 问答> 正文

疯狂备份差异备份时间表

我很难找到合适的备份方法,以便可以恢复到特定的时间点。我可以做一个完整的备份/还原,甚至可以还原最后一个差异备份,但是尝试之间进行任何操作都会使我“由于LSN链断裂而无法创建还原计划”,所以我缺少了一些东西。

这是我每天凌晨1点执行的操作:

BACKUP DATABASE MyDatabase TO DISK = @BackupPath
BACKUP LOG MyDatabase TO  DISK = @BackupPath

然后,我每小时执行一次:

BACKUP DATABASE MyDatabase TO DISK = @DIFFERENTIALBackupPath  WITH DIFFERENTIAL
BACKUP LOG MyDatabase TO  DISK = @DIFFERENTIALBackupPath

我可以在@BackupPath还原数据库,然后从@DIFFERENTIALBackupPath应用最新的备份,但是,如果我尝试在时间轴上返回除最新时间以外的任何时间,则会收到该错误。我确实在时间线中看到了标志,这些标志显示了备份的位置。

我究竟做错了什么?

展开
收起
祖安文状元 2020-01-05 14:33:21 509 0
1 条回答
写回答
取消 提交回答
  • 您需要保留所有日志备份。您可以还原完整备份,然后还原所有日志备份。或者,您可以还原完整备份,然后还原在较早的时间点进行的差异备份,然后还原在差异之后进行的日志备份。

    典型的备份顺序可能类似于:

    FLLLLLDLLLLLDLLLLLFLLLLLDLLLLLDLLLLLFLLLLLDLLLLLDLLLLL
                    ^
                    P
    
    

    到指示的日志备份所覆盖的时间点的有效还原序列为:

    FLLLLL LLLLL LLL
    
    

    要么

    F           DLLL
    
    

    要么

    F     DLLLLL LLL
    
    

    差异备份只是减少您需要还原的日志备份数量的捷径。您甚至可以从较早的完整备份开始,只要您拥有完整的日志备份链,直到恢复的时间点即可。

    例如,这是有效的还原序列:

    FLLLLL LLLLL LLLLL LLLLL LLLLL LLLLL LLLLL LLLLL LLLLL

    2020-01-05 14:33:40
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
数据库异地备份及不还原快速查询备份集最佳实践 立即下载
微信SQLite数据库损坏恢复实践 立即下载
低代码开发师(初级)实战教程 立即下载

相关实验场景

更多