平成23年度 春期 データベーススペシャリスト試験 午前II 問13
【問題13】
DBMSをシステム障害発生後に再立ち上げする際、前進復帰(ロールフォワード)すべきトランザクションと後退復帰(ロールバック)すべきトランザクションの組合せとして、適切なものはどれか。ここで、トランザクションの中で実行される処理内容は次のとおりとする。
【解説】
障害復旧の際に適用される「ロールフォワード」と「ロールバック」の処理を整理します。
- 前進復帰(ロールフォワード)
チェックポイント以降でコミットが完了しているトランザクションについて、その変更内容を適用します。対象: T2, T5。
- 後退復帰(ロールバック)
障害発生時にコミットが完了していないトランザクションについて、その変更内容を取り消します。対象: T6。
トランザクションの状態:
- T1, T2: チェックポイント以前にコミット済み(T1は前進復帰不要、T2は前進復帰対象)
- T3, T4: チェックポイント以降に開始され、コミットされていない
- T5: チェックポイント以降に開始され、コミット済み(前進復帰対象)
- T6: 障害発生時点でコミットされていない(後退復帰対象)
選択肢の検討:
- ア: 前進復帰 = T2, T5 / 後退復帰 = T6 → 正しい
- イ: 前進復帰 = T2, T5 / 後退復帰 = T3, T6 → 誤り (T3はロールバック対象だが、選択肢文脈誤り)
- ウ: 前進復帰 = T1, T2, T5 / 後退復帰 = T6 → 誤り (T1は前進復帰不要)
- エ: 前進復帰 = T1, T2, T5 / 後退復帰 = T3, T6 → 誤り (T1は前進復帰不要)
【答え】
ア: 前進復帰 = T2, T5 / 後退復帰 = T6
出典:平成23年度 春期 データベーススペシャリスト試験 午前II 問13