2011-04-14 176 views
0

这让我疯狂。我已经尝试了所有的建议,并没有去。维护计划维护清理任务成功运行,但不删除文件?

这绝对不行。这些文件都在那里。

作业成功运行,但文件不会被删除。

enter image description here

+0

为什么有这样的投票呢?不要只是投票结束没有解释。 – richard 2011-04-15 01:58:12

+0

您能向我们展示计划的完整文件路径,并将其与备份的文件路径进行比较吗?另外,请确保该计划中的任务未被禁用,并确保它已连接到备份任务。 – DForck42 2011-04-15 16:31:11

回答

1

什么帐户下运行这个?域管理员,服务等?

我一直发现创建一个批处理作业并使用Windows调度程序在x周内清理.bak文件比较容易。你可以看看作业历史记录,看看任务是否失败/成功,也可能值得查看服务器上的事件查看器。

+0

我如何知道它在哪个帐户下运行? – richard 2011-04-14 19:49:53

+0

@Richard DesLonde我忘了提及你的服务包? – JonH 2011-04-14 19:56:45

+0

9.00.4266.00 \t SP3 \t标准版(64位) – richard 2011-04-14 19:58:53

0

我有一个运行没有问题的类似工作,SQLServerAgent运行在哪个帐户下,这些维护计划作为SQLServerAgent执行,如果SQLServerAgent运行的安全上下文没有足够的权限,则此作业将失败,应该尽管有些工作经历会告诉你更多。

+0

作业成功运行,但文件未被删除。 – richard 2011-04-14 19:49:11

1

我能找到的唯一解决方案是从清理任务中生成的SQL,然后在SP中运行它,原因猜测是什么?这个计划产生的SQL,完美运行!!!!!

这是我用来运行的代码,它的工作原理。

ALTER PROCEDURE spUtility_delete_OldBackups 
AS 

DECLARE @date varchar(28) 
SET @date = CONVERT(varchar(28),DATEADD(DAY, -5,GETDATE())) 


EXECUTE master.dbo.xp_delete_file 0, 'D:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\EEIDW\', 'bak', @date,1 

EXECUTE master.dbo.xp_delete_file 0,'D:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\EEIDW\','diff', @date,1 

EXECUTE master.dbo.xp_delete_file 0,'D:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\EEIDW\','trn', @date,1 
+0

那么必须表明它是一个权限问题不是吗? – 2011-04-14 20:03:31

+0

@Martin:关于如何解决权限问题的任何线索? – richard 2011-04-14 20:59:05

+0

不是我的头顶。如果您可以在开发机器上重现此问题,我可能会尝试运行Profiler来检查是否调用了'master.dbo.xp_delete_file'过程,然后'procmon'查看文件系统上的任何拒绝访问错误(以及什么帐户被拒绝访问)。 – 2011-04-14 21:18:14

2

我最近遇到了同样的问题,这是由于文件夹的权限。容易检查:

  1. 检查最近bak或trn文件的属性,安全性,并找出所有者是谁。
  2. 现在检查备份FOLDER的安全属性,并查看步骤1中的FILE所有者是否具有足够的有效权限来删除文件。该帐户可能只有足够的创建和修改,但不能删除文件。

特殊的部分是计划总是“顺利”运行,尽管它失败了。这就是为什么教师不应该让学生为自己的考试评分。 (坏笑)。