DBMSをシステム障害発生後に再立上げするとき、ロールフォワードすべきトランザクションとロールバックすべきトランザクションの組合せとして、適切なものはどれか。ここで、トランザクションの中で実行される処理内容は次のとおりとする。
┌──────┬──────────────────┐
│ トランザクション │データベースに対するRead回数とWrite回数 │
├──────┼──────────────────┤
│ T1,T2 │ Read 10, Write 20 │
├──────┼──────────────────┤
│ T3,T4 │ Read 100 │
├──────┼──────────────────┤
│ T5,T6 │ Read 20, Write 10 │
└──────┴──────────────────┘
┌────────┬────────┐
│ロールフォワード│ロールバック │
┌─┼────────┼────────┤
│ア│T2、T5 │T6 │
├─┼────────┼────────┤
│イ│T2、T5 │T3、T6 │
├─┼────────┼────────┤
│ウ│T1、T2、T5│T6 │
├─┼────────┼────────┤
│エ│T1、T2、T5│T3、T6 │
└─┴────────┴────────┘
ア
ロールフォワードは、データベースに障害が発生したような場合に、チェックポイントまでのデータを再現し、トランザクションログを用いて、障害直前の状態に戻すことである。
ロールバックは、トランザクション処理の途中で障害が発生したような場合に、トランザクションログを用いてトランザクション開始時点の状態に戻すことである。
まず、T3, T4は read のみの処理であり、ロールフォワードもロールバックも不要である。
T1はチェックポイントの前に更新しているためこれも、復帰は不要である。
この段階で選択肢はアに絞られる。
T2,T5 は、チェックポイントの後に更新が終了しているため、ロールフォワードすべきである。
T6 は障害発生時点でコミットされていないため、ロールバックすべきである。
問29 | 目次 | 問31 |