我注意到使用 Ola 维护解决方案中的数据库备份作业的一些意外行为。在我正在处理的测试实例上,我将用户数据库备份作业安排在每天凌晨 2:00 运行。我将@CleanupTime 参数设置为48,但我没有指定@CleanupMode 参数。
如果我理解正确,那应该每天运行并保留数据库备份的两份副本......由于默认值为“AFTER_BACKUP”,它应该在新备份完成后删除最旧的文件,如果只留下最旧的文件最新的备份失败。所以它应该从文件夹中两天的文件开始,创建第三个文件(当天),然后删除三个文件中最旧的文件。
奇怪的是,有时它会留下两天的文件,有时会留下三天,即使所有备份都已成功完成。这不是一个大问题,但为了节省该驱动器上的空间,我宁愿在任何给定时间只保留两个备份。任何提示或建议将不胜感激。
编辑:根据下面评论中的要求,这是该作业步骤中的参数列表...
EXECUTE [dbo].[DatabaseBackup]
@Databases = 'ALL_DATABASES',
@Directory = NULL,
@BackupType = 'FULL',
@Verify = 'N',
@CleanupTime = 48,
@CheckSum = 'Y',
@LogToTable = 'Y'
当您的备份运行时发生变化时,可能会发生这种情况。如果您的备份作业一天执行得更快,那么自创建最早的文件以来可能不到 48 小时,因此它不会删除它并为您留下 3 个文件。
例子:
我为此找到的最简单的解决方案是从 CleanupTime 值中减去几个小时。在上面的示例中设置为 40 甚至 45 意味着 Backup1 在备份 3 被删除后被删除。