×
データベース

また、システム障害(メモリ内のデータが消えるが、ディスクは無事な状態)と、メディア障害(ディスク自体が物理的に破損する状態)では回復の手順が全く異なります。システム障害時には、ディスクに残されたログを利用して回復を行います。具体的には、障害発生時にまだ処理中だったトランザクションの変更を「ロールバック」して取り消し、すでにコミット(確定)していたがメモリからディスクへ書き出されていなかったトランザクションを「ロールフォワード」によって再実行します。一方、メディア障害時には、バックアップファイルからデータを復元した上で、バックアップ取得以降のすべての確定済みトランザクションのログを適用する「ロールフォワード」のみを実施して復旧させます。

試験でのポイント

基本情報技術者試験等の試験対策では、システム障害時の回復処理において、どのトランザクションに対してロールバックを適用し、どれに対してロールフォワードを適用するのかを判別する問題が非常によく出題されます。問題用紙には「チェックポイント(確定点)」の線が引かれた時間軸の図が示され、各トランザクションの開始と終了のタイミングが表されます。

判別のコツはシンプルです。「障害発生時点でコミットされていない(未完了の)トランザクションはロールバック」し、「チェックポイント以降にコミットされ、障害発生時に完了していたトランザクションはロールフォワード」します。なお、チェックポイント以前にすでに完了していたトランザクションは、その時点でディスクへの書き出しが確定しているため、回復処理は不要(何もしない)となります。このルールを正確に記憶しておくことが得点に直結します。また、メディア障害時の復旧に必要なファイルとして「バックアップ」と「ログ(ジャーナル)」を選択させる知識問題も頻出です。

関連する用語

障害回復に関連する概念としては、処理を確定する「コミット」、処理を未実行状態に戻す「ロールバック」、ログを用いて処理を再現する「ロールフォワード」、ログの別名である「ジャーナルファイル」、データの一貫性を保証する「ACID特性」などがあります。これらを体系的に整理して覚えることが大切です。