恢复差异数据库文件“备份集保存了现有数据库以外的其他数据库的备份”

恢复差异数据库文件“备份集保存了现有数据库以外的其他数据库的备份”

我正在尝试使用完整/差异方法测试将 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

答案1

楼主和我在一次互动聊天中搞清楚了这个问题。原来,这个备份文件有多个备份集。他需要恢复的那个备份集不在位置 1,因此与他最初恢复的完整备份不匹配。解决办法是添加一个with file = n(其中 n 是该备份集在文件中的位置)。

相关内容