トランザクション処理 (全65問中9問目)
No.9
データベースの障害回復処理に関する記述のうち,適切なものはどれか。
出典:令和3年秋期 問27
- 異なるトランザクション処理プログラムが,同一データベースを同時更新することによって生じる論理的な矛盾を防ぐために,データのブロック化が必要になる。
- システムが媒体障害以外のハードウェア障害によって停止した場合,チェックポイントの取得以前に終了したトランザクションについての回復作業は不要である。
- データベースの媒体障害に対して,バックアップファイルをリストアした後,ログファイルの更新前情報を使用してデータの回復処理を行う。
- トランザクション処理プログラムがデータベースの更新中に異常終了した場合には,ログファイルの更新後情報を使用してデータの回復処理を行う。
- [出題歴]
- 応用情報技術者 H21秋期 問32
分類
テクノロジ系 » データベース » トランザクション処理
正解
イ
解説
- 同時更新によるデータの不整合を防ぐためには、トランザクションの排他制御を行います。
- 正しい。DBMSは、ディスクに対する入出力効率を向上させるために、トランザクションの更新をメモリ上のバッファとログファイルに記憶しておき、一定の間隔ごとにまとめてディスクに反映させるという方式をとっています。このディスクと同期を取るタイミングをチェックポイントといいます。チェックポイントまでのトランザクションはディスクに反映済みなので、媒体障害以外の障害(システム障害やトランザクション障害)のときにはチェックポイント以前にコミットしたトランザクションについて回復作業は行う必要はありません。
- 媒体障害が発生したときには、バックアップファイルを用いてバックアップ時点の状態にした後に、更新後ログを使用してコミット済トランザクションをデータベースに適用するロールフォワードを行います。
- トランザクション障害が発生したときには、更新前ログを使用してデータベースをトランザクション以前の状態に戻すロールバックを行います。