恢復模式控制交易記錄的維護方式,直接決定了:資料遺失風險 (RPO)、是否支援時間點還原、以及記錄檔空間管理的複雜度。
| 特性 | 簡單模式 | 完整模式 | 大量記錄模式 |
|---|---|---|---|
| 記錄備份 | 不支援 / 不需要 | 強制需求 | 強制需求 |
| 還原點目標 (RPO) | 上次完整/差異備份時間 | 任意時間點 (零資料遺失) | 記錄備份結尾 (大量操作區間不可時間點還原) |
| 記錄空間管理 | 自動截斷 (Checkpoint 時),無需人工干預 | 需定期 BACKUP LOG 截斷,否則無限增長 |
同完整模式,但大量操作期間記錄增長較慢 |
| 大量操作記錄 | 最小記錄 | 完整記錄 | 最小記錄 (效能最佳) |
| 典型適用場景 | 開發/測試、唯讀、可容忍遺失數小時資料的非核心庫 | 生產環境核心業務標準配置 | 大量匯入/重建索引維護窗口期間臨時切換 |
| 主要風險 | 災難發生時,自上次備份以來的所有變更永久遺失 | 若疏忽記錄備份,記錄檔撐爆磁碟導致資料庫停擺 | 大量操作後若記錄損壞,該區間資料無法精準還原 |
提供最高等級的資料保護。前提條件:必須建立嚴格的BACKUP LOG排程(如每 15-60 分鐘),並監控記錄檔使用率。
在執行大量資料載入 (BULK INSERT, BCP)、索引重建、SELECT INTO 等操作前,切換至大量記錄模式:
ALTER DATABASE [ProdDB] SET RECOVERY BULK_LOGGED;
-- 執行大量操作
-- ...
ALTER DATABASE [ProdDB] SET RECOVERY FULL; -- 立即切回並做一次記錄備份
BACKUP LOG [ProdDB] TO DISK = '...';
注意:切回完整模式後,必須立即進行一次記錄備份以啟動新的記錄鏈。
減少 DBA 維護負擔,但必須接受「備份間隔內資料全遺失」的風險。縮短完整備份間隔(如每日甚至每 12 小時)可降低風險暴露窗口。