Sql-Server
恢復差異數據庫文件“備份集包含現有數據庫以外的數據庫的備份”
我正在嘗試使用完整/差異方法將 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 是該備份集在文件中的位置)。