ログ シーケンス番号 (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 データベースの復元シーケンスの処理