程序中使用该@CleanupTime
参数时[dbo].[DatabaseBackup]
,每次数据库备份成功后,是否会删除目标旧备份文件?还是先处理所有备份,然后执行清理?
我在可用磁盘空间方面遇到问题,并试图为我的网络管理员提供备份卷大小的准确规格。
在发布之前,我通读了 Ola Hallengren 的 SQL Server 脚本中关于 FULL 备份和 LOG 备份的理解 CleanupTime。我在那里找不到我的问题的答案。如果它在那里,我错过了它。只是再次阅读它,但仍然看不到任何东西。
有一个单独的
@CleanupMode
参数控制清理是在之前还是之后发生。默认行为是在之后进行清理。这是最安全的选择,但需要最多的磁盘空间。如果备份失败,则不会清理任何内容,以确保您有额外的文件,而不是在没有创建新文件的情况下删除文件。如果备份反复失败(清理,但从不创建新备份)或保留时间很短,这一点尤其重要。
从文档中:
清理模式
指定是否应在执行备份之前或之后删除旧备份文件。
价值观:
BEFORE_BACKUP
- 在执行备份之前删除旧的备份文件。AFTER_BACKUP
- 执行备份和验证后删除旧的备份文件。如果备份或验证失败,则不会删除任何备份文件。这是默认设置。