令和3年度 高度共通 午前I(PM試験) 問9
データベースの障害回復処理に関する記述として,適切なものはどれか。
- ア 異なるトランザクション処理プログラムが,同一データベースを同時更新することによって生じる論理的な矛盾を防ぐために,データのブロック化が必要となる。
- イ システムが媒体障害以外のハードウェア障害によって停止した場合,チェックポイントの取得以前に終了したトランザクションについての回復作業は不要である。
- ウ データベースの媒体障害に対して,バックアップファイルをリストアした後,ログファイルの更新前情報を使用してデータの回復処理を行う。
- エ トランザクション処理プログラムがデータベースの更新中に異常終了した場合には,ログファイルの更新後情報を使用してデータの回復処理を行う。
解答・解説を見る
正解:イ
AI解説
チェックポイントとは、その時点のメモリ上の更新内容をデータベースファイルに書き出して確定させる処理である。チェックポイント取得以前にコミット(正常終了)したトランザクションの結果はすでにディスクに反映済みなので、システム障害からの再起動時に回復作業(ロールフォワード)は不要である。よってイが正しい。 ア: 同時更新による矛盾を防ぐのは排他制御(ロック)であり、「データのブロック化」という対策は誤りである。障害回復ではなく同時実行制御の話でもある。 イ: 正しい。チェックポイント以前に終了したトランザクションは反映済みのため回復不要。回復が必要なのはチェックポイント以降にコミットしたもの(更新後情報でロールフォワード)である。 ウ: 媒体障害の回復は、バックアップをリストアした後、ログの「更新後情報」でロールフォワードする。「更新前情報」とする点が誤りである。 エ: トランザクションの異常終了時は、ログの「更新前情報」を使って更新をなかったことにするロールバックを行う。「更新後情報」とする点が誤りである。 💡 「媒体障害=バックアップ+更新後情報でロールフォワード」「異常終了=更新前情報でロールバック」の対応を確実に覚える。選択肢の前情報・後情報の入替えが定番のひっかけである。
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。