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 |
答え ア
【解説】
各トランザクションについて考える。
- T1
チェックポイントの前にコミットしているので、復帰処理は不要。
- T2
チェックポイントと障害発生の間でコミットしているので前進復帰が必要。
- T3
障害発生時点で処理が完了していないが、T3の処理はReadのみなので復帰処理は不要。
- T4
障害発生時点で処理が完了していないが、T4の処理はReadのみなので復帰処理は不要。
- T5
チェックポイントと障害発生の間でコミットしているので前進復帰が必要。
- T6
障害発生時点で処理が完了していないので後退復帰が必要。
したがって、 前進復帰はT2とT5、後退復帰はT6(ア)である。
【キーワード】
・データベースの復旧
【キーワードの解説】
- データベースの復旧
データベースに障害が発生した場合、障害発生直前のチェックポイント時点まではデータを戻すことができる。
チェックポイントから障害発生まででコミットまで行ったトランザクションは、障害発生時には処理が完了しているので、データベースの更新ログを用いて前進復帰する。
また、障害発生時点で処理中のトランザクションは、データベースの更新ログを用いて後退復帰する。
もっと、「データベースの復旧」について調べてみよう。
戻る
一覧へ
次へ
|