平成24年度 春期 午前 問31
データベース
障害回復に関する問題
DBMS の媒体障害時の回復法はどれか。
- ア障害発生時,異常終了したトランザクションをロールバックする。
- イ障害発生時点でコミットしていたが,データベースの実更新がされていないトランザクションをロールフォワードする。
- ウ障害発生時点で,まだコミットもアボートもしていなかった全てのトランザクションをロールバックする。
- エバックアップコピーでデータベースを復元し,バックアップ取得以降にコミットした全てのトランザクションをロールフォワードする。
答えと解説を見る
✓ これが正解エバックアップコピーでデータベースを復元し,バックアップ取得以降にコミットした全てのトランザクションをロールフォワードする。
解説
媒体が壊れた以上、複製から作り直す道しかありません。
障害回復の設問は、障害の種類を先に決めてから手当てを選ぶと迷いません。見分けの軸は、壊れたのが媒体そのものなのか、それとも媒体は無事で記録が残っているのか、という一点です。媒体障害とは、データベースを置いているディスクそのものが壊れたことを指します。その上にあったデータ本体は読み出せませんので、ディスク上のデータをそのまま手直しするという道は初めから使えません。残るのは、別に取ってあった複製と、別の媒体に残してある更新の記録から作り直す道だけです。したがって、まず複製で元の姿へ戻し、その複製を取った時点よりも後にコミットが済んでいた更新を、更新後の値の記録から反映し直します。この反映し直す向きの操作をロールフォワードといいます。コミットした更新は利用者に対して約束した結果ですから、媒体が入れ替わっても必ずやり直します。逆に、まだ約束していない更新は無かったことにする側へ回ります。障害の種類と手当ては一対一で結び付けて覚えてください。
ほかの選択肢はなぜ違うのか
- ア障害発生時,異常終了したトランザクション…:異常終了した処理の分だけを取り消すというのは、一本のトランザクションがしくじったときの手当てです。ほかは無事だという前提に立っていますので、ディスクが読めなくなった場面には届きません。
- イ障害発生時点でコミットしていたが,データ…:コミットは済んでいたのに実際の更新が間に合わなかった分を進めるというのは、停電などで DBMS が落ちたときの手当ての片側です。ディスク上のデータベースが残っていることを当てにしており、媒体そのものが失われた場面では成り立ちません。
- ウ障害発生時点で,まだコミットもアボートも…:コミットもアボートもしていなかった分を全て取り消すというのは、同じく DBMS が落ちたときの手当てのもう片側です。これもディスク上のデータベースが残っていることが前提ですから、ディスクが壊れた場面の答えにはなりません。
この問題の用語
- DBMSデータベースを管理するソフト。複数の処理が同じデータを同時に更新しても矛盾しないよう、排他制御などを行います。
- トランザクションデータベースへの一連の処理をひとまとめにした単位のこと。途中で失敗すると開始前の状態へ戻され、中途半端な更新が残りません。
- データベースたくさんのデータを決まった形で貯め、探したり書き換えたりできるようにした仕組み。多くの人が同時に使うことを前提にしています。
- バックアップ失っても元に戻せるよう、データの複製を別に取っておくこと。取るだけでなく、戻せるかを確かめておくのが要点です。
出典:平成24年度 春期 応用情報技術者試験 午前 問31
同じ用語が出る問題
- 令和7年度 秋期 午前 問29:多版同時実行制御に関する問題(トランザクション)
- 令和6年度 秋期 午前 問31:チェックポイントに関する記述(DBMS)
- 令和6年度 秋期 午前 問27:ロールバックに関する問題(トランザクション)
- 令和6年度 春期 午前 問25:ストアドプロシージャの利点(DBMS)
- 令和5年度 秋期 午前 問30:ロールフォワードに関する問題(DBMS)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)