Estou usando o script Ola Hallengrens DatabaseBackup . Estou armazenando meus backups no armazenamento de Blob do Azure usando o parâmetro @url. Tudo está funcionando bem, no entanto, estou procurando uma maneira de definir uma política de retenção para esses backups - atualmente presumo que eles vivam lá para sempre até que eu os exclua manualmente. Tentei usar o parâmetro @CleanupTime, mas recebi o seguinte erro
The value for the parameter @CleanupTime is not supported
Existe alguma maneira de eu definir isso?
Editar: SQL sendo executado para o backup
sqlcmd -E -S $(ESCAPE_SQUOTE(SRVR)) -d DBATools -Q \
"EXECUTE [dbo].[DatabaseBackup] \
@Databases = 'USER_DATABASES', \
@BackupType = 'LOG', \
@Verify = 'Y', \
@Compress = 'Y', \
@CheckSum = 'Y', \
@LogToTable = 'Y', \
@ChangeBackupType='Y', \
@url='https://example.blob.core.windows.net/backups', \
Credential='AzureBlobBackups'" -b
Para limpar arquivos no armazenamento de blobs do Azure, é necessário o PowerShell ou passar por algum aplicativo como o Azure Explorer . Portanto, é provável que o script de backup de Ola não o suporte, pois não há nenhum comando ou procedimento T-SQL nativo para acessar o armazenamento de blob dessa maneira.
Ao excluir arquivos, você precisará contabilizar qualquer um que ainda tenha uma concessão ativa. O BOL tem um código para lidar com a eliminação das concessões ativas .
Eu recomendaria usar XP_Delete_File como sua solução.
Aqui está um link para o script e uso dele. Link
Xp_delete_file usa cinco parâmetros:
1.File Type = 0 para arquivos de backup ou 1 para arquivos de relatório.
2.Folder Path = A pasta para deletar os arquivos. O caminho deve terminar com uma barra invertida "\".
3.File Extension = Pode ser 'BAK' ou 'TRN' ou o que você usa normalmente.
4.Date = A data limite para quais arquivos precisam ser excluídos.
5.Subfolder = 0 para ignorar subpastas, 1 para excluir arquivos em subpastas.
Aqui está o script de amostra para percorrer e excluir backups.