在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參數。