SC情報処理安全確保支援士試験 午前Ⅰ

令和3年度秋期 情報処理安全確保支援士 午前Ⅰ 問9

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

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

選択肢

  1. ア
    異なるトランザクション処理プログラムが、 同一データベースを同時更新することによって生じる論理的な矛盾を防ぐために、 データのブロック化が必要となる。
  2. イ
    システムが媒体障害以外のハードウェア障害によって停止した場合、 チェックポイントの取得以前に終了したトランザクションについての回復作業は不要である。
  3. ウ
    データベースの媒体障害に対して、 バックアップファイルをリストアした後、 ログファイルの更新前情報を使用してデータの回復処理を行う。
  4. エ
    トランザクション処理プログラムがデータベースの更新中に異常終了した場合には、 ログファイルの更新後情報を使用してデータの回復処理を行う。
解き方のヒントを見る

チェックポイント前の完了トランザクションは回復対象になる?

チェックポイントより前にちゃんと終わっているトランザクションは、もう帳簿に書き込み済みの売上みたいなものだよ。だから、普通のシステム再起動時の回復では「もう反映されている」と考えて、やり直し対象にはしないんだ。

この問題で問われていること

この問題では、ディスクなどが壊れたときの媒体障害回復と、システムが落ちたときのシステム障害回復を区別できるかがポイントだよ。さらに、更新前情報は「元に戻すためのメモ」、更新後情報は「やり直して反映するためのメモ」として、それぞれの役割を押さえよう。

Checkpoint-based Recovery

transactions committed before checkpoint usually need no redo after restart

before checkpoint + committed -> no recovery action

確認ポイント

  • 媒体障害時はバックアップからの回復が必要です。
  • 更新前情報は undo、更新後情報は redo に使う。
  • チェックポイント以前の完了トランザクションを除外する。
正解と解説を見る

正解

イ

出典

問題文と解答は IPA 公開の過去問題冊子・解答例を基にしています。

選択肢ア

これは間違いだよ。同じデータを複数の処理が同時に更新して矛盾するのを防ぐには、「ロック」などの排他制御が必要だよ。銀行の窓口で同じ口座を二人の担当者が同時に書き換えないように、片方が作業中は札を立てて待ってもらう感じだね。「データのブロック化」はデータをまとめて扱うための工夫で、同時更新の矛盾を防ぐ主役ではないよ。

選択肢イ(正解)

これは正解だよ。チェックポイントは、作業状態をいったんきれいに記録する区切りのようなもの。チェックポイントより前に完了していたトランザクションは、もうデータベースに反映済みと考えられるから、障害後に改めて回復作業をする必要はないんだ。ゲームでセーブ地点より前のクリア済みイベントを、もう一度やり直さなくていいのと似ているよ。

選択肢ウ

これは間違いだよ。媒体障害は、データベースを入れているディスクが壊れたような状態。まずバックアップを戻すのは合っているけど、その後はログの「更新後情報」を使って、バックアップ後に終わっていた更新をもう一度反映するんだ。お店の帳簿を古いコピーから復元したあと、レシートを見て売上を足し直すイメージだよ。「更新前情報」は途中で失敗した処理を取り消すときに使うものだよ。

選択肢エ

これは間違いだよ。更新中にプログラムが異常終了した場合は、中途半端な変更を取り消して元に戻す必要があるんだ。そのために使うのはログの「更新前情報」だよ。料理中に失敗したら、完成後の写真ではなく、作る前の状態を見て元に戻すイメージだね。「更新後情報」は、完了済みの処理を再反映するときに使うものだよ。

出典:独立行政法人 情報処理推進機構(IPA)令和3年度秋期 情報処理安全確保支援士試験 午前Ⅰ 問9(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針