令和4年度 秋期 プロジェクトマネージャ試験 データベーススペシャリスト試験 エンベデッドシステムスペシャリスト試験 システム監査技術者試験 情報処理安全確保支援士試験 午前 I 問題 【共通】 問9

チェックポイントを取得するDBMSにおいて,図のような時間経過でシステム障害が発生した。前進復帰(ロールフォワード)によって障害回復できるトランザクションだけを全て挙げたものはどれか。

チェックポイントとシステム障害発生のタイミングを示すトランザクションの時系列図
図の説明テキスト

DBMSのチェックポイントとシステム障害発生のタイミングを示すトランザクションの時系列図。
横軸は右方向へ「時間」が進む。
2本の垂直な破線があり、左側が「チェックポイント」、右側が「システム障害発生」を表す。
各トランザクション(T1〜T5)の実行期間が実線と矢印で示され、継続中の場合は右側が破線の矢印になっている。

  • T1: チェックポイント前に開始し、チェックポイント前にコミット。
  • T2: チェックポイント前に開始し、システム障害発生時点でも実行中(右側に破線矢印)。
  • T3: チェックポイント後に開始し、システム障害発生時点でも実行中(右側に破線矢印)。
  • T4: チェックポイント前に開始し、チェックポイント後かつシステム障害発生前にコミット。
  • T5: チェックポイント後に開始し、システム障害発生前にコミット。
解答・解説

正解: ウ. T4とT5

障害回復手法とは

ロールフォワード(前進復帰)は、システム障害が発生した際、更新履歴(ジャーナル)を用いて、コミット済みのトランザクションによる更新内容を再現し、障害直前の状態までデータベースを回復する手法です。
ロールバック(後退復帰)は、障害発生時に実行中だったトランザクションの更新内容を取り消し、処理開始前の状態に戻す手法です。
チェックポイントは、メモリ上のデータをディスクに書き出して同期をとる時点であり、これ以前にコミットされた処理はディスクへの反映が保証されます。

正解の根拠

タイムライン図が示す各トランザクションの状況を整理します。

  • T1: チェックポイントより前に「開始」し、「コミット」完了。
  • T2: チェックポイントより前に「開始」し、システム障害発生時も実行中。
  • T3: チェックポイントより後に「開始」し、システム障害発生時も実行中。
  • T4: チェックポイントより前に「開始」し、システム障害発生より前に「コミット」完了。
  • T5: チェックポイントより後に「開始」し、システム障害発生より前に「コミット」完了。

ロールフォワード(前進復帰)の対象となるのは、システム障害の発生より前に「コミット」が完了しており、かつチェックポイント以降にコミットされたトランザクションです。

障害発生より前にコミットが完了しているのは T1、T4、T5 です。このうち T1 はチェックポイントより前にコミットが完了しており、すでに更新内容がディスクへ書き出されているため回復処理は不要です。
したがって、コミットが完了しておりロールフォワードによって回復させる必要があるのは、T4 と T5 です。

各選択肢の解説

  • ア: T1 はチェックポイントより前にコミットが完了しており、更新内容はディスクに反映済みであるため、ロールフォワードの対象ではありません。
  • イ: T2 と T3 はシステム障害発生時も実行中であり、コミットされていません。これらは処理を取り消すロールバックの対象となります。
  • ウ: 正解です。T4 と T5 はシステム障害発生より前にコミットが完了しており、ロールフォワードの対象となります。
  • エ: T5 はロールフォワードの対象ですが、同様に対象となる T4 が含まれていないため誤りです。

Spineチーム