移除與維護計劃相關的舊檔案 (包括維護計劃和資料庫備份檔案所建立的文字報表)。
請參考下圖所示:
經過測試 xp_delete_file 這個擴充預存程序,目前可以支援刪除的附檔名,例如:bak、trn、log 等。
此外,可能是為了安全起見,此 xp_delete_file 擴充預存程序可能會檢查檔案的檔頭資訊,確認是否為維護計劃所產生的相關舊檔案。
如果你是自行將某個檔案的附檔名,改為 bak,好像也是無法利用此程式來刪除之。
請參考以下的範例程式碼:
--01 範例說明: EXECUTE master.dbo.xp_delete_file 0, -- 0 表示:刪除[備份檔案]。1 表示刪除[維護計畫文字報表] N'\\NAS02\dbbackup\sql2008', -- 主要目錄的完整路徑 N'trn', -- 刪除檔案的副檔名,僅需副檔名即可,例如:bak,若是要全刪除資料夾內的檔案,填入: * 。 N'12/12/2010 13:29:51', -- 刪除早於下列時限的檔案 1 -- 1 表示:要包含第一層的子資料夾,若是沒寫,就不會包含第一層的子資料夾。 --02 刪除指定資料夾內的備份檔案 EXECUTE master.dbo.xp_delete_file 1, N'C:\myAdmin\Device', N'bak'
或許會有朋友詢問,為何不使用 xp_cmdshell 擴充預存程序呢?
可能的原因是:在某些環境上,系統設定不可以使用此擴充預存程序。
根據預設,xp_cmdshell 選項會在新安裝上「停用」,而且可以使用以原則為基礎的管理或執行 sp_configure 系統預存程序來啟用。
使用這個 xp_delete_file 這個擴充預存程序,或許可以解決部份問題。
在 SQL Server 2005 版本上,此「維護清除工作」之功能是有 Bug的,請升級到 SQL Server 2005 Service Pack 2 來修正。
參考資料:
xp_delete_file
http://sqlblog.com/blogs/andy_leonard/archive/2009/03/11/xp-delete-file.aspx
清除工作不會刪除資料庫維護計劃報表,在您安裝 SQL Server 2005 Service Pack 2
http://support.microsoft.com/kb/938085
xp_cmdshell 選項
http://msdn.microsoft.com/zh-tw/library/ms190693.aspx
沒有留言:
張貼留言