障害回復とは、データベース管理システム(DBMS)において、システム障害や停電などによってデータが破損したり、処理が途中で中断したりした際に、データを障害直前の正しい状態に戻す仕組みのことです。データベースは常に多くのデータを更新しているため、突然のトラブルによってデータに矛盾が生じることがあります。これを防ぐために、あらかじめ「ログ(履歴)」を記録しておき、それを使ってデータを復旧します。
障害回復の主な手法には「ロールバック」と「ロールフォワード」があります。ロールバックは、途中で失敗した処理をすべて取り消して実行前の状態に戻すことです。ロールフォワードは、ハードウェアの故障などでデータが壊れた際、バックアップデータと「ジャーナル(更新履歴)」を使って、障害が発生する直前の状態までデータを再現することです。また、定期的にデータの状態を確定させる「チェックポイント」というタイミングを記録しておくことで、回復作業を高速化します。
例えば、銀行の口座振込の処理中に、停電でシステムが停止したとします。