頻出高 ⏱ 7分 ★★★★☆

ログと回復処理

WAL・REDO・UNDO・ARIESアルゴリズムの詳細

データベースへの全変更操作を順序付きレコードとしてディスクに記録するファイル。障害回復の基盤となる。

ログレコードの構造
フィールド内容
LSN(ログシーケンス番号)ログの通し番号
トランザクションIDどのトランザクションか
操作種類BEGIN / UPDATE / DELETE / COMMIT / ABORT
対象ページ・行どのデータが変更されたか
変更前の値(UNDO 情報)ROLLBACK・UNDO 回復に使用
変更後の値(REDO 情報)REDO 回復に使用

データを変更する前に必ずログを先に書く原則。これにより:

-- WAL の順序
1. ログバッファにレコードを追記
2. ログをディスクにフラッシュ( fsync )
3. データページを変更
4. COMMIT レコードをログに書く
① Analysis(解析):最後のチェックポイントからログをスキャンし、クラッシュ時点のアクティブトランザクションとダーティページを特定
② REDO(再実行):ログを順方向にスキャンし、すべての変更を再適用
③ UNDO(取り消し):コミットされていないトランザクションを逆順に取り消し

📝 理解度チェック

WAL(Write Ahead Logging)において「先に書く」とは何をどこに書くことか?
ARIESアルゴリズムのREDOフェーズの目的はどれか?

読了ボタンを押すとトップページの進捗に反映されます