| 資料庫 | 核心角色 | 關鍵內容 | 運維關鍵 |
|---|---|---|---|
| master | 實例級中樞 | 所有資料庫掛載資訊、登入/伺服器角色、連結伺服器、端點、配置選項、擴展 SP | **啟動相依、每日備份、掌握重建流程** |
| model | 建庫範本 | 預設資料表/SP/使用者/權限/檔案群組/復原模式/自動成長設定 | 預置企業標準、勿過度肥大、影響 tempdb 啟動 |
| tempdb | 暫存/版本存放引擎 | 暫存表/SP、表變數、排序/雜湊中間結果、**版本存放區 (RCSI/SI/線上索引/觸發器)** | **多檔案、預先配置、快速儲存、監控 VLF/爭用** |
| msdb | Agent/管理後台倉庫 | 備份/還原歷史、Agent 作業/排程/記錄、SSIS 套件、資料庫郵件、記錄傳送、維護計畫 | 定期清理歷史、備份同步還原、Agent 服務帳號權限 |
| distribution | 複寫中繼資料中樞 | 快照/交易/合併複寫中繼資料、命令佇列、世代/衝突記錄、代理程式歷程 | 監控佇列積壓、定期清理、視同使用者資料庫備份 |
sys.databases → 依序掛載其他資料庫。master 損壞 = 全實例掛點。xp_cmdshell, xp_readerrorlog 等實際是 DLL (xplog70.dll 等),載入於 SQL Server 進程空間,**安全風險高**,嚴格控管權限。-m) → RESTORE MASTER → 重建登入 (sp_help_revlogin) → 重新掛載使用者資料庫。CREATE DATABASE 內部行為 = BACKUP model ... RESTORE ... WITH MOVE 的簡化版。READ_COMMITTED_SNAPSHOT ON、ALLOW_SNAPSHOT_ISOLATION ON、統一命名慣例 CHECK 約束、標準審計欄位 (CreatedAt, CreatedBy...)、預設檔案群組非 PRIMARY。inserted/deleted 表都寫入此處。長時間執行交易會導致版本存放區暴增 → tempdb 爆滿。sys.dm_os_wait_stats 的 PAGELATCH_*) 決定是否增加。SE_MANAGE_VOLUME_NAME (執行量維護任務) → 資料檔擴展跳過清零,**極大縮短自動成長/重建時間**。sysjobhistory 記錄每步執行結果,預設保留 1000 列/作業,總計 10000 列。生產環境必須調大或建立歸檔作業。backupset, backupmediafamily, backupfile 是第三方備份工具 (CommVault, Veeam, NetBackup) 整合的關鍵。MSrepl_commands (命令佇列)、MSrepl_transactions (交易佇列)。佇列積壓 = 配送延遲 = 訂閱端資料滯後。MSmerge_genhistory (世代)、MSmerge_conflicts_info (衝突)。sp_MSdistribution_cleanup (交易)、sp_MSmerge_cleanup (合併)。必須確保排程執行,否則記錄檔無限增長。| 資料庫 | 備份類型 | 頻率 | 還原優先序 | 特殊注意 |
|---|---|---|---|---|
| master | 完整 | 每日 + 配置變更後 | 1 (最優先) | 單用戶模式還原 |
| model | 完整 | 每週 | 2 | 變更影響新資料庫 |
| msdb | 完整 + 記錄 | 每日 | 3 | 與 master 同步時間點 |
| distribution | 完整 + 記錄 | 每日 + 記錄每 15 分 | 4 | 複寫拓撲核心 |
| tempdb | **不可備份** | -- | -- | 啟動自動重建 |
五大系統資料庫各司其職,構成 SQL Server 實例的**管理閉環**。DBA 應將系統資料庫納入日常巡檢、備份驗證、災難復原演練的核心範圍。特別關注:master 重建流程熟練度、tempdb 多檔案與 IFI 配置、msdb 歷史清理與同步還原、distribution 佇列監控。掌握這些細節,才能在故障發生時從容應對,將 RTO/RPO 壓縮至最小。