Sql-Server
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 天前的文件仍然存在。
我檢查了類似的問題,例如這個問題,但情況並非如此,因為我的維護任務在兩天前和過去幾週內執行良好:
檢查文件以查看它是否是有效的備份文件。如果文件損壞或以其他方式損壞,刪除文件的過程將不會執行任何操作。您可以通過以下方式進行檢查:
RESTORE HEADERONLY FROM DISK='d:\Path\To\Your\File.bak'
另一個可能的原因:
檢查沒有被刪除的備份文件的所有者。
我將 SQL Server 的備份位置移動到另一個磁碟,在此過程中將所有現有備份文件移動到新位置。
之後,這些文件歸我的管理使用者所有,數據庫服務使用者無法刪除這些文件。
要輕鬆解決此問題:
- 打開備份根文件夾的屬性
- 轉到
Security
選項卡並點擊Advanced
- 在我的情況下,設置正確的所有者
SQL Engine
。 確保啟用複選框!
Replace owner on subcontainers and objects
4. 點擊確定,等待該過程完成並關閉所有對話框。維護計劃現在應該能夠再次刪除備份文件。