特定の時点まで復元する方法 (Transact-SQL)
このトピックでは、特定の時点まで復元する方法について説明します。
特定の時点まで復元するには
NORECOVERY オプションを指定した RESTORE DATABASE ステートメントを実行します。
RESTORE LOG ステートメントを実行して、各ログ バックアップを適用します。その際には、次の指定を行います。
- トランザクション ログが適用されるデータベースの名前。
- 適用するトランザクション ログのバックアップが格納されているバックアップ デバイス。
- RECOVERY オプションと STOPAT オプション。トランザクション ログ バックアップに、要求した時点の情報が格納されていない場合、たとえば、指定した日時がトランザクション ログに記録されている時点より後の場合などに、警告が生成されます。この場合、データベースは復旧されません。
使用例
次の例では、AdventureWorks
データベースを 12:00 AM on April 15, 2005
の時点の状態に復元します。復元シーケンスでは、NORECOVERY
オプションを使用してデータベースの完全バックアップをインストールし、各 RESTORE LOG
ステートメントに RECOVERY
オプションと STOPAT
オプションを指定して、3 つのログ バックアップを適用します。バックアップ デバイスは、AdventureWorksBackups
という名前の論理バックアップ デバイスです。
重要 : |
---|
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)