在不還原資料的情況下復原資料庫 (Transact-SQL)
通常會先還原 SQL Server 資料庫中的所有資料,再復原資料庫。 不過,還原作業可以復原資料庫,而不實際還原備份;例如,復原與資料庫一致的唯讀檔案時即是如此。 這稱為「僅復原的還原」(Recovery-only restore)。 如果離線資料已與資料庫一致,而且只需要回復為可用狀態,僅復原的還原作業就會完成資料庫的復原,並讓資料回到線上。
整個資料庫或一個或多個檔案或檔案群組,都可能發生僅復原的還原。
僅復原的資料庫還原
僅復原的資料庫還原在下列情況中會很有用:
還原還原順序中最後一個備份時,您未復原資料庫,但是現在想要復原資料庫以使其回到線上。
資料庫處於待命模式,而您想在不套用其他記錄備份的情況下使資料庫成為可更新的。
用於僅復原的資料庫還原的 RESTORE 語法如下:
RESTORE DATABASE database_name WITH RECOVERY
[!附註]
FROM = <backup_device> 子句未使用於僅復原的還原,是因為沒有備份的必要。
範例
下列範例會在還原作業中復原 AdventureWorks2012 範例資料庫,而不還原資料。
-- Restore database using WITH RECOVERY.
RESTORE DATABASE AdventureWorks2012
WITH RECOVERY
[回到頁首]
僅復原的檔案還原
僅復原的檔案還原在下列情況中會很有用:
分次還原資料庫。 主要檔案群組的還原完成之後,未還原的檔案中有一或多個檔案與新的資料庫狀態一致,或許是因為它已經有好一段時間是唯讀的。 這些檔案只需復原即可;不需要資料複製。
僅復原的還原作業會讓離線檔案群組中的資料回到線上;不會產生資料複製、重做或恢復階段。 如需有關還原階段的詳細資訊,請參閱<還原和復原概觀 (SQL Server)>。
用於僅復原的檔案還原的 RESTORE 語法為:
RESTORE DATABASE database_name { FILE = logical_file_name | FILEGROUP = logical_filegroup_name }[ ,...n ]WITH RECOVERY
範例
下列範例說明如何針對 Sales 資料庫中次要檔案群組 SalesGroup2 的檔案進行僅復原的檔案還原。 主要檔案群組已經在分次還原的初始步驟中還原,而且 SalesGroup2 與還原的主要檔案群組一致。 將此檔案群組復原並使其上線,只需要一個陳述式。
RESTORE DATABASE Sales FILEGROUP=SalesGroup2 WITH RECOVERY;
[回到頁首]
透過僅復原的還原完成分次還原狀況的範例
簡單復原模式
完整復原模式