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

データベースの障害回復処理に関する記述として,適切なものはどれか。

解答・解説

正解: イ. システムが媒体障害以外のハードウェア障害によって停止した場合,チェックポイントの取得以前に終了したトランザクションについての回復作業は不要である。

データベースの障害回復処理における重要な概念である チェックポイント、および障害の種類に応じた回復方法(ロールバックとロールフォワード)についての理解を問う問題です。

データベースシステムでは、障害発生時にデータを矛盾のない状態に復旧させるために、更新履歴を ログファイル に記録しています。また、一定間隔でメモリ上の更新データをディスク(データベース)に書き込む処理を行い、これを チェックポイント と呼びます。

システム障害(媒体障害以外のハードウェア障害やOSのダウンなど)が発生した場合、回復処理はログファイルとチェックポイントを用いて以下のように行われます。

  1. チェックポイント取得以前に終了(コミット)したトランザクション
    更新内容は既にディスク上のデータベースに書き込まれているため、回復作業は 不要 です。

  2. チェックポイント取得時点で実行中、またはそれ以降に開始して終了(コミット)したトランザクション
    更新内容がディスクに反映されていない可能性があるため、ログファイルの 更新後情報 を用いて ロールフォワード を行い、障害発生直前の状態まで進めます。

  3. 障害発生時点で実行中(未コミット)のトランザクション
    処理が中途半端な状態であるため、ログファイルの 更新前情報 を用いて ロールバック を行い、トランザクション開始前の状態に戻します。

したがって、チェックポイント取得以前に終了したトランザクションについての回復作業は不要であるとする イ の記述が適切です。

各選択肢の解説

  • ア: 誤りです。複数のトランザクションが同一データを同時更新する際に生じる論理的な矛盾を防ぐために必要なのは、「データのブロック化」ではなく 排他制御(ロックなど)です。
  • イ: 正解です。
  • ウ: 誤りです。ディスクの破損などの 媒体障害 に対しては、直近のバックアップファイルをリストア(復元)した後、バックアップ取得以降のログファイルの 更新後情報 を使用して ロールフォワード による回復処理を行います。更新前情報は使用しません。
  • エ: 誤りです。トランザクション処理プログラムが異常終了した場合(トランザクション障害)には、そのトランザクションの処理を取り消すため、ログファイルの 更新前情報 を使用して ロールバック による回復処理を行います。更新後情報は使用しません。

Spineチーム