物理設計・インデックス・障害回復 重要度:★★★出題: AM2・PM1・PM2
WAL(ログ先行書込み)とロールフォワード・ロールバック回復
ろぐせんこうかきこみとろーるふぉわーどろーるばっくかいふく / Write-Ahead Logging (WAL), Rollforward & Rollback Recovery
データページをディスクへ書き出す前に必ずログ(REDO/UNDO情報)を不揮発性ストレージへ先行書き出しし、障害時にコミット済みの再現(ロールフォワード)と未コミットの取消(ロールバック)を行う障害回復機構。
3行速習ポイント
- システム障害(メモリ消失)時は、最後のチェックポイントからREDOログで前進回復(ロールフォワード)し、障害発生時に未完了だったトランザクションをUNDOログで後退回復(ロールバック)する
- 媒体障害(ディスク破損)時は、フルバックアップ(アーカイブ)を復元した上で、バックアップ取得時点以降のアーカイブREDOログを適用してロールフォワードする
- コミット時点でデータページ自体をディスクに書き出す必要はなく、ログバッファの内容さえログファイルへ同期書き出し(WAL)されれば永続性(Durability)が保証される
図解
図データベース障害回復の3ステップ
Restore
1. バックアップ復元(媒体障害時)
最新のフルバックアップからチェックポイント時点の状態を復元
↕
REDO
2. ロールフォワード(REDO:前進回復)
更新後ログ(After Image)を時系列順に適用しコミット済み更新を反映
↕
UNDO
3. ロールバック(UNDO:後退回復)
更新前ログ(Before Image)を逆順に適用し未コミット更新を取消
概要と本質
午前IIの障害回復問題および午後IIのバックアップ・リカバリ設計問題(令和6年午後II問1など)で必須となるRDBMSのコアアーキテクチャです。
重要ポイント・コア概念
- ロールフォワード(前進回復 / REDO):障害発生前にコミットが完了していたトランザクションの更新後イメージ(After Image)を適用し、最新状態を復元する
- ロールバック(後退回復 / UNDO):障害発生時に進行中(未コミット)だったトランザクションの更新前イメージ(Before Image)を適用し、更新を取り消す
- チェックポイント(Checkpoint):バッファプール上のダーティページ(更新済み未書出しページ)をディスクへ一括書き出しし、システム障害時のREDO開始位置を前進させて再開始時間を短縮する
午後I・午後II記述試験での攻略ポイント
午前IIでは「チェックポイント前にコミットしたT1、チェックポイント後にコミットしたT2、障害時に未コミットのT3に対して、再開始時にUNDO/REDOのどれを行うか」が定番問題です。また午後IIでは、異常終了後の再開始時間やロールフォワード時のページ読込み・書込み回数の見積りが出題されます。
午後記述で使える加点キーワード(クリックでコピー)
この用語が出題された過去問を解く(1分演習)
即時アウトプットで定着データベーススペシャリスト 過去問演習で実践力を鍛える