首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 系統資料庫核心職責速查手冊:master、model、tempdb、msdb、distribution

     編輯:關於SqlServer

一覽表:五大系統資料庫核心定位

資料庫核心角色關鍵內容運維關鍵
master 實例級中樞 所有資料庫掛載資訊、登入/伺服器角色、連結伺服器、端點、配置選項、擴展 SP **啟動相依、每日備份、掌握重建流程**
model 建庫範本 預設資料表/SP/使用者/權限/檔案群組/復原模式/自動成長設定 預置企業標準、勿過度肥大、影響 tempdb 啟動
tempdb 暫存/版本存放引擎 暫存表/SP、表變數、排序/雜湊中間結果、**版本存放區 (RCSI/SI/線上索引/觸發器)** **多檔案、預先配置、快速儲存、監控 VLF/爭用**
msdb Agent/管理後台倉庫 備份/還原歷史、Agent 作業/排程/記錄、SSIS 套件、資料庫郵件、記錄傳送、維護計畫 定期清理歷史、備份同步還原、Agent 服務帳號權限
distribution 複寫中繼資料中樞 快照/交易/合併複寫中繼資料、命令佇列、世代/衝突記錄、代理程式歷程 監控佇列積壓、定期清理、視同使用者資料庫備份

深度解析:各資料庫的「隱藏知識點」

master:不只是「存資料庫清單」

  • 啟動流程:SQL Server 服務啟動 → 讀取註冊碼參數 → 掛載 master → 讀取 sys.databases → 依序掛載其他資料庫。master 損壞 = 全實例掛點。
  • 擴展預存程序:xp_cmdshell, xp_readerrorlog 等實際是 DLL (xplog70.dll 等),載入於 SQL Server 進程空間,**安全風險高**,嚴格控管權限。
  • 災難復原唯一路徑:單用戶模式啟動 (-m) → RESTORE MASTER → 重建登入 (sp_help_revlogin) → 重新掛載使用者資料庫。

model:被忽視的標準化槓桿

  • CREATE DATABASE 內部行為 = BACKUP model ... RESTORE ... WITH MOVE 的簡化版。
  • 預置建議:READ_COMMITTED_SNAPSHOT ON、ALLOW_SNAPSHOT_ISOLATION ON、統一命名慣例 CHECK 約束、標準審計欄位 (CreatedAt, CreatedBy...)、預設檔案群組非 PRIMARY。
  • tempdb 每次啟動重建時 **完全複製 model 結構**,故 model 變更直接影響 tempdb 效能。

tempdb:效能調優的「隱形戰場」

  • 版本存放區 (SQL 2005+):快照隔離 (RCSI/SI)、線上索引重建、MARS、觸發器 inserted/deleted 表都寫入此處。長時間執行交易會導致版本存放區暴增 → tempdb 爆滿。
  • 資料檔數量規則:邏輯 CPU ≤ 8 時,檔案數 = CPU 數;>8 時從 8 開始,監控 PFS/GAM/SGAM 爭用 (sys.dm_os_wait_stats 的 PAGELATCH_*) 決定是否增加。
  • 瞬間檔案初始化 (IFI):服務帳號授予 SE_MANAGE_VOLUME_NAME (執行量維護任務) → 資料檔擴展跳過清零,**極大縮短自動成長/重建時間**。

msdb:Agent 作業的「大腦」

  • sysjobhistory 記錄每步執行結果,預設保留 1000 列/作業,總計 10000 列。生產環境必須調大或建立歸檔作業。
  • 備份鏈中繼資料:backupset, backupmediafamily, backupfile 是第三方備份工具 (CommVault, Veeam, NetBackup) 整合的關鍵。
  • 災難復原時:msdb 必須與 master、使用者資料庫**同步時間點還原**,否則 Agent 作業、備份歷史、SSIS 套件會不一致。

distribution:複寫的「心臟」

  • 交易複寫: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 壓縮至最小。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved