SQL CleanUp用于删除共享文件夹中的旧备份文件的作业

时间:2014-06-18 07:40:05

标签: sql sql-server-2012

我尝试了以下三种方法来清理旧的备份文件,但没有一种方法可以使用。我们需要您的帮助才能完成。

方式1:创建维护清理作业,作业成功执行但备份未删除文件。

方式2:使用xp_delete_file命令尝试。

使用的脚本:

EXECUTE master.sys.xp_delete_file 0,N'\\XXX\YYY',N'bak',N'2014-05-12T07:34:14' 

错误讯息:

  

以用户身份执行:DOMAIN \ user。无法创建该过程   作业的第3步0x307C7663CBCA6D4187B1953745E1E02F(原因:系统   找不到指定的文件)。步骤失败了。

方式3:尝试使用电源shell脚本

使用的脚本:

$Path = "\\xxx\yyy"

$Daysback = "-30"

$CurrentDate = Get-Date

$DatetoDelete = $CurrentDate.AddDays($Daysback)

Get-ChildItem $Path -Recurse -include *.bak| Where-Object { $_.LastWriteTime -lt $DatetoDelete } |  remove-item -force

错误讯息:

  

以用户身份执行:DOMAIN \ user ..作业脚本遇到了   以下错误。

     

这些错误并没有停止脚本:作业步骤收到错误   PowerShell脚本中的第9行。

     

相应的行是' Get-ChildItem $ Path -Recurse -include   * .txt,* .bak | Where-Object {$ _.LastWriteTime -lt $ DatetoDelete} | remove-item -force'。更正脚本并重新安排作业。该   PowerShell返回的错误信息是:'无法找到路径   ' \ XXX \ YYY'因为它不存在&#39 ;.处理退出代码0   步骤成功。

Powershell脚本在powershell窗口中成功执行,但在powershall任务中未执行。我也创建了代理帐户,用户对共享路径拥有权限,并使用poroxy帐户运行任务。

请帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

路径名称的末尾需要有一个反斜杠,所以' \\ XXX \ YYY'需要是' \\ XXX \ YYY \' (注意额外的反斜杠) - 所以命令变为:

EXECUTE master.sys.xp_delete_file 0,N'\\XXX\YYY\',N'bak',N'2014-05-12T07:34:14'