在SQL Server中還原差異備份,需要先還原在差異備份時間點之前的一個完整備份,在還原完整備份時要加上NORECOVERY參數,樣本SQL語句如下:
RESTORE DATABASE [資料庫名稱] FROM DISK = N'完整備份檔案路徑'WITH FILE = 1, NOUNLOAD, STATS = 10, NORECOVERYGO
在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.
(抱怨:提示資訊容易誤導人)
查看本欄目更多精彩內容:http://www.bianceng.cnhttp://www.bianceng.cn/database/SQLServer/
還原差異備份時,如果只有一個差異備份檔案需要還原,無需使用NORECOVERY參數,樣本SQL語句如下:
RESTORE DATABASE [資料庫名稱] FROM DISK = N'差異備份檔案路徑'WITH FILE = 1, NOUNLOAD, STATS = 10GO
如果有多個差異備份檔案需要還原,除了最後一個差異備份檔案,其他都需要加上NORECOVERY參數。