令和6年度 春期 応用情報技術者試験 午前 問27

トランザクション TT はチェックポイント後にコミットしたが,その後にシステム障害が発生した。トランザクション TT の更新内容をその終了直後の状態にするために用いられる復旧技法はどれか。ここで,トランザクションは WAL プロトコルに従い,チェックポイントの他に,トランザクションログを利用する。

解答・解説

正解: エ. ロールフォワード

データベースの障害復旧において、障害発生時に コミット済み のトランザクションは、トランザクションログ(更新履歴)を用いて障害発生直前の状態まで処理を再現します。この復旧技法を ロールフォワード (前進復帰)と呼びます。

設問では「トランザクション TT はチェックポイント後に コミットした が,その後にシステム障害が発生した」とあるため、トランザクション TT の更新内容をデータベースに反映させるためには、ログファイルに記録された更新後ログを用いて ロールフォワード を行います。したがって正解は「エ」です。

各選択肢の解説

  • ア 2相ロック
    データベースの 同時実行制御 において、複数のトランザクションが直列可能性を保証するためのロック方式です。障害復旧の技法ではありません。
  • イ シャドウページ
    データの更新時に元のページ(シャドウページ)を残しておき、更新用の新しいページを作成して書き込む方式です。障害発生時には更新用ページを破棄しシャドウページを参照することで復旧を行う技法ですが、設問のような「ログを用いたコミット後の復旧」を指すものではありません。
  • ウ ロールバック
    障害発生時に 未コミット のトランザクションに対して行われる復旧技法(後退復帰)です。更新前ログを用いて、トランザクション開始前の状態に戻します。
  • エ ロールフォワード
    正解です。障害発生時に コミット済み のトランザクションに対して行われる復旧技法(前進復帰)です。更新後ログを用いて、障害発生直前の状態までデータベースを復旧させます。

Spineチーム