平成25年春期試験問題 午前Ⅱ 問16

DBMSがチェックポイント時点で,チェックポイントレコードをログに書き出す他に行っている処理はどれか。

  • 完了していないトランザクションをロールバックする。
  • 更新したデータの更新前後情報ログをログファイルに書き出す。
  • データベースの内容をバックアップファイルに書き出す。
  • バッファに残っている更新後のデータをデータベースに書き出す。
正解 問題へ
分野:テクノロジ系
中分類:データベース
小分類:トランザクション処理
解説
トランザクションがコミットされると、DBMSはその更新情報をメモリ上のバッファとログファイルに書き出します。ログファイルについてはWALプロトコルに従ってディスクへ即時書出しされますが、メモリバッファの内容については入出力効率向上のために、一定の間隔ごとにまとめてディスクに反映する方式をとっています。このディスクと同期を取るタイミング「チェックポイント」といいます。この仕組みによりチェックポイント以前にコミットしたトランザクションに関してはディスクへの反映が保証されます。
チェックポイント法を用いると、システム障害が発生した場合、ロールバック/ロールフォワードの対象を最後のチェックポイントから障害発生時点の間に実行していたトランザクションに限定できます。これによって障害発生直前の状態へと効率良く回復を行えます。

チェックポイントでは次の処理が順次行われます。
  1. 実行中のトランザクションを一時停止する
  2. メモリバッファの内容をディスクに書き出す
  3. チェックポイントレコードを書き出す
  4. 中断したトランザクションを再開する
したがって「エ」が正解です。
  • システム障害およびトランザクション障害時に行う処理です。
  • コミット時点で行う処理です。
  • バックアップ時点で行う処理です。
  • 正しい。チェックポイントで行う処理です。

Pagetop