我们有一个数据库服务器,其中测试数据库每天 22:00 都会通过生产数据库的备份进行“刷新”。
恢复后的第一个备份是差异备份,因为我们使用的是交换机
ChangeBackupType = Y
。我们的
CleanupTime
参数设置为 48 小时,这对于完整备份和 TLog 备份效果很好。但是,该
CleanupTime
参数不适用于由于ChangeBackupType
设置为而创建的差异备份Y
。
有什么想法问题出在哪里吗?我们没有明确使用差异备份作业,因此CleanupTime
我无法设置。
定义完整备份
sqlcmd -E -S $(ESCAPE_SQUOTE(SRVR)) -d aspMaintenance -Q "EXECUTE [dbo].[DatabaseBackup] @Databases = 'ALL_DATABASES', @BackupType = 'FULL', @NumberOfFiles = 1, @Verify = 'N', @CleanupTime = 42, @CheckSum = 'Y', @DirectoryStructure = '{DatabaseName}{DirectorySeparator}{BackupType}_{Partial}_{CopyOnly}', @LogToTable = 'Y'" -b
定义日志备份
sqlcmd -E -S $(ESCAPE_SQUOTE(SRVR)) -d aspMaintenance -Q "EXECUTE [dbo].[DatabaseBackup] @Databases = 'ALL_DATABASES', @ChangeBackupType = 'Y', @BackupType = 'LOG', @Verify = 'N', @CleanupTime = 48, @CheckSum = 'Y', @DirectoryStructure = '{DatabaseName}{DirectorySeparator}{BackupType}_{Partial}_{CopyOnly}', @LogToTable = 'Y'" -b
您用来执行备份作业的 Ola Hallengren 的 SQL Server 维护解决方案当前在 @ChangeBackupType = 'Y' 且备份类型更改时不会进行清理。
我找不到这方面的官方文档,但当前版本的 DatabaseBackup.sql 脚本进行了检查,在这种情况下完全跳过清理,如官方存储库中相关代码行的这两个永久链接所示:
官方存储库中存在用于增强清理的开放问题,例如下面链接的两个问题,但很长一段时间没有任何进展。