一般的に、データベース管理システム(DBMS)は「WAL(Write-Ahead Logging:ログ先行書き込み)」という原則に従って動作します。これは、実際のデータベース本体ファイルを書き換える前に、必ずその変更内容を示すログを先にハードディスクなどの不揮発性ストレージに保存する仕組みです。これにより、データ本体の更新途中でシステムがクラッシュしても、残されたログを頼りに確実にデータを復旧することができます。
また、システム障害(メモリ内のデータが消えるが、ディスクは無事な状態)と、メディア障害(ディスク自体が物理的に破損する状態)では回復の手順が全く異なります。システム障害時には、ディスクに残されたログを利用して回復を行います。具体的には、障害発生時にまだ処理中だったトランザクションの変更を「ロールバック」して取り消し、すでにコミット(確定)していたがメモリからディスクへ書き出されていなかったトランザクションを「ロールフォワード」によって再実行します。一方、メディア障害時には、バックアップファイルからデータを復元した上で、バックアップ取得以降のすべての確定済みトランザクションのログを適用する「ロールフォワード」のみを実施して復旧させます。
試験でのポイント