この記事では、バックアップとログを使ったロールフォワード・ロールバックについて、初心者にも分かりやすく、図解付きで丁寧に解説しています!
バックアップ
- バックアップとは、データベースに保管されたデータをコピーして別の場所に保管すること。
- フルバックアップは全てのデータをバックアップすること。
- 差分バックアップは前回のフルバックアップから変更があったデータのみバックアップすること。
- 増分バックアップは前回のバックアップから変更があったデータのみバックアップすること。
ログファイル
- ログファイルはデータを更新する前と後の状態を記録したファイル。
- ロールフォワードはデータベースに物理的な障害があったとき、直前のバックアップと更新後ログファイルからデータを復旧する方法。
- ロールバックはトランザクション処理中に論理的な障害があったとき、更新前ログファイルからデータを復旧する方法。
バックアップ
バックアップとは、データベースに保存されたデータをコピーして別の場所に保管することです。データベースに障害が起きてデータが破損した時も、バックアップをしていればデータを復元できます。バックアップには主に3種類の方法があります。
フルバックアップ
フルバックアップでは、保存されている全てのデータをバックアップします。

差分バックアップ
差分バックアップでは、前回のフルバックアップ以降、変更があったデータをバックアップします。

増分バックアップ
増分バックアップでは、前回のバックアップ以降、変更があったデータをバックアップします。

それぞれのバックアップの特徴を比較
バックアップするのに必要な時間は、フルバックアップ>差分バックアップ>増分バックアップの順に短くなります。フルバックアップは毎回全てのデータをバックアップするので時間が掛かりますが、増分バックアップは前回からの変更点だけバックアップすれば良いのでそんなに時間が掛かりません。

しかし、バックアップからデータを復旧するのに掛かる時間は増分バックアップ>差分バックアップ>フルバックアップの順番で短くなります。例えば、3日目のバックアップ直後にデータが破損した場合、次のようになります。増分バックアップは3つに分けられたバックアップから復旧する必要があるから時間が掛かるんですね。
- フルバックアップでは、3日目のバックアップデータだけを復旧
- 差分バックアップでは、1日目、3日目のバックアップデータを復旧
- 増分バックアップでは、1日目、2日目、3日目のバックアップデータを復旧

ログファイル
ログファイルとは、データを更新する際に更新前の情報と更新後の情報を記録したファイルです。ログファイルもデータの復旧に使います。
バックアップは時間が掛かるので1日の終わりのように、切りが良いタイミングで行います。一方、ログファイルはトランザクション処理のたびに記録を取ります。
ロールフォワード
ロールフォワードは、データベースに物理的な障害が発生した際に、直前のバックアップデータとログの更新後情報からデータを復旧させる方法です。
データベースに物理的な障害が発生した場合は新しいデータベースを用意してデータを復旧する必要があります。新しいデータベースには、直近のバックアップデータを適用し、その後のトランザクションの更新後ログを順番に適用していくことで、物理的な障害が発生する前の状態に戻します。

ロールバック
ロールバックは、トランザクション処理の途中で論理的な障害が発生した際に、ログファイルの更新前情報を使ってデータを復旧させる方法です。
トランザクション処理中に障害が発生した時は、トランザクション処理の更新前ログの情報からデータベースを復旧します。

基本情報技術者試験での出題例
令和元年度秋期問19
基本情報技術者
午前試験 令和元年度秋期問19
バックアップ方式の説明のうち,増分バックアップはどれか。ここで,最初のバックアップでは,全てのファイルのバックアップを取得し,OSが管理しているファイル更新を示す情報はリセットされるものとする。
ア 最初のバックアップの後,ファイル更新を示す情報があるファイルだけをバックアップし,ファイル更新を示す情報は変更しないでそのまま残しておく。
イ 最初のバックアップの後,ファイル更新を示す情報にかかわらず,全てのファイルをバックアップし,ファイル更新を示す情報はリセットする。
ウ 直前に行ったバックアップの後,ファイル更新を示す情報があるファイルだけをバックアップし,ファイル更新を示す情報はリセットする。
エ 直前に行ったバックアップの後,ファイル更新を示す情報にかかわらず,全てのファイルをバックアップし,ファイル更新を示す情報は変更しないでそのまま残しておく。
正解は”ウ”
平成30年度秋期問30
基本情報技術者
午前試験 平成30年度秋期問30
データベースが格納されている記憶媒体に故障が発生した場合,バックアップファイルとログを用いてデータベースを回復する操作はどれか。
ア アーカイブ イ コミット
ウ チェックポイントダンプ エ ロールフォワード
正解は”エ”
平成30年度春期問29
基本情報技術者
午前試験 平成30年度春期問29
データベースの更新前や更新後の値を書き出して,データベースの更新記録として保存するファイルはどれか。
ア ダンプファイル
ウ バックアップファイル
イ チェックポイントファイル
エ ログファイル
正解は”エ”
平成29年度秋期問30
基本情報技術者
午前試験 平成29年度秋期問30
トランザクション処理プログラムが,データベース更新の途中で異常終了した場合,ロールバック処理によってデータベースを復元する。このとき使用する情報はどれか。
ア 最新のスナップショット情報
イ 最新のバックアップファイル情報
ウ ログファイルの更新後情報
エ ログファイルの更新前情報
正解は”エ”