特定の時点への復旧

青いデータベース ディスクを示すアイコン このトピックは、完全復旧モデルまたは一括ログ復旧モデルを使用する SQL Server データベースのみに適用されます。

一括ログ復旧モデルでは、ログ バックアップに一括ログ記録された変更内容が含まれていると、そのバックアップ内の特定の時点への復旧を行うことができません。データベースは、トランザクション ログ バックアップの終了時点へ復旧する必要があります。

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

特定の時点に復元するための Transact-SQL 構文

ms178143.note(ja-jp,SQL.90).gifメモ :
特定の時点またはマークされたトランザクションを指定するための構文は、Microsoft SQL Server 2000 から変更されていませんが、RESTORE DATABASE および RESTORE LOG に適用されるようになりました。

データベースを特定の時点に復元するために、RESTORE ステートメントには STOPAT オプションがあります。このオプションは、通常、ログ バックアップの復元時に使用されます。

基本構文は次のとおりです。

RESTORE LOG database_name FROM <backup_device> WITH STOPAT =time, RECOVERY…

復旧ポイントは、time で指定する datetime 以前に行われた最後のトランザクション コミットの時点です。

特定の時点より前に行われた変更のみを復元するには、復元するバックアップごとに WITH STOPAT = time を指定します。これにより、目的の時点を過ぎる危険性を回避できます。

通常、特定の時点への復元シーケンスには、次の段階があります。

  • データベースの最新の完全バックアップを復元し、差分バックアップが存在する場合は、データベースを復旧せずに最新のデータベースの差分バックアップを復元します (RESTORE DATABASE database_name FROM backup_device WITH NORECOVERY)。
  • 各トランザクション ログ バックアップを作成順に適用して、ログの復元を停止する時点を指定します (RESTORE DATABASE database_name FROM <backup_device> WITH STOPAT**=time,** RECOVERY)。

詳細については、「バックアップ内の特定の時点へのデータベースの復元」を参照してください。

参照

概念

トランザクション ログ バックアップの適用
マークされたトランザクションの使用 (完全復旧モデル)
SQL Server でのバックアップの復元と復旧の動作について

その他の技術情報

backupset (Transact-SQL)
RESTORE (Transact-SQL)
RESTORE HEADERONLY (Transact-SQL)
SQL Server データベースの復元シナリオの実装
バックアップ内の特定の時点へのデータベースの復元
SQL Server データベースの復元シーケンスの処理

ヘルプおよび情報

SQL Server 2005 の参考資料の入手