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

SQL Server 三大復原模式完整解析:完整、大量記錄與簡單模式的備份策略差異

     編輯:關於SqlServer

復原模式決定備份/還原能力與記錄檔管理

每個資料庫必須設定三種復原模式之一,透過 ALTER DATABASE ... SET RECOVERY 切換 (需獨佔存取或單一使用者模式)。

模式比較總表

特性FULL (完整)BULK_LOGGED (大量記錄)SIMPLE (簡單)
預設值Model 資料庫設定 (通常為 FULL)
記錄內容所有作業完整記錄 (含大量作業逐列)大量作業 (BCP, BULK INSERT, SELECT INTO, INDEX CREATE) 僅記錄範圍/頁面配置,非逐列僅記錄足以支援交易回滾的資訊,Checkpoint 時自動截斷非作用中記錄
記錄檔增長最快,需定期記錄備份截斷大量作業期間增長緩慢最慢,自動循環使用,通常維持較小
還原粒度時間點還原 (Point-in-Time),任意秒級僅支援 交易結束點還原,無法時間點還原僅支援 完整/差異備份結束點還原
頁面還原支援 (Enterprise)支援 (Enterprise)不支援
檔案/檔案組還原支援支援不支援 (僅完整資料庫)
適用場景生產 OLTP、任務關鍵、需 RPO 接近零大量匯入/索引重建維護窗口、暫時切換以降低記錄壓力開發/測試、唯讀/資料倉儲 (可重建)、備份視窗極短

切換模式影響

  • FULL → BULK_LOGGED:大量作業期間切換,完成後立即切回 FULL 並立即執行記錄備份,確保復原鏈完整。
  • FULL → SIMPLE:斷開記錄備份鏈,後續無法時間點還原至切換前。切換前務必執行完整備份。
  • SIMPLE → FULL:啟動完整記錄,**必須立即執行完整備份** 才能啟動記錄備份鏈,否則記錄備份失敗 (錯誤 4214)。

BACKUP 指令核心語法

-- 完整資料庫備份至磁碟檔
BACKUP DATABASE [Northwind] TO DISK = N'C:\Backup\Northwind_Full.bak'
WITH INIT, COMPRESSION, CHECKSUM, STATS = 10;

-- 交易記錄備份 (僅 FULL/BULK_LOGGED)
BACKUP LOG [Northwind] TO DISK = N'C:\Backup\Northwind_Log.trn'
WITH NOINIT, COMPRESSION, CHECKSUM;

-- 差異備份
BACKUP DATABASE [Northwind] TO DISK = N'C:\Backup\Northwind_Diff.bak'
WITH DIFFERENTIAL, COMPRESSION;

-- 檔案/檔案組備份
BACKUP DATABASE [Northwind] FILEGROUP = 'SalesFG' TO DISK = N'C:\Backup\SalesFG.bak';

邏輯備份裝置 (管理多組備份組)

-- 建立邏輯裝置
EXEC sp_addumpdevice 'disk', 'Northwind_Backups', 'C:\Backup\Northwind_Multi.bak';

-- 使用邏輯裝置備份 (可累積多組)
BACKUP DATABASE [Northwind] TO Northwind_Backups;
BACKUP LOG [Northwind] TO Northwind_Backups;

-- 查看裝置內容
RESTORE HEADERONLY FROM Northwind_Backups;

大型資料庫備份策略建議

  1. 檔案組備份輪替:將歷史靜態資料歸檔至唯讀檔案組 (READ_ONLY),僅備份讀寫檔案組,大幅縮減備份窗口。
  2. 差異備份鏈:每日完整 + 每小時差異 + 每 15 分鐘記錄。還原時:完整 → 最新差異 → 後續所有記錄。
  3. 壓縮與校驗和:WITH COMPRESSION, CHECKSUM 節省儲存/頻寬、偵測媒體損壞。
  4. 備份驗證自動化:維護計畫排程 RESTORE VERIFYONLY 或第三方工具 (Redgate SQL Backup, Commvault, Veeam) 定期還原測試。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved