Considere um cenário em que você tem um AG em execução em 3 nós e seus backups estão sendo copiados localmente. Cada nó tem todos os trabalhos padrão implantados e programados para serem executados ao mesmo tempo. Como os bancos de dados fazem parte do AG, os backups estão sendo feitos apenas no NÓ PRIMÁRIO. Após o failover para um nó diferente, os backups armazenados no PRIMARY anterior não serão excluídos.
Eu pensei que isso poderia estar acontecendo, pois o padrão para a limpeza é AFTER_BACKUP e como nenhum backup estava acontecendo nesse nó, a limpeza não estava acontecendo. Eu tentei mudar isso para 'BEFORE_BACKUP' sem sucesso.
Estou faltando alguma coisa óbvia ou há algo que eu possa fazer?
Comando em execução em cada nó
sqlcmd -E -S $(ESCAPE_SQUOTE(SRVR)) -d DBAAdmin -Q "EXECUTE [dbo].[DatabaseBackup] @Databases = 'USER_DATABASES', @Directory = N'L:\Backups', @BackupType = 'FULL',@Compress='Y', @Verify = 'Y', @CleanupTime = 72, @CheckSum = 'Y', @LogToTable = 'Y'" -b
obrigada
O design atual é que o procedimento armazenado decidirá se o backup do banco de dados deve ser feito. Somente se for necessário fazer backup do banco de dados, ele entrará no código que faz o trabalho (cria subdiretórios, backup, verificação e limpeza).
Pode fazer sentido que, se você estiver executando com @CleanupMode = 'BEFORE_BACKUP', ele exclua os backups, mesmo que não seja necessário fazer backup do banco de dados.
Você poderia criar um problema para isso no GitHub.
https://github.com/olahallengren/sql-server-maintenance-solution/issues