ロールバックとロールフォワードの違いとは?データベース回復処理をわかりやすく解説
ロールバックとロールフォワードは、データベースやトランザクション管理における障害回復処理の代表的な手法です。どちらもデータの整合性を保つために欠かせない仕組みですが、目的や処理の方向性が異なります。本記事では、両者の違いを中心に詳しく解説します。
ロールバックとは
ロールバック(Rollback)とは、トランザクション開始時点や直前の正常な状態までデータを戻す処理です。処理途中でエラーや障害が発生した場合、その影響を取り消すために使用されます。
例えば、複数の更新処理の途中でエラーが発生した場合、ロールバックを行うことで、すべての変更をなかったことにし、整合性を維持できます。
ロールフォワードとは
ロールフォワード(Rollforward)とは、バックアップ取得後に行われた正常な更新処理を再適用し、最新状態までデータを進める回復処理です。主にシステム障害からの復旧時に利用されます。
トランザクションログを利用して、バックアップ後の更新内容を順に反映させることで、障害直前の状態を復元します。
ロールバックとロールフォワードの違い
| 項目 | ロールバック | ロールフォワード |
|---|---|---|
| 処理の方向 | 過去に戻す | 現在・未来へ進める |
| 主な目的 | 誤った更新の取り消し | 障害後のデータ復旧 |
| 利用タイミング | トランザクション失敗時 | システム障害復旧時 |
トランザクションログとの関係
ロールバック・ロールフォワードのどちらも、トランザクションログが重要な役割を果たします。ログに記録された更新履歴をもとに、取り消しや再実行を行います。
具体的な利用シーン
日常的な処理エラーではロールバックが使用され、大規模障害やシステムクラッシュ時には、バックアップ+ロールフォワードによる復旧が行われます。
情報処理技術者試験でのポイント
試験では「誤操作を取り消すのがロールバック」「バックアップ後の更新を反映するのがロールフォワード」といった形で出題されることが多く、用途の違いを明確に覚えることが重要です。
まとめ
ロールバックは変更を取り消して過去に戻す処理、ロールフォワードは変更を再適用して最新状態に進める処理です。両者を正しく使い分けることで、データベースの信頼性と安全性を高めることができます。
(キーワード:ロールバック、ロールフォワード、トランザクション、障害回復、データベース)
コメント