WAL(ログ先書き)とは?だぶりゅーえーえる
WAL(ログ先書き)とは、データベースの更新をデータファイルへ反映する前に、必ずログを永続記憶へ書き出しておく約束事。コミット完了とみなす条件はログの永続化であり、これによってデータファイルへの反映が失われても、ログから障害直前の状態へ回復できることが保証される。
最終更新:2026-10-06
この語が出る過去問を解く →背景
更新のたびにデータページをディスクへ書き戻していては、ランダム書込みが多発して性能が出ない。そこで反映はまとめて後回しにしたいが、そのままでは電源断でコミット済みの更新が消える。ログは追記だけなので順次書込みで速く、これを先に確定させることで性能と耐久性を両立させたのがWALである。運用から見ると、ログ領域が溢れるとDBが停止するという急所も、この設計に由来する。
具体例
PostgreSQLやOracle Databaseでは、コミット時にログバッファを強制的にディスクへ書き出し(ログ強制書出し)、データページの書出しはチェックポイントまで遅らせる実装になっている。
試験での引っ掛け
目的は性能向上そのものではなく、障害回復の可能性の保証。コミット完了の条件は「ログが永続化された時点」であって、データファイルへの反映完了ではない。ログとデータファイルを同じ媒体に置くと保証が成り立たない点も注意。
関連用語
出た過去問
出典:平成29年度 秋期 ITサービスマネージャ試験 午前Ⅱ 問21(IPA)
WAL(Write Ahead Log)プロトコルの目的に関する記述のうち、適切なものはどれか。
正解:何らかの理由でDBMSが停止しても、“コミット済みであるがデータベースに書き込まれていない更新データ”の回復を可能にする。
要点:WALは更新反映より先にログを確定させ回復を保証する
WAL(ログ先行書出し)は、データベースへの実際の更新反映より先にログを確定させるという規則である。これにより、コミット済みだがデータファイルへ未反映の更新でも、ログを読み直して再現(ロールフォワード)でき、障害後に確実に回復できる。ログさえ残っていれば回復できる、という点が目的の核心である。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。