ログ シーケンス番号 (LSN) への復旧

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

SQL Server 2005 では、ログ シーケンス番号 (LSN) を使用して、復元操作の復旧ポイントを定義できます。この機能は、ツール ベンダを対象としたものであり、一般的には、あまり有益ではない場合があります。

LSN に復元するための Transact-SQL 構文

RESTORE ステートメントを使用して、次のように LSN または LSN の直前まで復元できます。

  • WITH STOPATMARK ='lsn:<lsn_number>' 句を使用します。ここで、lsn:<lsnNumber> は、指定された LSN が含まれるログ レコードが復旧ポイントであることを指定する文字列です。
    STOPATMARK によって LSN までロールフォワードされ、そのログ レコードがロールフォワードに含められます。
  • WITH STOPBEFOREMARK ='lsn:<lsn_number>' 句を使用します。ここで、lsn:<lsnNumber> は、指定した LSN 番号が含まれるログ レコードの直前のログ レコードが、復旧ポイントであることを指定する文字列です。
    STOPBEFOREMARK では、LSN までロールフォワードされますが、指定されたログ レコードはロールフォワードから除外されます。

通常は、包含または除外する特定のトランザクションを選択します。実際には必要ありませんが、指定するログ レコードはトランザクション コミット レコードです。

LSN の使用方法の詳細については、「ログ シーケンス番号と復元プラン」を参照してください。

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

次の例では、完全復旧モデルを使用するように AdventureWorks データベースが変更されていることを想定しています。

RESTORE LOG AdventureWorks FROM DISK = 'c:\adventureworks_log.bak' 
WITH STOPATMARK = 'lsn:15000000040000037'
GO

参照

概念

トランザクション ログ バックアップの適用
ログ シーケンス番号の概要

その他の技術情報

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

ヘルプおよび情報

SQL Server 2005 の参考資料の入手