Isto é o que eu fiz:
- Fez backup completo
- Fez backup diferencial (imediatamente após completo)
- Arquivos acima movidos para o servidor DR
- Restauração completa (com sucesso)
- Restaurar diferencial (erro)
RESTORE DATABASE AdventureWorks2017DR FROM DISK = 'AdventureWorks2017_1220.BAK' WITH NORECOVERY
RESTORE DATABASE AdventureWorks2017DR FROM DISK = 'AdventureWorks2017_1220_DIFF.BAK' WITH NORECOVERY
Erro:
Msg 3136, Level 16, State 1, Line 34
This differential backup cannot be restored because the database has not been restored to the correct earlier state.
Msg 3013, Level 16, State 1, Line 34
RESTORE DATABASE is terminating abnormally.
Por que me dá um erro? Esses dois backups são os dois últimos. Não há backups entre eles.
Atualização : comando executadoRESTORE HEADERONLY FROM DISK
Obrigado @AMtwo. Você está certo. Existem vários backups no mesmo arquivo. Não consegui encontrar uma maneira de simplesmente restaurar todos eles. Isso é possível?
Para restaurar de um dispositivo de backup contendo vários backups, especifique o número do FILE, por exemplo
Embora todos usem arquivos hoje em dia, um dispositivo de backup pode ser uma fita, sem um sistema de arquivos adequado. Portanto, o SQL Server teve que gerenciar a mídia bruta e anexar vários arquivos à fita. Você pode fazer a mesma coisa com dispositivos FILE, normalmente é feito apenas por engano, quando você esquece de adicionar INIT ao comando BACKUP.
Ao escolher o dispositivo de onde o backup deve ser restaurado, você também pode escolher o backup dentro do arquivo. No entanto, parece que todos os backups têm o mesmo nome.
Você pode querer pegar um novo full e diff de volta e dar a cada um um nome distinto. Tente anexar a data, como AW2017_Full_20211222 e AW2017_Diff_20211222. Isso deve gerar um backup por arquivo.