文章出處

在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 備份和還原全攻略

 


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()