令和7年度 秋期 データベーススペシャリスト試験 午前II 問12
テクノロジデータベース障害回復・バックアップ
DBMSをシステム障害発生後に再立上げするとき,ロールフォワードすべきトランザクションとロールバックすべきトランザクションの組合せとして,適切なものはどれか。ここで,トランザクションの中で実行される処理内容は次のとおりとする。

図の説明テキスト
トランザクションの処理内容を示す表。
| トランザクション | データベースに対する Read 回数 と Write 回数 |
|---|---|
| T1, T2 | Read 10, Write 20 |
| T3, T4 | Read 100 |
| T5, T6 | Read 20, Write 10 |

図の説明テキスト
横軸を時間としたトランザクション(T1〜T6)の実行タイミングと状態を示す図。途中に「チェックポイント」の縦枠、その右側に「障害発生」の縦線が引かれている。
- T1: チェックポイント前に開始し、チェックポイント前に終了(黒丸)
- T2: チェックポイント前に開始し、チェックポイントと障害発生の間に終了(黒丸)
- T3: チェックポイント後に開始し、障害発生まで終了していない(黒丸なし)
- T4: チェックポイント前に開始し、障害発生まで終了していない(黒丸なし)
- T5: チェックポイント後に開始し、障害発生前に終了(黒丸)
- T6: チェックポイント後に開始し、障害発生まで終了していない(黒丸なし)
【凡例】
- 直線のみ: はコミットされていないトランザクションを示す。
- 直線の終端に黒丸: はコミットされたトランザクションを示す。
解答・解説
正解: ア. ロールフォワード: T2, T5 / ロールバック: T6
DBMSにおけるシステム障害からの回復手順では、障害発生時点でのトランザクションの進行状況によって、ロールフォワード(前進復帰)とロールバック(後退復帰)を使い分けます。
ロールフォワードの対象
障害発生前にコミット(処理完了)しているトランザクションが対象です。ログファイルの更新後ログを用いて、トランザクションの結果をデータベースに反映させます。今回のケースでは、T2とT5が障害発生前にコミットされているため、ロールフォワードの対象となります。ロールバックの対象
障害発生時に実行中(未コミット)であったトランザクションが対象です。ログファイルの更新前ログを用いて、トランザクション開始前の状態に戻します。今回のケースでは、T6が障害発生時に実行中であるため、ロールバックの対象となります。
※ 障害発生前にアボート(異常終了)したトランザクションや、チェックポイント前に完了してデータベースへの書き出しが済んでいるトランザクション(T1)、障害発生時に未コミットでも Read だけで Write(更新)をしていないトランザクション(T3、T4)は、回復処理の対象外となります。