系統資料庫是 SQL Server 引擎的「大腦與神經中樞」。無論是 DBA 還是開發人員,深入理解其架構、職責與運維特性,是排查故障、規劃高可用、設計安全策略的基石。本文詳細解析五大核心系統資料庫。
xp_*),提供外部程式呼叫能力(C/C++ 組件)sys.databases、sys.syslogins、sys.configurations、sys.serversCREATE DATABASE 實際上是複製 model 的結構與資料。因此:
##table, #table)SQL Server 服務每次啟動 → 依 model 重建 tempdb → 清空所有舊物件。因此 tempdb 永不持久化。
INSTANT FILE INITIALIZATION當執行個體設定為散發者 時自動建立(可自訂名稱,預設 distribution)。
distribution..MSrepl_commands 佇列積壓情況sp_distribution_cleanup 避免記錄檔暴增backupset, restorehistory)sysjobs, sysjobhistory)sysdtspackages)sp_purge_jobhistory、sp_delete_backuphistory 定期清理backupset 連續性,修正遺漏記錄備份sysjobs 是否有損壞排程、服務帳號權限| 資料庫 | 備份頻率 | 復原模式建議 | 特殊注意 |
|---|---|---|---|
| master | 每日 + 配置變更後 | SIMPLE | 不可卸離、不可重命名、不可設為 OFFLINE |
| model | 每週或變更後 | SIMPLE | 變更影響所有新資料庫 |
| tempdb | 不可備份/還原 | SIMPLE (固定) | 啟動自動重建,僅優化配置 |
| msdb | 每日 | SIMPLE | 含 Agent 作業,災難復原需同步還原 |
| distribution | 每日 + 記錄備份 | FULL | 複寫拓撲核心,RPO 接近 0 |
微軟不建議直接查詢/修改系統基底表(如 sys.sysobjvalues),因結構可能跨版本變更。標準做法:
sys.databases, sys.tables, sys.indexes...INFORMATION_SCHEMA.TABLES 等 ANSI 標準sys.dm_os_wait_stats, sys.dm_exec_query_stats...sp_helpdb, sp_who2...五大系統資料庫各司其職,構成 SQL Server 實例的完整管理閉環。掌握其架構邊界、資料流向與優化槓桿,能讓 DBA 從「被動救火」轉向「主動架構治理」。建議將系統資料庫配置檢查納入日常巡檢清單,並建立標準化災難復原演練流程。