Sql-Server

SQL 維護清理任務“成功”但不刪除文件

  • February 22, 2021

我為伺服器上的數據庫設置了維護計劃。作為備份的一部分是維護清理任務。

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 的備份位置移動到另一個磁碟,在此過程中將所有現有備份文件移動到新位置。

之後,這些文件歸我的管理使用者所有,數據庫服務使用者無法刪除這些文件。

要輕鬆解決此問題:

  1. 打開備份根文件夾的屬性
  2. 轉到Security選項卡並點擊Advanced
  3. 在我的情況下,設置正確的所有者SQL Engine。 確保啟用複選框!

在此處輸入圖像描述
Replace owner on subcontainers and objects 4. 點擊確定,等待該過程完成並關閉所有對話框。

維護計劃現在應該能夠再次刪除備份文件。

引用自:https://serverfault.com/questions/245493