
假設我有一個日常維護任務:
- 備份所有資料庫,然後
- 刪除超過 3 天的備份。
現在假設第一天的第一次備份(從 10:00 開始)會產生以下文件
db1.bak 2012-01-01 10:04
db2.bak 2012-01-01 10:06
現在,假設在第 4 天,維護任務的第一步(備份資料庫)碰巧在 10:05 完成。將 SQL Server
- 刪除 db1.bak 並保留 db2.bak(符合邏輯,但可能會讓使用者感到驚訝)或
- 保留兩者或
- 刪除兩者?
答案1
維護計畫將使用清理任務啟動時產生 SQL 的時間刪除備份檔案。因此,在您描述的三個選項中,第一種情況是會發生的情況。
我創建了一個範例計劃,刪除超過 3 天的文件並運行該作業。從下面的日誌輸出中,您可以看到該作業在 2013 年 5 月 7 日 12:25 運行,並刪除了 2013 年 5 月 4 日 12:25 之前的檔案。下面的 T-SQL 顯示如何產生日期的大致命令。
query:
select GETDATE()
select DATEADD(DAY, -3, GETDATE() )
results:
-----------------------
2013-05-07 12:51:52.073
(1 row(s) affected)
-----------------------
2013-05-04 12:51:52.073
(1 row(s) affected)
維護計畫:MaintenancePlan 持續時間:00:00:02 狀態:成功。細節:
本機伺服器連線上的備份資料庫資料庫:DBA 類型:完整追加現有任務開始:2013-05-07T12:25:03。任務結束:2013-05-07T12:25:05。成功指令:備份資料庫[DBA] 到磁碟= N''N:\Apps\MSSQL10.INSTANCE\MSSQL\Backup\DBA_backup_2013_05_07_122503_6738713.bak'' 附有NOFORMAT、NOINIT、Nback = N''D31073103_BA_70703_231 ,跳過,倒帶,名詞負載,統計數據 = 10
去
本機伺服器連線上的維護清理清理資料庫備份檔案期限:早於 3 天任務開始:2013-05-07T12:25:05。任務結束:2013-05-07T12:25:05。成功指令:執行 master.dbo.xp_delete_file 0,N''N:\Apps\MSSQL10.INSTANCE\MSSQL\Backup'',N''BAK'',N''2013-05-04T12:25:05''
去