Sql-Server
備份數據庫和清理舊備份問題
現在我們有一個維護計劃,如下所示:
- 備份所有數據庫
- 清理舊備份(> 24 小時)
這項工作每天都在執行。這個腳本在備份步驟中時不時地崩潰,所以我們留下了所有舊的備份文件。
我們想重寫這個維護計劃,讓它像這樣執行:
- 備份數據庫 1
- 清理數據庫 1 的舊備份
- 備份數據庫 2
- 清理數據庫 2 的舊備份
- 等等…
首先,我們可以使用內置操作。描述的最後一種方法有什麼簡單的方法嗎?還是我們必須完整地編寫腳本?
我們不想手動添加所有數據庫,因為每次有人添加新數據庫時我們都會進行額外的維護工作,這也會導致潛在的未備份數據庫。
您可能應該從維護計劃轉移到 SQL 代理作業,並利用類似http://ola.hallengren.com/編寫的腳本。您將為每個數據庫創建一個作業步驟。它將為您提供所需的靈活性。
更新:我上面的資訊不正確。您可以使用 Ola.Hallengren.com 腳本來執行您要查找的操作,而無需為每個數據庫添加作業步驟。查看腳本資訊後,我看到了這個:
來自: http: //ola.hallengren.com/sql-server-backup.html
清理時間
指定刪除備份文件的時間(以小時為單位)。如果沒有指定時間,則不會刪除備份文件。
備份和驗證每個數據庫後,將刪除備份文件。僅當數據庫的備份和驗證成功時,才會刪除備份文件。
DatabaseBackup 會檢查以確認比最新的完整備份或差異備份更新的事務日誌備份不會被刪除。這是為了保證您始終可以執行時間點還原。