Temos um servidor de banco de dados onde o banco de dados de teste é “atualizado” com o backup do banco de dados prod todos os dias às 22h.
O primeiro backup após a restauração é um backup diferencial, pois estamos usando o
ChangeBackupType = Y
switch.Nosso
CleanupTime
parâmetro está definido para 48 horas, o que funciona bem para backups completos e TLog.No entanto, o
CleanupTime
parâmetro não funciona para os backups Diff criados porque estáChangeBackupType
definido comoY
.
Alguma idéia de onde está o problema? Não usamos explicitamente a tarefa de backups Diff, portanto não há nada que CleanupTime
eu possa definir.
Definição Backup Completo
sqlcmd -E -S $(ESCAPE_SQUOTE(SRVR)) -d aspMaintenance -Q "EXECUTE [dbo].[DatabaseBackup] @Databases = 'ALL_DATABASES', @BackupType = 'FULL', @NumberOfFiles = 1, @Verify = 'N', @CleanupTime = 42, @CheckSum = 'Y', @DirectoryStructure = '{DatabaseName}{DirectorySeparator}{BackupType}_{Partial}_{CopyOnly}', @LogToTable = 'Y'" -b
Backup de log de definição
sqlcmd -E -S $(ESCAPE_SQUOTE(SRVR)) -d aspMaintenance -Q "EXECUTE [dbo].[DatabaseBackup] @Databases = 'ALL_DATABASES', @ChangeBackupType = 'Y', @BackupType = 'LOG', @Verify = 'N', @CleanupTime = 48, @CheckSum = 'Y', @DirectoryStructure = '{DatabaseName}{DirectorySeparator}{BackupType}_{Partial}_{CopyOnly}', @LogToTable = 'Y'" -b
A solução de manutenção do SQL Server de Ola Hallengren, que você está usando para executar suas tarefas de backup, atualmente não faz nenhuma limpeza quando @ChangeBackupType = 'Y' e o tipo de backup são alterados.
Não consegui encontrar nenhuma documentação oficial sobre isso, mas a versão atual do script DatabaseBackup.sql possui verificações que ignoram completamente a limpeza neste caso, como pode ser visto nestes dois links permanentes para as linhas de código relevantes no repositório oficial:
Existem problemas em aberto no repositório oficial para melhorar a limpeza, como os dois vinculados abaixo, mas há muito tempo não há progresso neles.