SQL Server的差異備份還原


在SQL Server中還原差異備份,需要先還原在差異備份時間點之前的一個完整備份,在還原完整備份時要加上NORECOVERY參數,示例SQL語句如下:

RESTORE DATABASE [數據庫名稱] 
FROM  DISK = N'完整備份文件路徑' 
WITH  FILE = 1,  
NOUNLOAD,  
STATS = 10, 
NORECOVERY
GO

在Management Studio中對應的選項是:

Leave the database non-operational, and do not roll back uncommitted transactions. Additional transaction logs can be restored. (RESTORE WITH NORECOVERY)

如果沒有加上NORECOVERY參數,默認是RECOVERY,則:

  • 在SQL Server 2012 Management Studio中通過窗口操作會出現錯誤提示:Unable to create restore plan due to break in the LSN chain.
  • 在SQL Server 2008/2012 Management Studio中執行SQL語句會出現錯誤提示:The log or differential backup cannot be restored because no files are ready to rollforward.

(抱怨:提示信息容易誤導人)

還原差異備份時,如果只有一個差異備份文件需要還原,無需使用NORECOVERY參數,示例SQL語句如下:

RESTORE DATABASE [數據庫名稱] 
FROM  DISK = N'差異備份文件路徑' 
WITH  FILE = 1,  
NOUNLOAD,  
STATS = 10
GO

如果有多個差異備份文件需要還原,除了最后一個差異備份文件,其他都需要加上NORECOVERY參數。

【參考資料】

SQL Server 備份和還原全攻略

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM