規劃儲存空間、申請擴容時,最可靠的依據是歷史備份大小趨勢。本文示範如何查詢 msdb.dbo.backupset 彙總每月備份大小,分析資料庫真實成長曲線,並說明備份歷史保留原則對分析的影響。
SELECT
[database_name] AS [Database],
DATEPART(MONTH, [backup_start_date]) AS [Month],
AVG([backup_size] / 1024.0 / 1024.0) AS [Backup Size MB]
FROM msdb.dbo.backupset
WHERE [database_name] = N'AdventureWorks2012' -- 修改為目標資料庫
AND [type] = 'D' -- D = 完整備份
GROUP BY [database_name], DATEPART(MONTH, [backup_start_date])
ORDER BY [Month];
backup_size 為實際寫入備份檔的位元組數 (不含未配置頁面)。| Database | Month | Backup Size MB |
|---|---|---|
| AdventureWorks2012 | 1 | 125.3 |
| AdventureWorks2012 | 2 | 132.7 |
| AdventureWorks2012 | 3 | 140.1 |
SQL Server 2008+ 引入原則型管理,預設建立清理作業:
syspolicy_purge_history (每日 02:00 執行)。backupset,歷史分析將受限。-- 檢視原則保留天數
SELECT * FROM msdb.dbo.syspolicy_policies WHERE name = 'Backup History Retention';
-- 檢視清理作業
EXEC msdb.dbo.sp_help_job @job_name = 'syspolicy_purge_history';
type = 'D' (完整)、'I' (差異)、'L' (記錄)。database_name 篩選,加入 database_name 至 GROUP BY。msdb 定期備份,避免歷史資料遺失。msdb 體積。sys.master_files 當前檔案大小,對照備份趨勢進行擴容規劃。善用 backupset 歷史資料,能以零成本獲得最真實的資料庫成長基線,支援精準的容量規劃與成本控制。