DBMSのチェックポイント処理で行う追加の処理は何か【午前2 解説】
要点まとめ
- 結論:チェックポイント時にはバッファに残る更新後データをデータベースに書き出す処理を行う。
- 根拠:これにより障害発生時のリカバリ時間を短縮し、ログの適用範囲を限定できるため効率的。
- 差がつくポイント:チェックポイントは単なるログ書き出しだけでなく、バッファの内容をディスクに反映する重要な役割がある点を理解すること。
正解の理由
チェックポイントは、DBMSが障害復旧を効率化するために行う処理です。ログへのチェックポイントレコードの書き出しに加え、バッファに残っている更新後のデータ(ダーティページ)をディスク上のデータベースに書き出します。これにより、障害発生時にログの適用範囲をチェックポイント以降に限定でき、復旧時間を大幅に短縮できます。したがって、正解はエ: バッファに残っている更新後のデータをデータベースに書き出す。です。
よくある誤解
チェックポイントは単にログに記録するだけと思われがちですが、実際にはバッファの内容をディスクに反映する処理も含まれます。これを理解していないと誤答しやすいです。
解法ステップ
- チェックポイントの目的を確認する(障害復旧の効率化)。
- チェックポイント時に行う処理を思い出す(ログへのチェックポイントレコード書き出し+バッファのフラッシュ)。
- 選択肢の内容を照らし合わせる。
- バッファの更新後データを書き出す処理が含まれる選択肢を選ぶ。
- 他の選択肢がチェックポイントの処理内容と合致しないことを確認する。
選択肢別の誤答解説
- ア: 完了していないトランザクションのロールバックは障害時のリカバリ処理であり、チェックポイント時の処理ではありません。
- イ: 更新前後の情報をログに書き出すのは通常トランザクション処理中に行われるもので、チェックポイントの追加処理ではありません。
- ウ: データベースのバックアップはチェックポイントとは別の運用作業であり、チェックポイント処理には含まれません。
- エ: バッファに残る更新後データをディスクに書き出す処理はチェックポイントの重要な役割であり正解です。
補足コラム
チェックポイントはDBMSの障害復旧機能の一環で、障害発生時にログの適用範囲を限定し、復旧時間を短縮します。バッファの内容をディスクに書き出すことで、ログの巻き戻しや巻き戻し処理の負荷を軽減します。これによりシステムの可用性が向上します。
FAQ
Q: チェックポイントはどのタイミングで実行されますか?
A: 一定時間経過後やログファイルの容量が一定以上になった時など、DBMSが自動的に実行します。
Q: チェックポイントとバックアップは同じものですか?
A: いいえ。チェックポイントは障害復旧のための処理で、バックアップはデータの保全のために別途行う作業です。
関連キーワード: チェックポイント、バッファフラッシュ、障害復旧、トランザクション管理、DBMS内部処理