在資料庫管理員的日常運維工作中,資料庫備份無疑是重中之重。無論是透過維護計畫、SQL Server Agent 作業,還是第三方備份工具執行,備份任務的穩定性與效率直接關係到資料安全與災難恢復能力。因此,定期分析備份歷史記錄、洞察備份效能瓶頸,是 DBA 必備的核心技能之一。
我們可以利用 msdb 系統資料庫中的 backupset 與 backupmediafamily 表,編寫查詢腳本來提取關鍵備份指標。以下腳本以範例資料庫 BackupReport 為例,展示完整備份、差異備份與交易記錄備份的執行情況:
SELECT
s.database_name,
m.physical_device_name,
CAST(s.backup_size / 1000000 AS VARCHAR(14)) + ' MB' AS bkSize,
CAST(DATEDIFF(SECOND, s.backup_start_date, s.backup_finish_date) AS VARCHAR(4)) + ' Seconds' AS TimeTaken,
s.backup_start_date,
CASE s.[type]
WHEN 'D' THEN 'Full'
WHEN 'I' THEN 'Differential'
WHEN 'L' THEN 'Transaction Log'
END AS BackupType,
s.server_name,
s.recovery_model
FROM msdb.dbo.backupset s
INNER JOIN msdb.dbo.backupmediafamily m
ON s.media_set_id = m.media_set_id
WHERE s.database_name = 'BackupReport'
ORDER BY database_name, backup_start_date, backup_finish_date;
執行上述腳本後,您將獲得類似下圖的結果集,包含備份檔案路徑、備份大小、耗時、開始時間、備份類型等關鍵維度:

有了這些資料,DBA 可以進行多維度分析:
為將分析工作常態化,建議:
backupset 的 compressed_backup_size 欄位,評估壓縮備份的空間節省效果。掌握備份歷史記錄分析,不僅能保障備份策略的有效執行,更能為資料庫效能調優與架構規劃提供寶貴的數據支撐。