チェックポイントを取得するDBMSにおいて,図のような時間経過でシステム障害が発生した。
前進復帰(ロールフォワード)によって障害回復できるトランザクションだけを全て挙げたものはどれか。
正答3
解説
正解は3です。
チェックポイント方式のDBMSで、システム障害の後に前進復帰(ロールフォワード)で回復できるトランザクションを選ぶ問題です。
図の所見は次のとおりです。
T1は、チェックポイントより前に開始してコミットしています。
T2は、チェックポイントより前に開始し、障害発生時点でもコミットしていません。
T3は、チェックポイントより後に開始し、障害発生時点でもコミットしていません。
T4は、チェックポイントより前に開始し、チェックポイントの後、障害の前にコミットしています。
T5は、チェックポイントより後に開始し、障害の前にコミットしています。
【選択肢別解説】
1:× T1の更新はチェックポイントの時点でデータベースに書き出されています。
回復処理は不要なので、ロールフォワードの対象ではありません。
2:× T2とT3は障害発生時点で未コミットです。
これらは更新を取り消す後退復帰(ロールバック)の対象です。
3:○ T4とT5は障害前にコミット済みですが、チェックポイント後の更新がデータベースに反映されていない可能性があります。
ログの更新後情報を使ってやり直すロールフォワードで回復できます。
4:× T5だけでなく、チェックポイントをまたいでコミットしたT4も、チェックポイント後の更新をやり直す必要があります。
【ポイント】
システム障害時は、チェックポイント後にコミットしたものをロールフォワード、未コミットのものをロールバックします。
チェックポイント前にコミット済みのものは回復処理が不要です。