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 は障害発生時点でコミットされていないため、ロールバックすべきである。
EXCEL VBAのご相談なら ファーストマクロ へ
タグ:トランザクション