如何在比磁盘上最早的完整备份更早的时候删除SQL Server差异备份和日志备份?

当我删除完整备份时,我想删除所有在完全备份被删除后无用的文件:特别是在最早的完整备份之前发生的仍在磁盘上的差异备份和日志备份。 有没有人有这样做(PowerShell脚本,也许)?

以下是我为备份自动化编写的T-SQL脚本,该脚本会删除指定数量的完整备份以及在最早保留的完全备份之前创build的任何差异备份。 它依靠具有相同文件扩展名的差分以及附加了“_Diff”的文件名。 我也有一个日志文件。

删除完整/差异备份: http : //www.sqlsoldier.com/wp/wp-content/uploads/Scripts/dba_DeleteDBBackups.sql删除日志备份: http : //www.sqlsoldier.com/wp/wp-content/uploads /Scripts/dba_DeleteLogBackups.sql

如果您创build维护计划,则可以在SubPlans中包含“备份任务”。 在SubPlan中备份数据库(完整,差异,tlog备份),你可以有一个维护清理任务。 对于每种备份types,您可以指定要保留文件的时间。 例如,您可以保留所有备份7天。 7天之后,可以删除baks和trns。

我相信这应该达到你以后的目标。

我使用一个CLR过程,发布代码在http://sqlblog.com/blogs/merrill_aldrich/archive/2009/07/21/hole-in-your-backup-sequence.aspx

现在,PowerShell可能会更好,但将C#代码移植到PowerShell会很简单