Skip to the content.

最終更新日:2026年7月23日

まず結論

データベースの障害回復では、次の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つを組み合わせることで、障害直前に近い状態へ回復できます。

よくある誤解・混同

リストアとバックアップは同じ

誤りです。

バックアップ
→ コピーを作って保存する

リストア
→ 保存したコピーを使って戻す

バックアップは事前の備え、リストアは障害後の復元操作です。

ロールフォワードは全てのログを再実行する

誤りです。

未コミットの更新まで再反映してはいけません。

コミット済み
→ 再反映する

未コミット
→ 再反映しない

コミット済みの更新をロールバックする

通常の障害回復では誤りです。

コミット済みの更新は、正常に確定した処理です。媒体障害後は、むしろロールフォワードで再反映します。

媒体障害ではロールバックだけ行う

誤りです。

媒体障害では、まずバックアップをリストアし、その後のコミット済み更新をロールフォワードするのが中心です。

ロールバックとリストアは同じ

違います。

リストア
→ バックアップ全体から戻す

ロールバック
→ 特定の未完了トランザクションを取り消す

まとめ(試験直前用)

  • バックアップは、データのコピーを保存すること
  • リストアは、バックアップからデータを戻すこと
  • ロールフォワードは、コミット済みの更新を再反映すること
  • ロールバックは、未コミットの更新を取り消すこと
  • 媒体障害では、まずバックアップをリストアする
  • その後、バックアップ取得後のコミット済み更新をロールフォワードする
  • バックアップ後 + コミット済み = ロールフォワード で切る

© 2024-2026 stemtazoo. All rights reserved.