平成27年 春期 データベーススペシャリスト 午前II 問14

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(ア)である。


キーワード
・データベースの復旧

キーワードの解説
  • データベースの復旧
    データベースに障害が発生した場合、障害発生直前のチェックポイント時点まではデータを戻すことができる。
    チェックポイントから障害発生まででコミットまで行ったトランザクションは、障害発生時には処理が完了しているので、データベースの更新ログを用いて前進復帰する。
    また、障害発生時点で処理中のトランザクションは、データベースの更新ログを用いて後退復帰する。

もっと、「データベースの復旧」について調べてみよう。

戻る 一覧へ 次へ