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

SQL Server 分段還原完整指南:腳本實戰與企業版限制說明

     編輯:關於SqlServer

分段還原允許在資料庫部分離線狀態下,優先恢復關鍵檔案群(如 PRIMARY),讓核心業務先上線,再逐步恢復次要檔案群。適用於完整/大量記錄復原模式,簡單模式限制較多。

核心概念

  • 部分還原序列:首次還原 PRIMARY(簡單模式含所有讀寫檔案群),資料庫上線,未還原檔案群處於「恢復掛起」離線狀態。
  • 檔案群還原序列:後續逐個或分批還原離線檔案群,每完成一組即可上線。
  • 企業版優勢:支援線上檔案群還原(非企業版需離線,意義大減)。

實戰腳本(AdventureWorks 範例)

-- 1. 備份尾部記錄
BACKUP LOG [AdventureWorks] TO DISK = N'D:\BACKUP_TEST\LOG_BACK_TAIL.trn' 
WITH NO_TRUNCATE, NORECOVERY, COMPRESSION, STATS = 10;

-- 2. 部分還原 PRIMARY
RESTORE DATABASE [AdventureWorks] FILEGROUP = N'PRIMARY' 
FROM DISK = N'D:\BACKUP_TEST\AD_FULL.bak' 
WITH PARTIAL, NORECOVERY, STATS = 10;

-- 3. 還原次要檔案群 MST
RESTORE DATABASE [AdventureWorks] FILEGROUP = N'MST' 
FROM DISK = N'D:\BACKUP_TEST\AD_FULL.bak' 
WITH NORECOVERY, STATS = 10;

-- 4. 依序還原記錄備份
RESTORE LOG [AdventureWorks] FROM DISK = N'D:\BACKUP_TEST\LOG_BACK_1.TRN' WITH NORECOVERY, STATS = 10;
RESTORE LOG [AdventureWorks] FROM DISK = N'D:\BACKUP_TEST\LOG_BACK_2.TRN' WITH NORECOVERY, STATS = 10;

-- 5. 還原尾部記錄並恢復
RESTORE LOG [AdventureWorks] FROM DISK = N'D:\BACKUP_TEST\LOG_BACK_TAIL.TRN' WITH RECOVERY, STATS = 10;
-- 此時 PRIMARY、MST 可存取;TRN 檔案群仍離線

-- 6. 後續還原 TRN 檔案群(企業版可線上,非企業版需離線)
RESTORE DATABASE [AdventureWorks] FILEGROUP = N'TRN' 
FROM DISK = N'D:\BACKUP_TEST\AD_FULL.bak' WITH NORECOVERY, STATS = 10;
-- 非企業版此處會要求再次備份尾部記錄,導致整庫離線

RESTORE LOG [AdventureWorks] FROM DISK = N'D:\BACKUP_TEST\LOG_BACK_1.TRN' WITH NORECOVERY, STATS = 10;
RESTORE LOG [AdventureWorks] FROM DISK = N'D:\BACKUP_TEST\LOG_BACK_2.TRN' WITH NORECOVERY, STATS = 10;
RESTORE LOG [AdventureWorks] FROM DISK = N'D:\BACKUP_TEST\LOG_BACK_TAIL.TRN' WITH RECOVERY, STATS = 10;
-- 全庫恢復完成

關鍵參數說明

  • PARTIAL:啟動分段還原,只能出現在第一條 RESTORE DATABASE。
  • NORECOVERY:保持資料庫恢復中狀態,等待後續記錄。
  • RECOVERY:完成最後一筆記錄還原後,資料庫上線。
  • STATS = 10:每 10% 顯示進度。

非企業版限制

標準版/開發版執行檔案群還原時,整個資料庫會進入「還原中」離線狀態,無法達到「核心業務先上線」的目的。生產環境若需真正的線上分段還原,請使用企業版。

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