首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

SQL Server 資料庫備份完整體系:復原模式、備份類型、SLA 與策略規劃

     編輯:MySQL 資料庫相關知識

核心觀念:復原模式決定備份能力

模式日誌記錄支援備份類型時間點還原適用場景
SIMPLE最小化 (Checkpoint 截斷)完整、差異、檔案**不支援**測試/開發、可容忍資料遺失
BULK_LOGGED大量操作最小化完整、差異、記錄、檔案部分支援 (含最小化操作則不可)大量匯入/重建索引窗口期
FULL完整記錄**所有類型****支援** (近乎零資料遺失)**生產環境標準**

新資料庫繼承 `model` 設定 (預設 FULL)。修改無需重啟:`ALTER DATABASE [DB] SET RECOVERY FULL;`

五大備份類型詳解

類型內容依賴基準復原模式需求
完整資料庫備份所有資料/物件 + 足夠日誌達一致性無 (基準點)所有
差異資料庫備份自上次完整備份後變更的範圍最近一次完整備份所有
交易記錄備份自上次記錄備份後的日誌記錄上次記錄備份 (首次需完整備份)FULL / BULK_LOGGED
檔案/檔案組備份指定檔案/組的資料完整備份 (差異檔案備份依賴完整檔案備份)所有 (唯讀檔案組 SIMPLE 也可)
部分備份所有讀寫檔案組 + 指定唯讀組同上所有

備份鏈與還原順序

FULL (Day 1 00:00)
  └─ DIFF (Day 1 12:00)
       └─ LOG (06:00) → LOG (12:00) → LOG (18:00)
  └─ DIFF (Day 2 00:00)
       └─ LOG ...
還原順序:最新 FULL → 最新 DIFF → 所有後續 LOG (依序) → STOPAT 時間點

規劃關鍵因素 (SLA 驅動)

  1. RPO (Recovery Point Objective):可容忍資料遺失量 → 決定記錄備份頻率 (如 15 分鐘 = RPO ≤ 15 min)
  2. RTO (Recovery Time Objective):可容忍停機時間 → 決定完整/差異備份頻率、壓縮、平行處理、硬體投資
  3. 備份儲存位置:本地 + 異地 (Azure Blob、異地複寫)、離線不可變備份 (防勒索軟體)
  4. 保留週期:法規/業務需求 (如完整備份保留 30 天、記錄備份 7 天、年度封存 7 年)
  5. 工具選擇:維護計畫、Ola Hallengren 腳本、第三方 (Commvault、Veeam)、Azure SQL 備份
  6. 效能影響:備份窗口、壓縮 CPU、I/O 節流、資源調控器限制

常見策略範例 (生產 OLTP)

-- 完整備份:每日 02:00 (壓縮、校驗和、統計 5%)
-- 差異備份:每 6 小時 (08:00, 14:00, 20:00)
-- 記錄備份:每 15 分鐘 (全天候)
-- 驗證:每週 RESTORE VERIFYONLY + 季度演練完整還原
-- 異地複製:Azure Blob GRS / 異地次要伺服器

關鍵警示

  • **FULL 模式未做記錄備份 → 日誌無限增長 → 磁碟爆滿**
  • **刪除/重建 LDF 極度危險** → 可能導致資料庫 SUSPECT/無法啟動
  • `COPY_ONLY` 備份不破壞差異基準/記錄鏈,適合臨時測試備份
  • 大型資料庫 (VLDB) 採用檔案組備份 + 並行流、快照備份 (SAN/Storage Replica)
  • 定期 `DBCC CHECKDB` 配合備份驗證,確保備份可用性

備份不是目的,**可驗證、符合 RPO/RTO 的還原能力**才是核心。從復原模式開始規劃,建立分層備份策略,並持續演練還原,是 DBA 的第一要務。

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