Sql-Server

恢復差異數據庫文件“備份集包含現有數據庫以外的數據庫的備份”

  • October 30, 2015

我正在嘗試使用完整/差異方法將 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 是該備份集在文件中的位置)。

引用自:https://serverfault.com/questions/732648