最終更新日:2026年7月23日
fe fe-technology database
まず結論
データベースの障害回復では、次の3つを切り分けることが大切です。
リストア
→ バックアップからデータを戻す
ロールフォワード
→ コミット済みの更新を再反映する
ロールバック
→ 未コミットの更新を取り消す
基本情報技術者試験では、バックアップ取得後にコミットした更新なら、ロールフォワードの対象です。
直感的な説明
まず、バックアップを「途中まで保存しておいたセーブデータ」と考えます。
データベースに障害が起きたときは、そのセーブデータから戻します。これが リストア です。
リストア
= restore
= バックアップから元の状態へ戻す
ただし、バックアップを取得したあとにも、正常に完了した更新があるかもしれません。
その更新まで戻すには、トランザクションログを使って、コミット済みの処理をもう一度反映します。これが ロールフォワード です。
一方、途中で失敗してコミットされていない更新は残してはいけません。その変更を取り消すのが ロールバック です。
定義・仕組み
リストアとは
リストアとは、バックアップからデータやシステムを元の状態へ戻す操作です。
英語では restore と書き、「復元する」「元に戻す」という意味です。
バックアップ
→ 退避しておいたコピー
リストア
→ そのコピーを使って戻す操作
例えば、毎日午前0時にデータベースをバックアップしている場合、午前10時に媒体障害が起きたら、まず午前0時時点のデータをリストアします。
ただし、この時点では午前0時から午前10時までの更新は戻っていません。
ロールフォワードとは
ロールフォワードは、更新後ログを使って、コミット済みの更新を再反映する処理です。
バックアップ時点から
↓
障害発生直前へ進める
そのため、「前へ進める回復」と考えると覚えやすいです。
ロールバックとは
ロールバックは、未コミットの更新を取り消し、トランザクション開始前の状態へ戻す処理です。
途中で失敗した更新
↓
なかったことにする
トランザクションログの役割
トランザクションログには、データベースの更新内容が記録されます。
障害回復では、次のように使い分けます。
| 対象 | 操作 |
|---|---|
| コミット済みの更新 | ロールフォワード |
| 未コミットの更新 | ロールバック |
公式の出題範囲やシラバスは、IPA:基本情報技術者試験から確認できます。
科目Aでどう出る?
科目Aでは、障害の種類と回復手順を組み合わせて問われます。
媒体障害の基本手順
媒体障害とは、ディスクなどの記憶媒体そのものに障害が起きることです。
一般的な回復手順は、次のとおりです。
1. 正常な媒体を用意する
2. バックアップをリストアする
3. バックアップ後のコミット済み更新をロールフォワードする
判断の中心はコミット済みかどうか
コミット済み
→ 正常に確定した更新
→ ロールフォワード
未コミット
→ 途中で終わった更新
→ ロールバック
時系列で考える
例えば、次の状況を考えます。
09:00 バックアップ取得
09:10 更新Aをコミット
09:20 更新Bをコミット
09:30 更新Cの途中で障害
回復手順は次のようになります。
1. 09:00のバックアップをリストア
2. 更新Aをロールフォワード
3. 更新Bをロールフォワード
4. 更新Cは反映しない
試験では、次の順番で見ると迷いにくいです。
1. 障害の種類を確認する
2. バックアップを使うか確認する
3. コミット済みか未コミットかを見る
4. ロールフォワードかロールバックかを決める
どんな場面で使う?
これらの操作は、データベースを障害前の正しい状態へ戻すときに使います。
代表的な場面は次のとおりです。
- ディスク故障などの媒体障害
- トランザクション途中での異常終了
- システム停止後のデータベース再起動
- バックアップからの復旧
特に媒体障害では、バックアップだけでは最新状態まで戻せない場合があります。
バックアップ
→ 保存した時点まで戻す
ログ
→ その後の正常な更新を戻す
この2つを組み合わせることで、障害直前に近い状態へ回復できます。
よくある誤解・混同
リストアとバックアップは同じ
誤りです。
バックアップ
→ コピーを作って保存する
リストア
→ 保存したコピーを使って戻す
バックアップは事前の備え、リストアは障害後の復元操作です。
ロールフォワードは全てのログを再実行する
誤りです。
未コミットの更新まで再反映してはいけません。
コミット済み
→ 再反映する
未コミット
→ 再反映しない
コミット済みの更新をロールバックする
通常の障害回復では誤りです。
コミット済みの更新は、正常に確定した処理です。媒体障害後は、むしろロールフォワードで再反映します。
媒体障害ではロールバックだけ行う
誤りです。
媒体障害では、まずバックアップをリストアし、その後のコミット済み更新をロールフォワードするのが中心です。
ロールバックとリストアは同じ
違います。
リストア
→ バックアップ全体から戻す
ロールバック
→ 特定の未完了トランザクションを取り消す
まとめ(試験直前用)
- バックアップは、データのコピーを保存すること
- リストアは、バックアップからデータを戻すこと
- ロールフォワードは、コミット済みの更新を再反映すること
- ロールバックは、未コミットの更新を取り消すこと
- 媒体障害では、まずバックアップをリストアする
- その後、バックアップ取得後のコミット済み更新をロールフォワードする
バックアップ後 + コミット済み = ロールフォワードで切る