SQL Server 維護清理在刪除舊備份時是否考慮確切時間?

SQL Server 維護清理在刪除舊備份時是否考慮確切時間?

假設我有一個日常維護任務:

  1. 備份所有資料庫,然後
  2. 刪除超過 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''

相關內容