DBMSがトランザクションのコミット処理完了とみなすタイミング|情報処理安全確保支援士 平成28年 秋期午前Ⅱ試験 問21
出典:平成28年秋期 午前Ⅱ 問21
分野:データベース / トランザクション処理
システム障害発生時には,データベースの整合性を保ち,かつ,最新のデータベース状態に復旧する必要がある。このために,DBMSがトランザクションのコミット処理完了とみなすタイミングとして,適切なものはどれか。
- ア:アプリケーションの更新命令完了時点
- イ:チェックポイント処理完了時点
- ウ:ログバッファへのコミット情報書込み完了時点
- エ:ログファイルへのコミット情報書込み完了時点
TSUNAGARU-ADVICE
まず押さえたいこと
DBMSでは、障害が発生してもコミット済みトランザクションを復旧できるように、コミット情報を永続的な記憶領域へ確実に記録してから処理完了とみなします。ポイントは、コミット情報がログファイルへ書き込まれていることです。
迷ったときの判断軸
アプリケーションの更新命令が終わっただけでは、障害時にその更新を保証できません。ログバッファは主記憶上にあるため、電源断などで失われる可能性があります。また、チェックポイントは復旧処理を効率化するための仕組みで、個々のコミット完了条件そのものではありません。揮発性のバッファではなく永続的なログへ記録されたかで判断しましょう。
科目Bにつなげるために
この論点は、支援士試験の科目Bで中心的に問われる可能性は高くありません。科目Aでコミット・ログ・チェックポイントの役割を区別できる程度に整理したら、科目B対策では、脅威・脆弱性・リスク・管理策・ログ分析・インシデント対応など、セキュリティ分野の重要論点を優先して深掘りしましょう。
DBMSでは、トランザクションの更新内容を確実に復旧できるようにするため、更新内容やコミット情報をログに記録します。システム障害が発生した場合、このログを使ってデータベースを最新の整合した状態へ復旧します。
コミット完了とみなすには、コミット情報が一時的なログバッファにあるだけでは不十分です。障害が発生して主記憶上の内容が失われても復旧できるように、コミット情報がログファイルへ書き込まれた時点でコミット処理完了とします。
したがって、エが適切です。
❌他選択肢が誤りの理由ア:アプリケーションの更新命令完了時点
⇒更新命令が終了しても、その内容が障害時にも残る形で記録されたとは限りません。復旧に必要なログが永続的に保存されている必要があります。
イ:チェックポイント処理完了時点
⇒チェックポイントは、復旧処理の開始位置を短縮するためにデータベースやログの状態を記録する仕組みです。各トランザクションのコミット完了を判断するタイミングではありません。
ウ:ログバッファへのコミット情報書込み完了時点
⇒ログバッファは主記憶上の一時的な領域なので、電源断などが起きると内容が失われる可能性があります。そのため、ログファイルへの書込みが完了するまではコミット完了とはみなしません。