这就是我所做的:
- 进行了完整备份
- 进行差异备份(完全后立即)
- 将上述文件移至 DR 服务器
- 完全恢复(成功)
- 恢复差分(错误)
RESTORE DATABASE AdventureWorks2017DR FROM DISK = 'AdventureWorks2017_1220.BAK' WITH NORECOVERY
RESTORE DATABASE AdventureWorks2017DR FROM DISK = 'AdventureWorks2017_1220_DIFF.BAK' WITH NORECOVERY
错误:
Msg 3136, Level 16, State 1, Line 34
This differential backup cannot be restored because the database has not been restored to the correct earlier state.
Msg 3013, Level 16, State 1, Line 34
RESTORE DATABASE is terminating abnormally.
为什么它给我一个错误?这两个备份是最后两个。它们之间没有备份。
更新:运行命令RESTORE HEADERONLY FROM DISK
谢谢@AMtwo。你是对的。同一个文件中有多个备份。我找不到一种方法来简单地恢复它们。那可能吗?
要从包含多个备份的备份设备恢复,请指定 FILE 编号,例如
尽管现在每个人都使用文件,但备份设备可能是磁带,没有适当的文件系统。因此 SQL Server 必须管理原始介质并将多个文件附加到磁带。您可以对 FILE 设备执行相同的操作,但通常只是在您忘记将 INIT 添加到 BACKUP 命令时错误地执行此操作。
当您选择要从中恢复备份的设备时,您还可以在文件中选择备份。但是,看起来所有备份都具有相同的名称。
您可能想要取回一个新的完整和差异,并给每个不同的名称。尝试附加日期,例如 AW2017_Full_20211222 和 AW2017_Diff_20211222。这应该为每个文件提供一个备份。