ロゴ
テキスト/経営情報システム/障害回復とバックアップ

障害回復とバックアップ

データベース

データベースが壊れても復旧できる仕組みがあるよ!ロールフォワードとロールバックを使い分けよう!

1

障害回復とバックアップ

簡単にいうと

データベースが壊れても復旧できる仕組みがあるよ!ロールフォワードとロールバックを使い分けよう!

① バックアップの3方式

データベースの障害に備えるためには、定期的なバックアップが不可欠です。バックアップには主に3つの方式があります。

方式取得内容取得時間復旧時間必要な保存量
フルバックアップデータベース全体を丸ごと取得長い(最も時間がかかる)短い(1回のリストアで復旧)大きい
差分バックアップ前回のフルバックアップ以降に変更されたデータのみ取得中程度中程度(フル+最新の差分の2回で復旧)中程度
増分バックアップ前回のバックアップ(フルまたは増分)以降に変更されたデータのみ取得短い(最も少ないデータ量)長い(フル+全増分を順番に適用)小さい

ポイントは取得時間と復旧時間のトレードオフです。フルバックアップは毎回全データを取るので時間がかかりますが、復旧は1回のリストアで済みます。増分バックアップは取得が速い反面、復旧時にはフルバックアップに加えてすべての増分を順番に適用する必要があり、復旧に時間がかかります。

② ログファイル(ジャーナルファイル)

ログファイル(ジャーナルファイル)は、データベースに対するすべての更新操作を時系列順に記録したファイルです。障害回復の要となる存在です。

ログには以下の情報が含まれます。

  • 更新前情報(Before Image): 変更前のデータの状態
  • 更新後情報(After Image): 変更後のデータの状態
  • トランザクションID、更新日時、対象テーブル、対象行など

ログファイルの重要な原則がログ先書き(WAL: Write-Ahead Logging)です。これは「データベース本体を更新する前に、必ず先にログファイルに記録する」というルールです。この順序を守ることで、データ更新中にシステムがダウンしても、ログを参照してどこまで処理が完了していたかを正確に判断できます。

③ ロールフォワードとロールバック

障害の種類に応じて、2つの回復手法を使い分けます。

比較項目ロールフォワード(前進復帰)ロールバック(後退復帰)
対象障害ハードウェア障害(ディスク故障、停電など)ソフトウェア障害(プログラムのバグ、デッドロックなど)
使用情報バックアップ + ログの更新後情報ログの更新前情報
手順①バックアップからデータを復元 → ②ログの更新後情報を順に適用してコミット済みの状態まで進める①ログの更新前情報を使って、未コミットのトランザクションの変更を取り消す
動作の方向過去→現在の方向に復元を進める現在→過去の方向に変更を巻き戻す
データ消失コミット済みデータは消失しない未コミットの変更のみ取り消し

覚え方は「ロールフォワード=前に進む=バックアップ+更新後ログ=HW障害」「ロールバック=後ろに戻る=更新前ログ=SW障害」です。

④ イメージバックアップとファイルバックアップ

バックアップの取得方法にも2つのアプローチがあります。

方式内容メリットデメリット
イメージバックアップディスク全体をそのままコピー(ビットレベルの複製)OS・設定・データすべてを丸ごと復元可能。復旧が高速データ量が大きく、取得に時間がかかる
ファイルバックアップ必要なファイルやフォルダのみを選択してコピーデータ量が小さく、短時間で取得可能OS環境の復元ができない。ファイル単位の管理が必要

イメージバックアップはディスクの「写真」を撮るイメージで、システム全体の復元(災害復旧など)に適しています。ファイルバックアップは必要なデータだけを対象にするため、日常的な差分・増分バックアップに適しています。

具体例

ロールフォワードとロールバックの違いを、時間軸で具体的に追ってみましょう。

月曜日の夜: フルバックアップを取得(この時点のDBの完全なコピー)

火曜日: トランザクションT1(顧客Aの住所変更)→ コミット完了

水曜日: トランザクションT2(顧客Bの電話番号変更)→ コミット完了

木曜日の午前: トランザクションT3(顧客Cの削除)→ 実行中、未コミット

木曜日の午後: ディスク故障が発生!

この場合、ロールフォワードで回復します。

①月曜日のフルバックアップからDBを復元する

②ログの更新後情報を使って、T1(火曜)とT2(水曜)の変更を再適用する

③T3は未コミットなので適用しない

→ 水曜日のコミット完了時点のDBが復元されます。

一方、もしT3の処理中にプログラムのバグが発覚した場合はロールバックです。

①ログの更新前情報を使って、T3による変更を取り消す

→ T3実行前の状態に戻ります。T1とT2の結果はそのまま残ります。

バックアップ+更新後ログでHW障害から復旧するロールフォワードのタイムライン図

ロールフォワード(前進復帰)

更新前ログでSW障害からトランザクション開始前に戻すロールバックのタイムライン図

ロールバック(後退復帰)

試験のポイント

  • 要は「ロールフォワード=バックアップ+更新後ログでHW障害回復、ロールバック=更新前ログでSW障害回復」
  • WAL(ログ先書き)=データ更新前に必ずログに記録する原則
  • フル/差分/増分の違いは取得時間vs復旧時間のトレードオフで理解する

独学で診断士合格を目指すなら

過去問演習・AI添削・テキストPDFまで

すべて揃ったプレミアムプランで合格を掴む!

予備校代の1/10以下で、独学の不安をまるごと解決

  • 📝1次試験 過去問演習(全7科目・年度別)無制限プレミアム限定
  • 🤖2次試験 AI添削(事例I〜IV・無制限)最適なフィードバックで実力アッププレミアム限定
  • 📄科目別テキストPDFダウンロード。印刷して好きな使い方で学習できるプレミアム限定
  • 🔖ブックマーク機能で苦手分野・何度も確認したい部分を管理プレミアム限定
  • 📊学習記録・成績管理で自分の進捗を可視化プレミアム限定

プレミアムプラン

¥9,800(税込)

買い切り

自動更新なし / 1年間有効

決済は Stripe(PCI-DSS準拠)で安全に処理されます。カード情報は当サービスに保存されません。