Estou tentando testar a restauração de um banco de dados SQL usando uma abordagem completa/diferencial para um servidor diferente do qual foi feito o backup. O banco de dados está no modo de recuperação simples, pois é um data warehouse de teste.
Eu tenho um backup completo de aproximadamente 5 dias e também um diferencial de hoje.
Agora quando tento aplicar o diferencial, recebo a seguinte mensagem:
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.
Originalmente, tentei pelo SSMS, mas ele dizia algo sobre quebrar a cadeia LSN. O Google sugere que esse é um bug da nossa versão do SSMS.
O Google sugere que a maneira de corrigir isso é usar a WITH REPLACE
opção, mas estou usando essa cláusula.
Mais informações:
restore headeronly from disk = 'C:\MTWSQL01_Full_Database.bak'
restore headeronly from disk = 'C:\MTWSQL01_Differential_Database.bak'
CheckpointLSN do Full =1063466000005158400170
DatabaseBackupLSN do Diferencial =1063466000005158400170
O OP e eu descobrimos isso em uma sessão de bate-papo interativa. Acontece que o arquivo de backup em questão tinha vários conjuntos de backup. O que ele precisava restaurar não estava na posição 1 e, portanto, não correspondia ao backup completo que ele restaurou originalmente. A solução foi adicionar a
with file = n
(onde n era a posição daquele conjunto de backup no arquivo).