SQL Server 執行個體啟動與運作仰賴五大系統資料庫,各司其職,不可遺失。
1. master:核心中樞
- 儲存所有資料庫的中繼資料 (位置、狀態、擁有者)。
- 伺服器層級設定:登入帳戶、連結伺服器、端點、組態選項 (sp_configure)。
- 系統層級物件:擴充預存程序 (
xp_*)、系統函數。
- 損壞後果:SQL Server 無法啟動。
- 備份策略:每日完整備份,異地保存,定期演練重建 (重建 master 需特殊步驟)。
2. model:範本資料庫
- 建立新使用者資料庫時,複製 model 的結構與資料。
- 預置通用物件:
CREATE PROC usp_StandardAudit ...、CREATE VIEW vw_ActiveUsers ...、預設權限/角色/使用者。
- 修改 model 後,僅影響後續新建資料庫,現有資料庫不受影響。
3. tempdb:暫存工作區
- 每次 SQL Server 啟動重建,基於 model 初始化。
- 儲存:暫存表 (#temp, ##global)、資料表變數、游標工作表、排序/雜湊中間結果、版本存放區 (快照隔離、RCSI、線上索引重建)。
- 效能關鍵:多資料檔 (建議邏輯 CPU 核心數 1:1,上限 8)、啟用瞬間檔案初始化、放置於快速儲存 (SSD/NVMe)、預先配置大小避免自動成長。
4. msdb:代理程式與管理中樞
- SQL Server Agent:作業、排程、警示、操作員、記錄。
- 備份/還原歷史:
backupset、backupmediafamily 等系統表。
- SSIS 封裝儲存 (舊版)、Database Mail、Log Shipping、Policy-Based Management。
- 維護:定期清理歷史資料 (
sp_delete_backuphistory、sp_purge_jobhistory) 防止膨脹。
5. distribution:複寫散發者
- 僅當執行個體設定為散發者 時存在。
- 儲存:複寫中繼資料、快照檔案位置、交易複寫命令佇列、合併複寫世代資訊。
- 預設名稱
distribution,可自訂。
快速對照表
| 資料庫 | 核心職責 | 備份頻率建議 | 特殊注意 |
| master | 執行個體元資料、登入、設定 | 每日完整 | 損壞需重建,演練重建腳本 |
| model | 新資料庫範本 | 每週完整 | 修改僅影響新資料庫 |
| tempdb | 暫存物件、版本存放區 | 不需備份 (重啟重建) | 效能調優關鍵:多檔案、快速磁碟 |
| msdb | Agent、備份歷史、SSIS、Log Shipping | 每日完整 | 定期清理歷史防膨脹 |
| distribution | 複寫中繼資料、命令佇列 | 每日完整 | 複寫拓撲變更時需重新初始化 |
熟知五大系統資料庫分工,能精準制定備份、監控、效能調優與災難恢復策略。