SQL 维护清理任务“成功”但未删除文件

SQL 维护清理任务“成功”但未删除文件

我为服务器上的数据库设置了维护计划。备份的一部分是维护清理任务。

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 天前的文件仍然保留。

我检查过类似的问题,例如这个问题,但事实并非如此,因为我的维护任务两天前和过去几周运行良好:

答案1

检查文件以查看它是否是有效的备份文件。如果文件已损坏或以其他方式损坏,则删除文件的过程将不起作用。您可以通过以下方式检查:

RESTORE HEADERONLY FROM DISK='d:\Path\To\Your\File.bak'

答案2

另一个可能的原因:

检查未被删除的备份文件的所有者。

我将 SQL 服务器的备份位置移动到了不同的磁盘,并在此过程中将所有现有备份文件移动到了新位置。

之后这些文件归我的管理用户所有,并且无法被数据库服务用户删除。

要轻松修复此问题:

  1. 打开备份根文件夹的属性
  2. 转到Security选项卡并点击Advanced
  3. 就我的情况而言,设置正确的所有者SQL Engine
    在此处输入图片描述
    确保启用Replace owner on subcontainers and objects复选框!
  4. 单击“确定”,等待该过程完成并关闭所有对话框。

维护计划现在应该能够再次删除备份文件。

答案3

我遇到了同样的问题。向 NT AUTHORITY\SYSTEM 用户提供 sysadmin 允许查询或作业正确执行删除操作。

相关内容