データベースの障害回復
出典: 令和3年度 秋期 応用情報技術者試験 午前 問27 (IPA)
データベースの障害回復処理に関する記述として,適切なものはどれか。
- ア 異なるトランザクション処理プログラムが,同一データベースを同時更新することによって生じる論理的な矛盾を防ぐために,データのブロック化が必要となる。
- イ システムが媒体障害以外のハードウェア障害によって停止した場合,チェックポイントの取得以前に終了したトランザクションについての回復作業は不要である。
- ウ データベースの媒体障害に対して,バックアップファイルをリストアした後,ログファイルの更新前情報を使用してデータの回復処理を行う。
- エ トランザクション処理プログラムがデータベースの更新中に異常終了した場合には,ログファイルの更新後情報を使用してデータの回復処理を行う。
正解と解説を見る
正解: イ
- ア: 同時更新による矛盾を防ぐのは、排他制御 (ロック) です。データのブロック化ではありません。
- イ: チェックポイントの時点で、それ以前に終了したトランザクションの更新はデータベースに書き込まれているので、回復作業は不要です。正しい記述です。
- ウ: 媒体障害では、バックアップを戻した後、ログの更新後情報で更新をやり直します (ロールフォワード)。更新前情報ではありません。
- エ: 更新中に異常終了したトランザクションは、ログの更新前情報で元に戻します (ロールバック)。更新後情報ではありません。
ポイント
- ロールフォワード: 媒体障害のとき、バックアップを戻してから、ログの 更新後情報 で更新をやり直します。
- ロールバック: 処理途中で異常終了したトランザクションは、ログの 更新前情報 で元に戻します。
- システム障害 (媒体障害以外) では、チェックポイントより前に終わったトランザクションは、データベースに書き込み済み なので回復作業は要りません。