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

SQL Server 資料庫架構基石:檔案、檔案群組與交易記錄深度解析

     編輯:關於SqlServer

理解 SQL Server 實體儲存架構是效能調校、災難復原、容量規劃的前提。資料庫由邏輯結構(檔案群組、結構描述)映射至實體檔案(.mdf/.ndf/.ldf),掌握兩者對應關係才能做出正確架構決策。

資料庫檔案三層架構

檔案類型副檔名角色數量限制
主要資料檔.mdf儲存啟動資訊、系統目錄、未指定檔案群組的使用者資料每資料庫恰好 1 個
次要資料檔.ndf分散儲存使用者資料、支援跨磁碟擴充0~N 個
交易記錄檔.ldf記錄所有修改操作(INSERT/UPDATE/DELETE),支援復原與複寫1~N 個

多檔案架構的效能優勢

  • 突破單一檔案大小限制:作業系統檔案大小上限不再是瓶頸。
  • 平行 I/O 處理:將檔案分置於不同實體磁碟/RAID 群組,實現多執行緒並行讀寫,特別適合多核心伺服器。
  • 資料分層儲存:熱門資料置於 SSD、冷門資料置於 HDD,透過檔案群組導向儲存。
  • 備份彈性:支援檔案/檔案群組層級備份,縮小備份窗口。

交易記錄:Write-Ahead Logging (WAL) 機制

  1. 修改操作先寫入記憶體緩衝區的記錄檔(Log Buffer)。
  2. 交易認可時,強制將記錄寫入實體 .ldf(確保持久性)。
  3. 資料頁修改留在緩衝區,由 Checkpoint 背景執行緒定期批次寫入 .mdf/.ndf。
  4. 系統啟動時,根據記錄檔執行 Redo(重做) 與 Undo(復原),保證資料庫一致性。

關鍵啟示: 記錄檔是資料庫的「黑盒子」,完整性直接關乎災難復原成敗。務必:

  • 記錄檔置於獨立磁碟(RAID 1/10),避免與資料檔爭搶 I/O。
  • 設定合理初始大小與成長增量(建議固定 MB 而非百分比),減少虛擬記錄檔 (VLF) 碎片。
  • 完整復原模式下定期備份記錄檔,防止無限增長填滿磁碟。

檔案群組:邏輯管理的抽象層

  • PRIMARY:系統物件預設群組,不可移除、不可設唯讀。
  • 使用者定義群組:可設為預設群組、可設唯讀、可獨立備份還原。
  • 資料表/索引建立時指定 ON [FileGroup] 決定實體存放位置。

設計資料庫時,先規劃檔案群組拓撲(如:Data_FG、Index_FG、Archive_FG),再對應實體檔案與磁碟配置,才能發揮 SQL Server 分層儲存的最大效益。

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