Share via


如何:使用新的位置和名稱還原資料庫 (Transact-SQL)

更新: 2006 年 4 月 14 日

本主題將說明如何使用新的位置和新的名稱 (選擇性) 來還原資料庫。

ms190447.security(zh-tw,SQL.90).gif安全性注意事項:
建議您不要附加或還原來源不明或來源不受信任的資料庫。這種資料庫可能包含惡意程式碼,因此可能執行非預期的 Transact-SQL 程式碼,或是修改結構描述或實體資料庫結構而造成錯誤。使用來源不明或來源不受信任的資料庫之前,請先在非實際伺服器中的資料庫上執行 DBCC CHECKDB,同時檢查資料庫中的程式碼,例如預存程序或其他使用者自訂程式碼。

使用新名稱還原資料庫

  1. 選擇性執行 RESTORE FILELISTONLY 陳述式,以決定完整資料庫備份中之檔案的數目和名稱。

  2. 執行 RESTORE DATABASE 陳述式以還原完整資料庫備份,請指定:

    • 資料庫的新名稱。
      ms190447.note(zh-tw,SQL.90).gif附註:
      如果您要將資料庫還原至不同的伺服器執行個體,可以選擇使用原始名稱而非新名稱。
    • 將要還原完整資料庫備份的備份裝置。
    • 如果在還原檔案備份之後,您有交易記錄備份可以套用,則指定 NORECOVERY 子句。否則,指定 RECOVERY 子句。
      您所套用的交易記錄備份必須涵蓋檔案備份的時間。
    • 如果檔案名稱已存在,則請為要還原的每個檔案指定 MOVE 子句,將其還原到新位置上。例如,要在相同伺服器上建立一份測試用的現有資料庫副本,就需要指定這樣的子句。在此情況下,原始資料庫的資料庫檔案已存在,因此在還原作業中建立資料庫副本時,必須指定不同的檔案名稱。
      MOVE 子句的語法如下:
      MOVE 'logical_file_name_in_backup' TO 'operating_system_file_name'
      [ ,...n ] [ , ]
      在此處,logical_file_name_in_backup 是備份組中資料或記錄檔的名稱,而 operating_system_file_name 是檔案要還原至其中的位置。n 是預留位置,表示您可以指定其他 MOVE 陳述式。針對您想要從備份組還原到新位置的每一個邏輯檔案指定 MOVE 陳述式。
      ms190447.note(zh-tw,SQL.90).gif附註:
      若要取得備份組中的邏輯檔清單,請使用 RESTORE FILELISTONLY。

範例

這則範例會建立名為 MyAdvWorks 的新資料庫。MyAdvWorks 是現有 AdventureWorks 資料庫的副本,其中包含兩個檔案:AdventureWorks_DataAdventureWorks_Log。由於 AdventureWorks 資料庫已存在,因此在還原作業時,必須移動備份中的檔案。RESTORE FILELISTONLY 陳述式是用來決定資料庫中所要還原的檔案數目及名稱。

ms190447.note(zh-tw,SQL.90).gif附註:
如需有關如何建立 AdventureWorks 資料庫之完整資料庫備份的範例,請參閱<如何:建立完整資料庫備份 (Transact-SQL)>。
ms190447.note(zh-tw,SQL.90).gif附註:
備份和還原交易記錄 (包括時間點還原) 的範例會使用從 AdventureWorks 建立的 MyAdvWorks_FullRM 資料庫,就如同以下 MyAdvWorks 範例。不過,產生的 MyAdvWorks_FullRM 資料庫必須變更為使用完整復原模式:ALTER DATABASE MyAdvWorks_FullRM SET RECOVERY FULL
USE master
GO
-- First determine the number and names of the files in the backup.
-- AdventureWorks_Backup is the name of the backup device.
RESTORE FILELISTONLY
   FROM AdventureWorks_Backup
-- Restore the files for MyAdvWorks.
RESTORE DATABASE MyAdvWorks
   FROM AdventureWorks_Backup
   WITH RECOVERY,
   MOVE 'AdventureWorks_Data' TO 'D:\MyData\MyAdvWorks_Data.mdf', 
   MOVE 'AdventureWorks_Log' TO 'F:\MyLog\MyAdvWorks_Log.ldf'
GO

請參閱

概念

在另一個伺服器執行個體上提供可用的資料庫時,管理中繼資料
備份和還原的安全性考量因素
使用備份與還原來複製資料庫

其他資源

RESTORE (Transact-SQL)
SQL Server Management Studio 教學課程

說明及資訊

取得 SQL Server 2005 協助