平成28年度 春期 データベーススペシャリスト試験 午前Ⅱ 問16
テクノロジ/データベースWAL(Write Ahead Log)プロトコルの目的に関する説明のうち,適切なものはどれか。
出典:平成28年度 春期 データベーススペシャリスト試験 午前Ⅱ 問16
- ア実行中のトランザクションを一時停止させることなく,チェックポイント処理を可能にする。
- イデッドロック状態になっているトランザクションの検出を可能にする。
- ウ何らかの理由でDBMSが停止しても,コミット済みであるがデータベースに書き込まれていない更新データの回復を可能にする。
- エログを格納する記録媒体に障害が発生しても,データベースのデータ更新を可能にする。
正解:ウ
解説
WAL(Write Ahead Log)プロトコルは,データベースのページを更新する前に,必ずその更新内容をログとして先に(ログ先出しで)記録しておくという規則です。これにより,コミット済みだがまだデータベース本体には反映されていない更新内容についても,ログに記録された更新後情報をもとにロールフォワードして復旧させることができます。
選択肢ごとの解説
- ア誤り。実行中のトランザクションを止めずにチェックポイントを取得できるようにするのは,ファジーチェックポイントなどの技法の目的であり,WALプロトコル自体の目的ではありません。
- イ誤り。デッドロック状態の検出は待ちグラフなどの仕組みで行われるものであり,ログの書込み順序を規定するWALプロトコルの目的ではありません。
- ウ正しい。WALプロトコルにより,更新内容が必ずログに先に記録されているため,DBMSが停止しても,コミット済みだがデータベースにまだ反映されていない更新データをログから復旧(ロールフォワード)できます。
- エ誤り。WALプロトコルはログの書込みとデータベースの更新の順序を規定するものであり,ログを格納する記録媒体自体の障害に備えるものではありません。ログ媒体の障害対策には,ログの二重化など別の手段が必要です。