応用情報技術者試験 応用情報技術者試験 平成28年度秋期 午前 問30: DBMS をシステム障害発生後に再立上げするとき,ロールフォワードすべきトランザクションとロールバックすべきトランザクションの組合せとして,適切なものはどれか。
DBMS をシステム障害発生後に再立上げするとき,すべきとすべきトランザクションの組合せとして,適切なものはどれか。ここで,トランザクションの中で実行される処理内容は次のとおりとする。
| トランザクション | データベースに対する Read 回数 と Write 回数 |
|---|
| T1,T2 | Read 10,Write 20 |
| T3,T4 | Read 100 |
| T5,T6 | Read 20,Write 10 |
図に示すとおり,T1 はチェックポイント前にコミット済み,T2 はチェックポイント後・障害発生前にコミット済み,T3 はチェックポイント前から障害発生時まで実行中(未コミット),T4 はチェックポイント後から障害発生時まで実行中(未コミット),T5 はチェックポイント後・障害発生前にコミット済み,T6 はチェックポイント後から障害発生時まで実行中(未コミット)。
| ロールフォワード | ロールバック |
|---|
| ア | T2,T5 | T6 |
| イ | T2,T5 | T3,T6 |
| ウ | T1,T2,T5 | T6 |
| エ | T1,T2,T5 | T3,T6 |
49.43%
問題本文
DBMS をシステム障害発生後に再立上げするとき,ロールフォワードすべきトランザクションとロールバックすべきトランザクションの組合せとして,適切なものはどれか。ここで,トランザクションの中で実行される処理内容は次のとおりとする。 図に示すとおり,T1 はチェックポイント前にコミット済み,T2 はチェックポイント後・障害発生前にコミット済み,T3 はチェックポイント前から障害発生時まで実行中(未コミット),T4 はチェックポイント後から障害発生時まで実行中(未コミット),T5 はチェックポイント後・障害発生前にコミット済み,T6 はチェックポイント後から障害発生時まで実行中(未コミット)。
選択肢
- ア.ロールフォワード: T2,T5 ロールバック: T6
- イ.ロールフォワード: T2,T5 ロールバック: T3,T6
- ウ.ロールフォワード: T1,T2,T5 ロールバック: T6
- エ.ロールフォワード: T1,T2,T5 ロールバック: T3,T6
正解
ア. ロールフォワード: T2,T5 ロールバック: T6
解説
DBMS再立上げ時の障害回復は「コミット済みか」「チェックポイントを経過したか」「そもそも更新(Write)したか」で判定する。チェックポイント時に主記憶上のデータが補助記憶へ書き出されるため、コミット済でもチェックポイント後に障害が起きたものはディスク未反映として消失し、更新後ログでコミット時点まで再現する“ロールフォワード”が必要になる。一方、未コミットのまま障害発生したものはチェックポイントで部分反映された更新を更新前ログで取り消す“ロールバック”が必要だが、Writeが一度もない読取り専用トランザクションはDBを変更しないためどちらの操作も不要である。この問題ではT3・T4が “Read 100” のみで更新しないため対象外となり、ロールフォワード=T2・T5、ロールバック=T6 の組合せ(ア)が適切となる。
選択肢ごとの解説
- ア.T2・T5はチェックポイント後にコミット済みで更新(Write)を伴うためディスク未反映分をロールフォワードで再現し、T6は更新ありの未コミットなのでロールバックで取り消す。読取り専用のT3・T4を含まないこの組合せが正しい。
- イ.ロールフォワード対象(T2・T5)は正しいが、T3は “Read 100” のみで一度もWriteしていない読取り専用トランザクションであり、DBを変更しないためロールバック不要。T3を含む点で誤り。
- ウ.T1はチェックポイント前にコミット済みで、その更新は既に補助記憶へ書き出され反映されているため復旧操作は不要。ロールフォワードにT1を含めている点で誤り。
- エ.T1は反映済みでロールフォワード不要、T3は読取り専用でロールバック不要という二つの誤りを含み、不適切である。
応用情報技術者試験 平成28年度秋期 午前 の過去問一覧へ戻る・問30