我正在使用Ola Hallengrens 数据库备份脚本。我使用 @url 参数将备份存储在 Azure Blob 存储中。一切正常,但我正在寻找一种方法来为这些备份设置保留策略——目前我假设它们永远存在,直到我手动删除它们。我尝试使用 @CleanupTime 参数但出现以下错误
The value for the parameter @CleanupTime is not supported
有什么办法可以设置吗?
编辑:为备份运行的 SQL
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
为了清理 Azure blob 存储中的文件,需要 PowerShell 或通过Azure Explorer等应用程序。因此,Ola 的备份脚本很可能不支持它,因为没有本地 T-SQL 命令或过程以这种方式访问 blob 存储。
当您删除文件时,您需要考虑任何可能仍有有效租约的文件。BOL 有处理删除活动租约的代码。
我建议使用 XP_Delete_File 作为您的解决方案。
这是脚本和使用它的链接。 关联
xp_delete_file 有五个参数:
1.文件类型 = 0 用于备份文件或 1 用于报告文件。
2.Folder Path = 删除文件的文件夹。路径必须以反斜杠“\”结尾。
3.文件扩展名 = 这可以是“BAK”或“TRN”或您通常使用的任何内容。
4.Date = 需要删除的文件的截止日期。
5.Subfolder = 0忽略子文件夹,1删除子文件夹中的文件。
这是循环遍历和删除备份的示例脚本。