Maintenance Cleanup Task – 維護清除工作
在「維護計畫(Maintenace Plan)」裡的「維護清除工作(Maintenance Cleanup Task)」 ,其實使用的是master.dbo.xp_delete_file這支undocumented的stored procedure:
xp_delete_file在清除備份檔案前會先執行RESTORE LABELONLY檢查檔頭資訊,確定為database 備份或log備份檔後才會真的將該檔案刪除。似乎由SQL backup出來的任何附檔名皆可透過xp_delete_file來刪除,反之若不是SQL backup出來的檔案,即使自行將副檔名改為.bak檔仍不會被刪除。
(1) 刪除SQL備份檔 –副檔名為.abc
-- 建立測試DB並備份,副檔名為.abc
--檢查檔頭
--刪除備份檔
確定檔案已刪除:
--刪除測試DB
(2)測試非由SQL備份出來的檔案
--手動新增副檔名.bak之檔案
--檢查檔頭時檔出現錯訊息
--執行xp_delete_file
--手動新增的bak檔並沒有被刪除