チェックポイント法とは?ロールバック・ロールフォワードの違いについてまとめました。
【はじめに】ロールバック・ロールフォワードの違い
ロールバックとはトランザクションを「取り消す」処理で、やりかけの処理を中止して、やり始める前の状態に戻します。
ロールフォワードは「やり直す」処理で、バックアップを適用した後で、バックアップ以降にやった処理を再現します。
ロールバックは、主にトランザクション処理の途中で失敗したときに行います。
ロールフォワードは、データベースが物理的に壊れた場合になどに行います。
項目 | 使用するログ | 適用後の状態 |
---|---|---|
ロールバック(後進復帰) | 更新前ログ | トランザクション開始前 |
ロールフォワード(前進復帰) | 更新後ログ | 障害発生直前 |
【チェックポイント法とは】
トランザクションがコミット(反映)されると、データベースはその更新情報をメモリ上のバッファとログファイルに書き出します。
ログファイルは即座にディスクへ即時書出しされますが、メモリバッファの内容は入出力効率向上のために、一定の間隔ごとにまとめてディスクに反映する方式をとっていることが多いです。
ディスクと同期を取るタイミング(チェックポイント)以前にコミットしたトランザクションについては、ディスクへの反映が保証されます。
このようなチェックポイント法を用いてトランザクションをおこなうことで、システム障害が発生した場合、ロールバック/ロールフォワードの対象を最後のチェックポイントから障害発生時点の間に実行していたトランザクションに限定できるため、障害発生直前の状態へと効率良く回復を行えます。
システム障害が発生すると、チェックポイント以降にコミットされたトランザクションがディスクに反映されていないため、更新後ログを使用して障害発生直前の状態まで前進復帰(ロールフォワード)を行います。
また障害発生時にコミットされていないトランザクションは、更新前ログを使用した後退復帰(ロールバック)でトランザクション開始時点の状態に戻します。
【情報処理入門】用語解説・資格試験対策まとめ
情報処理分野の用語・原理・資格試験対策について解説します。
コメント