Sql-Server

自動壓縮/管理 SQL Server 2005 備份

  • June 30, 2009

有沒有一個很好的方法讓 SQL Server 2005 執行自動壓縮的夜間備份,只保留最後 n 個備份?

我知道代理可以執行夜間備份,但我認為這個問題的棘手部分是壓縮和刪除非常舊的備份

乾杯!

在 SQL 備份之後,我們執行另一個任務來執行批處理文件來壓縮文件並將它們複製到 NAS。我們保留最後 3 個備份 - 基本腳本如下所示:

d:
cd \MSSQL\BACKUP
zip -rq d:\northwind northwind.BAK
REM - do the local copy to the NAS
move/y \\10.0.0.1\sql_backup\yesterday\northwind.zip \\10.0.0.1\sql_backup\2DaysAgo\northwind.zip
move/y \\10.0.0.1\sql_backup\northwind.zip \\10.0.0.1\sql_backup\yesterday\northwind.zip
copy northwind.zip \\10.0.0.1\sql_backup\northwind.zip

(我已將腳本編輯為僅顯示 1 個數據庫)。在腳本結束時,我們呼叫 Python 腳本發送一封電子郵件,告訴我們備份文件的大小和創建日期。您可以輕鬆地改用 WSH 腳本。我認為可能已經添加了“if errorlevel …”指令,因為 SQL 代理並不總是檢測批處理文件是否完成?

if errorlevel 1 goto weakspace
d:\scripts\send_email_nas_copy_success.py
goto end
weakspace:
REM - error occured
d:\scripts\send_email_nas_copy_fail.py
end:
exit

我們的其中一台伺服器使用 winrar 而不是 zip 來壓縮文件(它有一個命令提示符)。每月一次,昨晚的備份被複製到保存六個月的存檔中,但您可以輕鬆創建另一個批處理文件以每週執行一次,以維護上週日、2 個週日前和 3 個週日前的備份。

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