バックアップ内の特定の時点へのデータベースの復元
このトピックは、完全復旧モデルまたは一括ログ復旧モデルを使用する SQL Server データベースのみに適用されます。
障害発生前の特定の時点、マーク、またはログ シーケンス番号 (LSN) に、データベースを復元および復旧できます。たとえば、トランザクションにより、一部のデータが間違って変更された場合、不適切なデータが入力される直前の復旧ポイントにデータベースを復元することができます。データベースの復旧ポイントを指定する復元操作を、特定の時点への復元と呼びます。
特定の時点に復元する際の復旧ポイントは、通常トランザクション ログ バックアップ内にあります。これは、特定の時点への復元シーケンスで使用される最後のバックアップです。このログ バックアップを適用する場合、STOPAT、STOPATMARK、または STOPBEFOREMARK 句で目的の復旧ポイントを指定することで、その時点より前のトランザクションのみを復旧できます。復旧が完了すると、データベースの時刻は、プライマリ ファイルを復旧した復旧ポイントの時刻になります。続けて復元操作を行う場合、後続の復元操作では、復元完了時点のデータベースと整合性のある復旧ポイントを使用する必要があります。
目的の復旧ポイントは、以下のいずれかを使用して指定します。
- トランザクション ログ内の特定の時点。
- トランザクション ログ レコードに挿入された名前付きマーク。
- ログ シーケンス番号 (LSN)。
メモ : |
---|
LSN への復旧は、ツール ベンダを対象としたものであり、一般的には、あまり有益ではない場合があります。 |
目的の復旧ポイントは、トランザクション ログ バックアップに含まれる必要があります。また、ログ バックアップは、特定の時点への復元シーケンスの開始時点で復元されるデータベースの完全バックアップまたは部分バックアップと同じ復旧パスにある必要があります。
メモ : |
---|
一括ログ復旧モデルでは、ログ バックアップに一括ログ記録された変更内容が含まれていると、そのバックアップ内の特定の時点への復旧を行うことができません。データベースは、トランザクション ログ バックアップの終了時点へ復旧する必要があります。 |
このセクションの内容
- 特定の復旧ポイントにデータベースを復旧するためのベスト プラクティス
特定の復旧ポイントにデータベースを復元する場合のベスト プラクティスをいくつか紹介します。
- 特定の時点への復旧
バックアップ全体を復旧するのではなく、トランザクション ログ バックアップ内の特定の時点より前に発生したトランザクションのみを復旧することで、特定の時点の状態に復旧する方法を説明します。
- マークされたトランザクションへの復旧
以前にトランザクション ログに挿入したマークまで、またはマークの直前まで復旧する方法を説明します。
- ログ シーケンス番号 (LSN) への復旧
ログ シーケンス番号 (LSN) を使用して、復元操作の復旧ポイントを定義する方法を説明します。
参照
概念
トランザクション ログ バックアップの適用
マークされたトランザクションの使用 (完全復旧モデル)
SQL Server でのバックアップの復元と復旧の動作について
その他の技術情報
backupset (Transact-SQL)
RESTORE (Transact-SQL)
RESTORE HEADERONLY (Transact-SQL)
SQL Server データベースの復元シナリオの実装
SQL Server データベースの復元シーケンスの処理