我正在尝试使用完整/差异方法将 SQL 数据库还原到与备份不同的服务器。该数据库处于简单恢复模式,因为它是一个测试数据仓库。
我有一个大约 5 天前的完整备份,并且与今天有所不同。
现在,当我尝试应用差异时,我收到以下消息:
RESTORE DATABASE PAS_DWH_ME
FROM DISK='C:\MTWSQL01_Differential_Database.bak'
WITH REPLACE
Msg 3154, Level 16, State 4, Line 1
The backup set holds a backup of a database other than the existing 'PAS_DWH_ME' database.
Msg 3013, Level 16, State 1, Line 1
RESTORE DATABASE is terminating abnormally.
我最初通过 SSMS 尝试过,但它说了一些关于打破 LSN 链的内容。Google 认为这是我们的 SSMS 版本的错误。
Google 建议解决此问题的方法是使用该WITH REPLACE
选项,但我使用的是该子句。
更多信息:
restore headeronly from disk = 'C:\MTWSQL01_Full_Database.bak'
restore headeronly from disk = 'C:\MTWSQL01_Differential_Database.bak'
完整的 CheckpointLSN =1063466000005158400170
差异的 DatabaseBackupLSN =1063466000005158400170
OP 和我在交互式聊天会话中发现了这一点。事实证明,有问题的备份文件有多个备份集。他需要恢复的备份不在位置 1,因此与他最初恢复的完整备份不匹配。解决方案是添加一个
with file = n
(其中 n 是该备份集在文件中的位置)。