特定の時点まで復元する方法 (Transact-SQL)

このトピックでは、特定の時点まで復元する方法について説明します。

特定の時点まで復元するには

  1. NORECOVERY オプションを指定した RESTORE DATABASE ステートメントを実行します。

  2. RESTORE LOG ステートメントを実行して、各ログ バックアップを適用します。その際には、次の指定を行います。

    • トランザクション ログが適用されるデータベースの名前。
    • 適用するトランザクション ログのバックアップが格納されているバックアップ デバイス。
    • RECOVERY オプションと STOPAT オプション。トランザクション ログ バックアップに、要求した時点の情報が格納されていない場合、たとえば、指定した日時がトランザクション ログに記録されている時点より後の場合などに、警告が生成されます。この場合、データベースは復旧されません。

使用例

次の例では、AdventureWorks データベースを 12:00 AM on April 15, 2005 の時点の状態に復元します。復元シーケンスでは、NORECOVERY オプションを使用してデータベースの完全バックアップをインストールし、各 RESTORE LOG ステートメントに RECOVERY オプションと STOPAT オプションを指定して、3 つのログ バックアップを適用します。バックアップ デバイスは、AdventureWorksBackups という名前の論理バックアップ デバイスです。

ms179451.note(ja-jp,SQL.90).gif重要 :
AdventureWorks データベースは、単純復旧モデルを使用しています。ただし、ログ バックアップを可能にするために、データベースの完全バックアップを行う前に、ALTER DATABASE AdventureWorks SET RECOVERY FULL を使用して、MyAdvWorks_FullRM データベースで完全復旧モデルを使用するように設定されています。
-- Restore the full database backup.
RESTORE DATABASE AdventureWorks
   FROM AdventureWorksBackups 
   WITH NORECOVERY;
GO
RESTORE LOG AdventureWorks
   FROM AdventureWorksBackups
   WITH RECOVERY, STOPAT = 'Apr 15, 2005 12:00 AM';
GO
RESTORE LOG AdventureWorks
   FROM AdventureWorksBackups
   WITH RECOVERY, STOPAT = 'Apr 15, 2005 12:00 AM';
GO
RESTORE LOG AdventureWorks
   FROM AdventureWorksBackups
   WITH RECOVERY, STOPAT = 'Apr 15, 2005 12:00 AM';
   GO 

参照

概念

特定の時点への復旧

その他の技術情報

RESTORE (Transact-SQL)
RESTORE HEADERONLY (Transact-SQL)

ヘルプおよび情報

SQL Server 2005 の参考資料の入手