平成28年度 秋期 午前Ⅱ 問21
データベース
コミットに関する問題
システム障害発生時には,データベースの整合性を保ち,かつ,最新のデータベース状態に復旧する必要がある。このために,DBMSがトランザクションのコミット処理を完了とするタイミングとして,適切なものはどれか。
- アアプリケーションの更新命令完了時点
- イチェックポイント処理完了時点
- ウログバッファへのコミット情報書込み完了時点
- エログファイルへのコミット情報書込み完了時点
答えと解説を見る
✓ これが正解エログファイルへのコミット情報書込み完了時点
解説
コミット情報がログファイルに書き込まれた時点でコミット完了とします。
DBMSは、障害が起きても、コミットしたトランザクションの結果を失わないようにする必要があります。見分ける軸は、その時点で記録が障害を越えて残るかどうかです。ログバッファは主記憶の上にあるので、システム障害が起きると中身が失われます。コミット情報をログファイルという不揮発の記憶に書き込み終えていれば、データベース本体への反映が済んでいなくても、障害後にログを使ってロールフォワードし、最新の状態に復旧できます。そのため、ログファイルへのコミット情報の書込み完了をもって、コミットを完了とします。消えない場所に書き終わってから約束する、と覚えると選べます。
ほかの選択肢はなぜ違うのか
- アアプリケーションの更新命令完了時点:アプリケーションの更新命令が完了しただけでは、更新は主記憶の上で行われていて、障害が起きれば失われるおそれがあります。この時点でコミットを完了とすると、障害後に最新の状態へ復旧する手掛かりが残りません。
- イチェックポイント処理完了時点:チェックポイント処理は、主記憶上の更新をまとめてデータベースに書き出し、復旧の起点を作るための処理です。コミットのたびに行うものではなく、コミットの完了とは別の目的で、一定の間隔で行う処理です。
- ウログバッファへのコミット情報書込み完了時…:ログバッファは主記憶の上にあるので、書き込んだだけでは障害で消えてしまいます。コミット情報が失われれば、コミット済みのトランザクションを復旧できず、最新の状態に戻すという要件を満たせません。
この問題の用語
- データベースたくさんのデータを決まった形で貯め、探したり書き換えたりできるようにした仕組み。多くの人が同時に使うことを前提にしています。
- DBMSデータベースを管理するソフト。複数の処理が同じデータを同時に更新しても矛盾しないよう、排他制御などを行います。
- トランザクションデータベースへの一連の処理をひとまとめにした単位のこと。途中で失敗すると開始前の状態へ戻され、中途半端な更新が残りません。
- ログいつ誰が何をしたかを、機器やソフトウェアが自動で残していく記録です。あとから出来事をたどれるので、事故の調査や不正の発見に使われます。
出典:平成28年度 秋期 ITサービスマネージャ試験 午前Ⅱ 問21
同じ用語が出る問題
- 令和7年度 春期 午前Ⅱ 問23(DBMS)
- 令和6年度 春期 午前Ⅱ 問23:JupyterLabの説明(データベース)
- 令和5年度 春期 午前Ⅱ 問23:トランザクションに関する問題(トランザクション)
- 令和5年度 春期 午前Ⅱ 問22:クラウドサービス派生データの問題(ログ)
- 平成29年度 秋期 午前Ⅱ 問21:WALに関する問題(DBMS)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)