平成25年度 春期 データベーススペシャリスト試験 午前Ⅱ 問18
テクノロジ/データベースWAL(Write Ahead Log)プロトコルの目的に関する説明のうち,適切なものはどれか。
出典:平成25年度 春期 データベーススペシャリスト試験 午前Ⅱ 問18
- ア実行中のトランザクションを一時停止させることなく,チェックポイント処理を可能にする。
- イデッドロック状態になっているトランザクションの検出を可能にする。
- ウ何らかの理由でDBMSが停止しても,コミット済みであるがデータベースに書き込まれていない更新データの回復を可能にする。
- エログを格納する記録媒体に障害が発生しても,データベースのデータ更新を可能にする。
正解:ウ
解説
WAL(Write Ahead Log,先行書込みログ)プロトコルとは,データベースの更新内容をデータベース本体に反映する前に,必ずその更新内容をログ(ログファイル)へ書き出しておくという規約である。これによって,コミット済みであるにもかかわらず,何らかの理由(電源断やソフトウェア異常など)でDBMSが停止し,まだデータベース本体には反映されていなかった更新データについても,ログに記録された情報を使って再実行(ロールフォワード)し,正しく回復させることができる。
選択肢ごとの解説
- ア誤り。実行中のトランザクションを一時停止させずにチェックポイント処理を行うことは,チェックポイント処理方式(ファジーチェックポイントなど)に関する工夫であり,WALプロトコルそのものの目的ではない。
- イ誤り。デッドロック状態の検出は,待ちグラフなどを用いた同時実行制御の仕組みによって行われるものであり,ログの書込み順序を規定するWALプロトコルとは直接関係がない。
- ウ正しい。WALプロトコルにより,更新内容は必ずログへ先に書き出されるため,コミット済みでありながらデータベース本体にはまだ反映されていなかった更新データを,DBMS再起動後にログを使って回復できる。
- エ誤り。ログを格納する記録媒体自体に障害が発生した場合には,WALプロトコルによってもその記録媒体上のログを使ったデータ更新・回復はできない。ログ媒体の障害対策には,別途,二重化などの対策が必要である。