応用情報技術者 2022年 秋期 午前2 問29
問題文
チェックポイントを取得する DBMS において、図のような時間経過でシステム障害が発生した。前進復帰 (ロールフォワード) によって障害回復できるトランザクションだけを全て挙げたものはどれか。

選択肢
ア:T1
イ:T2とT3
ウ:T4とT5(正解)
エ:T5
チェックポイント取得DBMSの前進復帰に関する問題【午前2 解説】
要点まとめ
- 結論:前進復帰で回復可能なトランザクションは「コミット済みかつチェックポイント以降に開始したもの」であるため、正解はウのT4とT5です。
- 根拠:チェックポイント以降に開始しコミット済みのトランザクションはログに完全に記録されており、前進復帰で再実行可能です。
- 差がつくポイント:チェックポイントの位置とトランザクションの開始・コミット時点の関係を正確に理解し、前進復帰の対象範囲を見極めることが重要です。
正解の理由
前進復帰(ロールフォワード)は、障害発生時点のデータベース状態に対し、チェックポイント以降のログを用いてコミット済みトランザクションの処理を再実行し、整合性を回復します。
- T4はチェックポイント後に開始し、コミットも障害発生前に完了しているため、前進復帰で回復可能です。
- T5もチェックポイント後に開始し、障害発生前にコミット済みなので同様に回復可能です。
- 他のトランザクションはチェックポイント前に開始・コミット済み(T1)、チェックポイント後に開始したがコミット前(T2)、障害発生後に開始(T3)などであり、前進復帰の対象外です。
よくある誤解
チェックポイント前に開始・コミット済みのトランザクションも前進復帰で回復できると誤解しがちです。実際はチェックポイント以前のトランザクションはすでにディスクに反映済みで、前進復帰の対象外です。
解法ステップ
- チェックポイントの位置を確認し、トランザクションの開始時点がチェックポイントの前か後かを判別する。
- 障害発生時点を確認し、トランザクションがコミット済みかどうかを判断する。
- 前進復帰は「チェックポイント以降に開始し、障害発生前にコミット済み」のトランザクションに適用されることを理解する。
- 各トランザクションの開始・コミット時点を照合し、該当するものを選択する。
選択肢別の誤答解説
- ア(T1):チェックポイントより前に開始・コミット済みであり、前進復帰の対象外です。
- イ(T2とT3):T2はチェックポイント後に開始したがコミットしていないため回復不可。T3は障害発生後に開始しており、ログも不完全で回復不可です。
- ウ(T4とT5):チェックポイント後に開始し、障害発生前にコミット済みで前進復帰可能です。
- エ(T5のみ):T4も条件を満たしているため、T5だけでは不十分です。
補足コラム
チェックポイントとは、DBMSがディスク上のデータとログの整合性を保つために、一定時点の状態を保存する仕組みです。これにより障害時の復旧作業が効率化されます。前進復帰はチェックポイント以降のログを用いてトランザクションの処理を再実行し、データベースの一貫性を回復します。
FAQ
Q: チェックポイント以前に開始したトランザクションは前進復帰で回復できますか?
A: いいえ。チェックポイント以前のトランザクションはすでにディスクに反映済みで、前進復帰の対象外です。
A: いいえ。チェックポイント以前のトランザクションはすでにディスクに反映済みで、前進復帰の対象外です。
Q: コミットしていないトランザクションはどうなりますか?
A: コミットしていないトランザクションはロールバックされ、前進復帰では回復されません。
A: コミットしていないトランザクションはロールバックされ、前進復帰では回復されません。
関連キーワード: チェックポイント、前進復帰、ロールフォワード、トランザクション管理、障害回復

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

