ロールバック、ロールフォワードの違い

ロールバック、ロールフォワードの違い 基本情報技術者

ロールバックとロールフォワードはどちらもデータベースの内容を復旧させる操作です。

以下でそれぞれの違いを解説していきます。

ロールバック

トランザクション(いくつかの処理をまとめたもの)の処理中にトラブルが発生して、データベースの更新に失敗した!

ここで、トラブル発生までの処理を取り消し、更新前の状態に戻すのがロールバックです。


例として、下記のようにトランザクション(処理1〜4)を行って、データベースを更新します。

※「ジャーナル」とはデータベースの情報を持ったファイルだと思ってください。


処理3の途中でトラブルが発生し、処理が止まってしまいました。

このような場合に、処理4は行わず、ジャーナルの情報を元に、処理を行う前のデータベースの状態に戻します。

ロールフォワード

処理は全て終わって更新したけど、データベースそのものが壊れてしまった!

このような時に、バックアップデータとジャーナルを用いて更新後の状態に戻すのがロールフォワードです。

例として、下記のようにトランザクション1,2を行って更新したデータベースがあるとします。

更新した情報はジャーナルに書き込まれます。


しかし、何らかの理由で更新したデータベースが故障しました。


まずは、バックアップデータから更新前の状態に戻します。


続いて、トランザクション1,2を実行した際に作られたジャーナル(更新情報が書かれている)を使って、またデータを更新します。

まとめ

ロールバックとは?

トランザクションの処理中に、データベースにトラブルが発生した時の操作

更新前の状態に戻す操作


ロールフォワードとは?

トランザクションの処理中以外で、データベースにトラブルが発生した時の操作

更新後の状態に戻す操作

コメント

タイトルとURLをコピーしました