我正在尝试使用完全/差分方法将SQL数据库还原到与备份不同的服务器。 数据库处于简单恢复模式,因为它是一个testing数据仓库。
我有一个完整的备份,大约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链。 谷歌build议这是我们的SSMS版本的一个错误。
谷歌build议解决这个问题的方法是使用WITH REPLACE选项,但是我正在使用该子句。
更多信息:
restore headeronly from disk = 'C:\MTWSQL01_Full_Database.bak' restore headeronly from disk = 'C:\MTWSQL01_Differential_Database.bak'
Full = 1063466000005158400170
DatabaseBackupLSN的差异= 1063466000005158400170
OP和我在一个交互式的聊天会议中解决了这个问题。 事实certificate,有问题的备份文件有多个备份集。 他需要恢复的那个不在位置1,所以与原先恢复的完整备份不匹配。 解决方法是添加一个with file = n (其中n是该文件中的备份集的位置)。