頻出高
⏱ 7分
★★★★☆
ログと回復処理
WAL・REDO・UNDO・ARIESアルゴリズムの詳細
トランザクションログとは
データベースへの全変更操作を順序付きレコードとしてディスクに記録するファイル。障害回復の基盤となる。
WAL(Write Ahead Logging)
データを変更する前に必ずログを先に書く原則。これにより:
- 障害後にログから REDO 可能(耐久性 D の基盤)
- UNDO 情報があれば ROLLBACK も可能(原子性 A の基盤)
-- WAL の順序
1. ログバッファにレコードを追記
2. ログをディスクにフラッシュ( fsync )
3. データページを変更
4. COMMIT レコードをログに書く
回復処理の流れ(ARIESアルゴリズム)
① Analysis(解析):最後のチェックポイントからログをスキャンし、クラッシュ時点のアクティブトランザクションとダーティページを特定
↓
② REDO(再実行):ログを順方向にスキャンし、すべての変更を再適用
↓
③ UNDO(取り消し):コミットされていないトランザクションを逆順に取り消し
試験のポイント
- WAL = ログ先書き(Log Before Data)
- REDO = コミット済みを再適用(前進回復)
- UNDO = 未コミットを取り消し(後退回復)
- チェックポイント後のログだけ処理すれば回復可能
- ログファイルはデータファイルと別ディスクに置くのがベストプラクティス
📝 理解度チェック
WAL(Write Ahead Logging)において「先に書く」とは何をどこに書くことか?
ARIESアルゴリズムのREDOフェーズの目的はどれか?
読了ボタンを押すとトップページの進捗に反映されます