平成20年 秋期 ソフトウェア開発技術者 午前 問67

チェックポイントを取得するDBMSにおいて、図のような経過時間でシステム障害が発生し、前進復帰によって障害回復を行った。
前進復帰後のa、bの値は幾つか。
ここで、Tn     は長方形の左右両端がそれぞれトランザクションの開始と終了を表し、終了時にCOMMITを行う。
また、長方形内の記述は処理内容を表す。
T1開始前のa、bの初期値は0とする。

a b
1 0
1 2
4 2
4 6


答え ウ


解説
障害の回復はまず、チェックポイントの状態に戻します。チェックポイントが行われたときはT1は終了してCOMMITし、T2は処理の途中なので、このときの状態はa=1、b=0です。
この後、ログ(ジャーナル)データを使い障害発生直前の状態に戻します。このとき、ログに残っているトランザクションは処理が終了しCOMMITしたものなので、T2とT3になり、a=4、b=2(ウ)になる。

なお、障害時に処理中だったトランザクションT4はロールフォワード終了後に最初からやり直す。


キーワード
・前進復帰

キーワードの解説
  • 前進復帰(ロールフォワード、roll forward)
    データベースに障害が発生したとき、直近のバックアップデータ(チェックポイントのデータ)を戻し、その後、ログファイルのバックアップ後の処理を再現し、障害直前の状態に回復することです。
    記憶装置(ハードディスク)の障害(損傷)などのときに行われる。

もっと、「ロールフォワード」について調べてみよう。

戻る 一覧へ 次へ