Я пытаюсь протестировать восстановление базы данных 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 и I разобрался в интерактивном чате. Оказывается, у рассматриваемого файла резервной копии было несколько наборов резервных копий. Та, которую ему нужно было восстановить, не находилась в позиции 1 и поэтому не соответствовала полной резервной копии, которую он восстановил изначально. Решением было добавить с file = n
(где n - позиция этого набора резервных копий в файле).