今回のテーマは、データベースの障害管理についてです。
難しそうなテーマですね。
基本情報技術者試験や応用情報技術者試験で出題される「データベースの障害管理(ロールフォワード)」の問題。ロールフォワードの動きを知らないと難しく感じる問題ですが、知っていればそこまで難しい問題ではありません。
本記事では、データベースの障害管理(ロールフォワード)について解説しています。
スポンサーリンク
目次
ロールフォワード
ロールフォワードとは、 データベースに障害が発生したときの回復手段のひとつです。
データベースには、業務で必要なデータが大量に保存されています。そのため、障害に備えて定期的にバックアップを取ることが基本です。
もしバックアップがない状態で、データベースが破損したら、データを復元できません。
データが復元できないと大問題だ...
ロールフォワードでは、「バックアップファイル」と「ジャーナルファイル」というファイルを使い、データベースの状態を元に戻します。
バックアップファイルとジャーナルファイル
データベースは、障害に備えて定期的に バックアップを取ることが基本です。
定期的に取得するバックアップは、 データベースの内容を丸ごと別ファイル(バックアップファイル)に保存します。
バックアップファイルを定期的に取得していれば、障害発生時にデータベースのデータを復元できます。
ただし、 バックアップファイルだけでは不十分です。なぜなら、バックアップファイルを取得してから、次のバックアップファイルを取得するまでの間に更新されたデータがあるからです。
そこで、バックアップ後の更新はジャーナルファイル(更新前の状態と更新後の状態)と呼ばれるログファイルに随時記録して、 データベースのテーブルに対する更新履歴を管理します。
次の図は、バックアップアイルとジャーナルファイルのイメージ例です。
- データベースの内容は、定期的にバックアップファイルに保存する
- 次のバックアップファイル取得までの間に、発生した更新は、ジャーナルファイル(ログ)に保存する
ロールフォワードの流れ
ロールフォワードは、データベースに障害が発生したときの回復手段のひとつです。 バックアップファイルとジャーナルファイルを使い、データベースの状態を元に戻します。
ロールフォワードの流れは次のとおりです。
- データベースに障害が発生
- バックアップファイルからデータを復旧
- バックアップファイル以降のログ(ジャーナルファイル)を反映
データベースで障害が発生した場合、定期的に取得している バックアップファイルからデータを復旧します。ただし、それだけではバックアップ以降に加えられた変更分が失われたままです。
そこで、バックアップ以降のログ(ジャーナルファイル)を反映し、障害発生直前の状態に戻します。
このように「バックアップファイル」+「ジャーナルファイル」を使い、データベースの内容を障害発生直前の状態に戻すことをロールフォワードといいます。
スポンサーリンク
情報処理試験 過去問の解説
基本情報技術者平成30年秋期 午前問30
データベースが格納されている記憶媒体に故障が発生した場合,バックアップファイルとログを用いてデータベースを回復する操作はどれか、ア~エを順番に確認していきます。
「エ」が正解です。
応用情報技術者令和4年秋期 午前問29
チェックポイントを取得するDBMSは、システム障害から復旧すると、チェックポイント時点のデータにもどります。
T1~T5はトランザクションで管理されている処理です。トランザクションとは、一連の処理をひとまとめにしたもので、処理をすべて確定(コミット)させるか、処理をすべて取り消す(ロールバック)かのどちらかで、中途半端に一部だけ実行することは許容しません。
前進復帰(ロールフォワード)によって障害回復できるトランザクションはどれか、T1~T5を順番に確認していきます。
- T1:チェックポイント前にコミット(確定)されているので、システム障害から復旧したDBMSにコミット内容は反映されています。そのため、ロールフォワードする必要はありません。
- T2:トランザクション処理中にシステム障害が発生。トランザクションは、コミット(すべて確定)するか、ロールバック(すべて取り消す)かのどちらかで、処理中に障害が発生した場合は、ロークバック(すべて取り消す)します。ロールバックによって、処理はすべて取り消しになるので、ロールフォワードする必要はありません。
- T3:T2と同じ
- T4:チェックポイント ~ システム障害発生の間にトランザクションがコミットされています。システム障害から復旧すると、DBMSはチェックポイント時点のデータにもどります。そのため、ロールフォワードを行い、DBMSにコミット内容を反映します。
- T5:T4と同じ
ロールフォワードが必要なのは、T4とT5です。「ウ」が正解です。