我有一个服务器上的数据库维护计划设置。 作为备份的一部分是维护清理任务。
SQL版本2008
“成功”的任务设置为:
Delete backup files Correct folder (same address as the backup task) File extension: bak (NOT .bak) Delete files older than: 20 Hour(s)
我有其他类似的清理任务,发生在相同的维护计划,工作正常。 这个计划过去运作良好,我刚才注意到昨天晚上报“成功”,其余的计划还在继续,不过2天前的档案仍然存在。
我检查了类似的问题,例如这个问题 ,事实并非如此,因为我的维护任务在两天前和过去几周都运行良好:
检查文件以查看它是否是有效的备份文件。 如果文件损坏或以其他方式损坏,删除文件的过程将不会执行任何操作。 您可以通过以下操作来检查它:
RESTORE HEADERONLY FROM DISK='d:\Path\To\Your\File.bak'
另一个可能原因:
检查没有被删除的备份文件的所有者。
我将SQL服务器的备份位置移动到另一个磁盘,将所有现有的备份文件移动到过程中的新位置。
之后,这些文件由我的pipe理用户拥有,无法由数据库服务用户删除。
为了解决这个问题:
Security选项卡,然后单击Advanced SQL Engine 。
Replace owner on subcontainers and objects的Replace owner on subcontainers and objectscheckbox! 现在维护计划应该能够再次删除备份文件。