Sql server 差分备份和时间线恢复让人抓狂

Sql server 差分备份和时间线恢复让人抓狂,sql-server,Sql Server,我很难找到正确的备份方法,以便能够恢复到特定的时间点。我可以很好地执行完整备份/恢复,甚至可以恢复最后一次差异备份,但尝试执行这两次备份之间的任何操作都会导致“由于LSN链中断而无法创建恢复计划”,因此我遗漏了一些内容 以下是我每天凌晨1点做的事情: BACKUP DATABASE MyDatabase TO DISK = @BackupPath BACKUP LOG MyDatabase TO DISK = @BackupPath 然后,每小时我都会这样做: BACKUP DATABASE

我很难找到正确的备份方法,以便能够恢复到特定的时间点。我可以很好地执行完整备份/恢复,甚至可以恢复最后一次差异备份,但尝试执行这两次备份之间的任何操作都会导致“由于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还原数据库,然后应用@BackupPath的最新备份,但是,如果我尝试在时间轴中返回到除最新时间以外的任何内容,我会得到该错误。我确实看到时间线中显示备份完成位置的标志

我做错了什么?

您需要保留所有日志备份。您可以恢复完整备份,然后恢复到时间点的所有日志备份。或者,您可以恢复完整备份,然后是在较早的时间点进行的差异备份,然后是在差异备份之后进行的日志备份

典型的备份顺序可能如下所示:

FLLLLLDLLLLLDLLLLLFLLLLLDLLLLLDLLLLLFLLLLLDLLLLLDLLLLL
                ^
                P
到指定日志备份所涵盖的时间点的有效还原顺序为:

FLLLLL LLLLL LLL

差异备份只是减少需要恢复的日志备份数量的快捷方式。您甚至可以从较旧的完整备份开始,只要您有一个完整的日志备份链,直到恢复的时间点

例如,这是一个有效的恢复序列:

FLLLLL LLLLL LLLLL LLLLL LLLLL LLLLL LLLLL LLLLL LLLLL

医生回答你的问题了吗?所以我应该每小时做一次日志备份,而不是差分备份,因为一旦我做了一次差分备份,我就不能再进行备份了?不,差分并不能阻止任何事情。您需要完整备份和所有日志备份。你可以选择使用一个差分跳过一些日志备份。这基本上就是我所想的,这让我回到了最初的问题。由于我每小时都进行差异/日志备份,为什么在尝试返回到某个时间点时会出现“LSI”错误?您永远不能返回到某个时间点,只能向前。所以你在目标时间点之后应用了一个微分。
F     DLLLLL LLL
FLLLLL LLLLL LLLLL LLLLL LLLLL LLLLL LLLLL LLLLL LLLLL