チェックポイントとは?チェックポイント
チェックポイントとは、バッファ上で更新済みのページをまとめて記憶装置へ書き出し、その時点をログに記録する処理。これより前の更新は実データへ反映済みだと保証できるため、障害からの回復でログをさかのぼる範囲をこの点までに限定できる。取得の間隔が、そのまま回復に要する時間の上限を決める。
最終更新:2026-10-06
この語が出る過去問を解く →背景
ログは運転を続ける限り伸び続けるので、区切りが無ければ障害のたびにログの先頭から読み直すことになり、回復時間が業務の許容範囲に収まらない。かといって毎回書き出せば通常運転が遅くなる。どこまで書けているかを定期的に宣言しておく——この一手で、回復時間を運用側が選べる設計変数に変えたのがチェックポイントである。目標復旧時間(RTO)から間隔を逆算する、という設計の話につながる。
具体例
PostgreSQLでは checkpoint_timeout と max_wal_size、Oracleでは FAST_START_MTTR_TARGET といった設定でこの間隔を調整する。回復時間を短くしたければ頻繁に取り、通常時の書込み負荷を抑えたければ間隔を空ける、という向きで運用側が決める。
試験での引っ掛け
この時点より後にコミットされたトランザクションはREDO、この時点で処理中のまま障害を迎えたトランザクションはUNDOの対象になる。間隔を詰めるほど回復は速くなるが、書出しが増えて通常運転の性能が落ちるという相反があり、「短くすれば得」と単純化すると誤る。
関連用語
出た過去問
問題文で直接問われたものと、解説の中で触れられたものが含まれます。
出典:平成31年度 春期 データベーススペシャリスト試験 午前Ⅱ 問2(IPA)
次のチェックポイントの仕様に従ってトランザクション処理を行うDBMSにおいて、チェックポイントの発生頻度は1時間当たり何回か。ここで、トランザクションは毎秒20…
正解:3
要点:バッファ満杯40分よりログ切替20分が先に来て20分周期になる
バッファは480Mバイト÷10kバイト=48,000トランザクション分で、毎秒20件なら2,400秒(40分)で満杯になる。ログファイルは240Mバイト分=24,000トランザクション分なので1,200秒(20分)ごとに切り替わる。チェックポイントのたびにバッファは初期化されるため、常に20分ごとのログ切替えが先に条件を満たし、1時間当たり3回となる。
出典:令和7年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問12(IPA)解説で登場
DBMSをシステム障害発生後に再立上げするとき、ロールフォワードすべきトランザクションとロールバックすべきトランザクションの組合せとして、適切なものはどれか。こ…
正解:ロールフォワード: T2, T5 / ロールバック: T6
要点:CP後のコミット済みをREDO、未コミットの更新をUNDO
チェックポイント時点で更新内容は記憶媒体へ反映済みなので、それ以前に完了した更新はやり直す必要がない。復旧では、チェックポイント以降に更新を行いコミット済みのトランザクションをログからロールフォワードし、障害時点で未コミットのまま更新を残しているものをロールバックする。読取りだけで更新を伴わないトランザクションは、どちらの対象にもならない。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。