2011-04-14 221 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所有者是否具有足夠的有效權限來刪除文件。該帳戶可能只有足夠的創建和修改,但不能刪除文件。

特殊的部分是計劃總是「順利」運行,儘管它失敗了。這就是爲什麼教師不應該讓學生爲自己的考試評分。 (壞笑)。