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

SQL Server 2008 復原模式深度評析:簡單、完整、大量記錄

     編輯:關於SqlServer

核心概念:交易記錄與復原模式

每個資料庫至少包含 MDF (資料檔) 與 LDF (記錄檔)。記錄檔記錄每筆資料變更,支援復原與「時間點還原」。但記錄檔無限增長會耗盡磁碟,因此需透過截斷釋放空間,截斷時機由復原模式決定。

三種復原模式對比

模式記錄截斷時機支援備份類型時間點還原適用場景
簡單 Checkpoint 發生時自動截斷 完整備份、差異備份、檔案/檔案組備份 不支援 測試環境、資料可重載、容忍資料遺失
完整 記錄備份完成後截斷 所有備份類型 + 交易記錄備份 支援 (任意時間點) 生產環境、高資料保護需求
大量記錄 記錄備份完成後截斷 同完整模式,但大量操作最小化記錄 支援 (大量操作期間除外) 大量匯入/索引重建期間,效能優先

模式切換影響

  • 完整 → 簡單:斷開記錄鏈,後續無法做記錄備份還原至切換前時間點。
  • 簡單 → 完整:需先做完整備份啟動記錄鏈。
  • 大量記錄為完整模式變體,大量操作 (BCP, SELECT INTO, CREATE INDEX) 僅記錄範圍而非逐筆,提升效能但犧牲該期間的時間點還原能力。

備份策略建議

  • 完整模式:每日完整備份 + 每小時記錄備份 + 定期差異備份。
  • 簡單模式:每日完整備份 + 定期差異備份。
  • 大量操作窗口期間暫時切換至大量記錄模式,操作結束切回完整模式並立即備份記錄。

新功能:備份壓縮 (SQL Server 2008+)

啟用壓縮可節省 50-80% 備份空間與 I/O,適用於所有復原模式,建議生產環境預設開啟。

查看/修改復原模式

-- 查看
SELECT name, recovery_model_desc FROM sys.databases;

-- 修改 (需獨佔或單一使用者模式)
ALTER DATABASE [YourDB] SET RECOVERY FULL; -- 或 SIMPLE, BULK_LOGGED
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved