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

SQL Server 差異備份還原完整指南:NORECOVERY 參數正確使用與常見錯誤訊息解析

     編輯:關於SqlServer

核心步驟

  1. 先還原差異備份基準的**完整備份**,**必須加 `WITH NORECOVERY`**。
  2. 再還原**最新的差異備份**(若只有一個差異備份,無需 NORECOVERY;多個時僅最後一個不用)。

T-SQL 範例

-- 1. 還原完整備份(基準)
RESTORE DATABASE [DBName] FROM DISK = N'Full.bak'
WITH FILE = 1, NORECOVERY, NOUNLOAD, STATS = 10;
GO

-- 2. 還原差異備份(單一檔案)
RESTORE DATABASE [DBName] FROM DISK = N'Diff.bak'
WITH FILE = 1, NOUNLOAD, STATS = 10;  -- 無 NORECOVERY,完成復原
GO

SSMS 介面對應選項

  • 完整備份還原時:選擇 **「讓資料庫處於非作業狀態,不回滾未提交交易,可還原其他記錄」 (RESTORE WITH NORECOVERY)**
  • 差異備份還原時:選擇 **「還原後復原資料庫」 (預設 RECOVERY)**

常見錯誤訊息與原因

環境錯誤訊息原因
SSMS 2012 視窗操作 Unable to create restore plan due to break in the LSN chain. 完整備份未指定 NORECOVERY,導致 LSN 鏈中斷。
SSMS 2008/2012 T-SQL The log or differential backup cannot be restored because no files are ready to rollforward. 同樣是完整備份未用 NORECOVERY,無檔案處於可向前捲狀態。
吐槽:錯誤訊息極易誤導,實際是完整備份缺 NORECOVERY。

多個差異備份時

按時間序還原,**除最後一個外,皆需 `WITH NORECOVERY`**。

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