令和6年度春期 応用情報技術者試験 午前 問27
トランザクションTはチェックポイント後にコミットしたが,その後にシステム障害が発生した。トランザクションTの更新内容をその終了直後の状態にするために用いられる復旧技法はどれか。ここで,トランザクションはWALプロトコルに従い,チェックポイントの他に,トランザクションログを利用する。
- ア 2相ロック
- イ シャドウページ
- ウ ロールバック
- エ ロールフォワード
解答・解説を見る
正解:エ
AI解説
WALプロトコル(Write Ahead Log:更新前にログへ先行して書き込む方式)のもとでチェックポイント後にコミットしたトランザクションがシステム障害で失われた場合、そのトランザクションの更新内容はトランザクションログに記録されている。このログを使ってチェックポイント以降のコミット済みの更新処理を再実行し、障害発生直前の(コミット直後の)最新状態まで復旧する手法がロールフォワード(再実行、REDO)である。 ア: 2相ロックは複数トランザクションの同時実行を制御する排他制御(ロック管理)方式であり、障害発生後にデータを復旧するための技法ではない。 イ: シャドウページ方式は更新前後のページを別々に保持し切り替えることで障害回復を行う技法であり、WALプロトコルを用いる本問の前提(ログベースの回復)とは異なる方式である。 ウ: ロールバックは、未コミットのトランザクションの更新内容を取り消して障害前の状態に戻す技法であり、本問のようにコミット済みのトランザクションの内容を復元する場合には用いない。 エ: 正しい。ロールフォワードは、ログを用いてチェックポイント以降のコミット済みの更新を再実行し、トランザクションの終了直後の状態まで復旧する技法である。 💡 コミット「済み」のトランザクションを障害から復旧するのはロールフォワード(REDO)、コミット「前」の未確定な更新を取り消すのはロールバックという対比で覚える。「コミット済みか未コミットか」を必ず確認してから技法を選ぶこと。
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。