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

SQL Server 災難恢復:完整資料庫還原 vs 單一檔案群組還原

     編輯:關於SqlServer

當單一檔案/檔案群組損壞 (如 50 MB) 而完整資料庫達數十 GB 時,單一檔案群組還原可大幅縮短 RTO。但需評估以下條件:

前提條件

  1. 必須有記錄檔備份 (完整/大量記錄復原模式),還原檔案群組後需套用後續記錄檔使資料庫一致。簡單復原模式無法使用。
  2. 跨檔案群組參考完整性:若表跨檔案群組有 FK/Join/View/SP 相依,單一群組還原可能導致邏輯不一致。需確認相依關係或接受人工修正。
  3. 單一檔案群組資料庫:若資料庫僅有一個檔案群組,部分還原無意義。

常見誤區

許多想「還原單一資料表」實為「還原單一檔案群組」。SQL Server 不支援物件級還原,變通做法:

  1. 還原完整備份至新資料庫 (不同名稱)。
  2. 套用記錄檔至目標時間點。
  3. 從新資料庫複製目標資料表回原資料庫 (需處理 FK/觸發器/Identity)。

SQL 2000/2005 PARTIAL 還原

RESTORE DATABASE YourDB FILEGROUP = 'FG_Name'
FROM DISK = 'backup.bak'
WITH PARTIAL, NORECOVERY;
-- 後續套用記錄檔備份
RESTORE LOG YourDB FROM DISK = 'log.trn' WITH RECOVERY;
  • PARTIAL 子句僅還原指定檔案群組 + 主要檔案群組。
  • 節省時間/空間,適用大型資料庫局部災難。

決策建議

情境建議
大型資料庫、單一磁碟故障、有完整記錄檔備份、無跨群組強相依單一檔案群組還原
小型資料庫、多群組損壞、或無記錄檔備份完整資料庫還原
需邏輯層級還原單一資料表還原至新資料庫 → 複製資料 (謹慎處理相依)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved