適用対象:SQL Server
このトピックは、完全復旧モデルまたは一括ログ復旧モデルを使用する データベースのみに関連しています。
ログ シーケンス番号 (LSN) を使用して、復元操作の復旧ポイントを定義できます。 ただし、この機能はツール ベンダーを対象としたものであり、一般的には、あまり有益ではない場合があります。
ログ シーケンス番号の概要
LSN は、データが復元された時点を追跡するために、 RESTORE シーケンス中に内部的に使用されます。 バックアップを復元するときに、データはバックアップが実行された時点に対応する LSN まで復元されます。 差分バックアップとログ バックアップの場合、復元されるデータベースは LSN が大きい方、つまり、より後の時点に向かって進められます。 LSN の詳細については、「SQL Server トランザクション ログのアーキテクチャと管理ガイド」を参照してください。
注
LSN は、データ型 numeric(25,0) の値です。 算術演算 (加算や減算など) は、意味が無いので LSN では行わないでください。
バックアップと復元で使用される LSN の表示
特定のバックアップと復元イベントが発生したログ レコードの LSN は、次の 1 つ以上の方法を使用して表示できます。
注
LSN は、エラー ログの一部のメッセージにも表示されます。
LSN に復元するための Transact-SQL 構文
RESTORE ステートメントを使用すると、次のように LSN の直前または直前に停止できます。
WITH STOPATMARK = 'lsn:<lsn_number>' 句を使用します。ここで、lsn:<lsnNumber> は、指定された LSN が含まれるログ レコードが復旧ポイントであることを指定する文字列です。
STOPATMARK は LSN までロールフォワードし、そのログ レコードをロールフォワードに含めます。
WITH STOPBEFOREMARK = 'lsn:<lsn_number>' 句を使用します。ここで、lsn:<lsnNumber> は、指定した LSN 番号が含まれるログ レコードの直前のログ レコードが、復旧ポイントであることを指定する文字列です。
STOPBEFOREMARK は、LSN までロールフォワードし、そのログ レコードをロールフォワードから除外します。
通常は、包含または除外する特定のトランザクションを選択します。 実際には必要ありませんが、指定するログ レコードはトランザクション コミット レコードです。
例
次の例では、完全復旧モデルを使用するように AdventureWorks データベースが変更されていることを想定しています。
RESTORE LOG AdventureWorks FROM DISK = 'c:\adventureworks_log.bak'
WITH STOPATMARK = 'lsn:15000000040000037'
GO
関連タスク
参照
トランザクション ログ バックアップの適用 (SQL Server)
トランザクション ログ (SQL Server)
RESTORE (Transact-SQL)
復元と復旧の概要 (SQL Server)
SQL Server トランザクション ログのアーキテクチャと管理ガイド