平成25年度 春期 データベーススペシャリスト試験 午前Ⅱ 問14
テクノロジ/データベースデータベースの障害回復処理に関する記述のうち,適切なものはどれか。
出典:平成25年度 春期 データベーススペシャリスト試験 午前Ⅱ 問14
- ア異なるトランザクション処理プログラムが,同一データベースを同時更新することによって生じる論理的な矛盾を防ぐために,データのブロック化が必要となる。
- イシステムが媒体障害以外の原因によって停止した場合,チェックポイントの取得以前に終了したトランザクションについての回復作業は不要である。
- ウデータベースの媒体障害に対して,バックアップファイルをリストアした後,ログファイルの更新前情報を使用してデータの回復処理を行う。
- エトランザクション処理プログラムがデータベースの更新中に異常終了した場合には,ログファイルの更新後情報を使用してデータの回復処理を行う。
正解:イ
解説
DBMSは,一定の間隔でチェックポイントを取得し,その時点までにデータベースバッファ上にある更新済みデータをデータベース(ディスク)に書き出す。システムが媒体障害以外の原因(電源断やソフトウェア異常など)で停止した場合,直前のチェックポイント取得以前に既にコミットして完了していたトランザクションについては,その更新内容が既にデータベースに反映されていることが保証されるため,改めて回復作業(ロールフォワードなど)を行う必要はない。回復作業が必要になるのは,チェックポイント以降にコミットした,あるいは実行途中であったトランザクションだけである。
選択肢ごとの解説
- ア誤り。同一データベースへの同時更新によって生じる論理的な矛盾を防ぐのは,ロック(排他制御)による同時実行制御の役割であり,“データのブロック化”という一般的な障害回復・排他制御の手法は存在しない。
- イ正しい。チェックポイントの取得時点までに既にコミットして完了していたトランザクションの更新内容は,チェックポイント処理によって既にデータベースに反映されているため,その後システムが媒体障害以外の原因で停止しても,これらのトランザクションについて改めて回復作業を行う必要はない。
- ウ誤り。データベースの媒体障害からの回復では,バックアップファイルをリストアした後,ログファイルの更新後情報(アフターイメージ)を用いてロールフォワード(再実行)することでデータを最新の状態に戻す。更新前情報を用いるのは誤りである。
- エ誤り。トランザクション処理プログラムが更新途中で異常終了した場合は,その未完了のトランザクションによる変更を取り消す(ロールバックする)必要があり,そのためにはログファイルの更新前情報(ビフォアイメージ)を使用する。更新後情報を用いるのは誤りである。