LSN
トランザクションログのレコードを管理するための番号
特徴洗い出し
大きな値ほど最近のレコード
シーケンシャル
ログバックアップの集まりをログチェーンと呼ぶ
これを使ってデータベースを復旧させるためにはログチェーンが壊れていないことが前提
データベースが初めてバックアップされてから管理される
他にも復旧モデルが切り替えられたときというタイミングもある
LSNはバックアップの最後から始まっている必要がある
バックアップのとり方で(データベース、部分、ファイル)ちょっと変わるみたい
復元する時点を追跡できる
backupset
first_lsn
バックアップセットの最初
最も古いログレコードのログシーケンス番号
last_lsn
バックアップセットの次のログレコードのログシーケンス番号
checkpoint_lsn
再実行を開始する必要があるログレコードのログシーケンス番号
database_backup_lsn
データベース全体の最新バックアップのログシーケンス番号
database_backup_lsnは、バックアップの開始時にトリガーされるチェックポイントの先頭です。 データベースがアイドル状態で、レプリケーションが構成されていないときにバックアップが実行された場合、このログシーケンス番号はfirst_lsnと同じになります。
復元するバックアップセットに全LSNという列があるが、これのことか?
fork_point_lsn
first_recovery_fork_guidとlast_recovery_fork_guidが等しくない場合の分岐ポイントのログシーケンス番号
それ以外の場合はnull
differential_base_lsn
差分バックアップのベースLSN。シングルベースの差分バックアップの場合、differential_base_lsn以上のログシーケンス番号に関する変更が差分バックアップに含められます。マルチベースの差分バックアップの場合はNULLで、ベースLSNはファイルレベルで決定される必要があります。差分バックアップ以外の種類の場合は、常に NULL です。
とにかく最新のバックアップ一式を揃える場合、これでとれる?
1. 一番新しい完全バックアップを取得する
後で使うcheckpoint_lsn(完全)を取得する
完全と差分は必ずfirst_lsn = checkpoint_lsn?
checkpoint_lsn(完全)が一致するバックアップを取得する
完全バックアップがとられて以降すべての、差分バックアップ、トランザクションログバックアップが取得できるはず
2. 一番新しい差分バックアップを取得する
後で使うcheckpoint_lsn(差分)を取得する
3. checkpoint_lsn(差分)以上のトランザクションログバックアップを取得する
table:_
type first_lsn last_lsn checkpoint_lsn database_backup_lsn
完全 001... 001... 000...
ログ 001... 001...
... 001...
ログ 001...
... 001...
完全最新 002... 002... 001...
ログ 002... 002...
... 002...
ログ 002...
差分 456... 456... 002...
ログ 456... 002...
... 002...
ログ 002...
Copy Only 111... 111... 002...
ログ 111... 002...
... 002...
ログ 002...
差分最新 789... 789... 002...
ログ 789... 002...
... 002...
ログ 002...
... 002...
ログ最新 002...
(完全) 003... 003...
first_lsn last_lsn checkpoint_lsn database_backup_lsn
完全バックアップ
自分のfirst_lsn = 自分のcheckpoint_lsn = 次のログバックアップのcheck_point_lsn = 次に完全バックアップがくるまでのバックアップのdatabase_backup_lsn
差分バックアップ、完全バックアップ(Copy Only)
自分のfirst_lsn = 自分のcheckpoint_lsn = 次のログバックアップのcheck_point_lsn
参考
トランザクション ログのアーキテクチャと管理ガイド - SQL Server | Microsoft Docs
LSN とは? – Microsoft SQL Server Japan Support Team Blog
ログ シーケンス番号への復旧 (SQL Server) - SQL Server | Microsoft Learn
SQL Server トランザクション ログのアーキテクチャと管理ガイド - SQL Server | Microsoft Learn ログチェーン
関連
復元プランを作成できません。lsn チェーンが破損しています。