ファイルを新しい場所に復元する方法 (Transact-SQL)

このトピックでは、ファイルを新しい場所に復元する方法について説明します。

重要な注意事項重要

ファイルの復元中は、復元作業を実行するシステム管理者以外は、復元されるデータベースを使用しないでください。

ファイルを新しい場所に復元するには

  1. 必要に応じて、RESTORE FILELISTONLY ステートメントを実行し、データベースの完全バックアップ内のファイル数とファイル名を特定します。

  2. 次の項目を指定した RESTORE DATABASE ステートメントを実行し、データベースの完全バックアップを復元します。

    • 復元するデータベースの名前。

    • 復元するデータベースの完全バックアップが格納されているバックアップ デバイス。

    • 新しい場所に復元するファイルごとの MOVE 句。

    • NORECOVERY 句。

  3. ファイル バックアップの作成後にファイルが変更された場合は、RESTORE LOG ステートメントを実行して、トランザクション ログ バックアップを適用します。そのとき、以下を指定します。

    • トランザクション ログが適用されるデータベースの名前。

    • 復元するトランザクション ログのバックアップが格納されているバックアップ デバイス。

    • NORECOVERY 句。現在のトランザクション ログ バックアップを適用した後、別のバックアップがある場合に指定します。それ以外の場合は RECOVERY 句を指定します。

      トランザクション ログ バックアップを適用する場合、そのバックアップには、ファイルとファイル グループのバックアップが作成された時刻の情報が格納されている必要があります。

使用例

この例では、元は C ドライブに配置されていた MyNwind データベースの 2 つのファイルを D ドライブ上の新しい場所に復元します。データベースを現在の時刻に復元するために、2 つのトランザクション ログも適用されます。RESTORE FILELISTONLY ステートメントは、復元するデータベース内のファイル数、およびファイルの論理名と物理名を判断するために使用します。

USE master
GO
-- First determine the number and names of the files in the backup.
RESTORE FILELISTONLY
   FROM MyNwind_1
-- Restore the files for MyNwind.
RESTORE DATABASE MyNwind
   FROM MyNwind_1
   WITH NORECOVERY,
   MOVE 'MyNwind_data_1' TO 'D:\MyData\MyNwind_data_1.mdf', 
   MOVE 'MyNwind_data_2' TO 'D:\MyData\MyNwind_data_2.ndf'
GO
-- Apply the first transaction log backup.
RESTORE LOG MyNwind
   FROM MyNwind_log1
   WITH NORECOVERY
GO
-- Apply the last transaction log backup.
RESTORE LOG MyNwind
   FROM MyNwind_log2
   WITH RECOVERY
GO

USE master
GO
-- First determine the number and names of the files in the backup.
RESTORE FILELISTONLY
   FROM MyNwind_1
-- Restore the files for MyNwind.
RESTORE DATABASE MyNwind
   FROM MyNwind_1
   WITH NORECOVERY,
   MOVE 'MyNwind_data_1' TO 'D:\MyData\MyNwind_data_1.mdf', 
   MOVE 'MyNwind_data_2' TO 'D:\MyData\MyNwind_data_2.ndf'
GO
-- Apply the first transaction log backup.
RESTORE LOG MyNwind
   FROM MyNwind_log1
   WITH NORECOVERY
GO
-- Apply the last transaction log backup.
RESTORE LOG MyNwind
   FROM MyNwind_log2
   WITH RECOVERY
GO