応用情報技術者試験 令和4年秋期 問29
チェックポイントを取得するDBMSにおいて,図のような時間経過でシステム障害が発生した。前進復帰(ロールフォワード)によって障害回復できるトランザクションだけを全て挙げたものはどれか。
ア:T1 イ:T2とT3 ウ:T4とT5 エ:T5
出典 IPA公開[過去問題]:https://www.ipa.go.jp/shiken/mondai-kaiotu/gmcbt80000008smf-att/2022r04a_ap_am_qs.pdf
前進復帰(ロールフォワード)とは
データベースに何らかの障害(システムの破損やハードディスクなどの故障)が発生してデータが失われた場合の復旧方法です。
主に物理的な障害によるものなので、最新のバックアップファイルを使ってシステムを復元したあと、更新データを使ってバックアップできていない、より最新に近いデータへと復元します。最後にデータベースに障害があったときに実行していたプログラムを改めて実行していきます。
ロールフォワードとは更新データを使って障害発生時直前まで復元することをいいます。
今回の問題では、T1はバックアップファイルからの復元で戻ります。しかし、T2〜T5はバックアップファイルには反映されていません。この中でT4とT5は障害発生時前に処理が終わっているので更新データに処理の記録が残っていますので復元ができます。しかし、T2とT3は障害発生時にまだ処理が完了していないので更新データにも記録が残っていないので復元できません。
正解は、「ウ:T4とT5」です。
障害回復は「ロールフォワード」のほかにも、「ロールバック」というのがあります。こちらも試験で問われることがあります。
後退復帰(ロールバック)とは
プログラムによってデータベースの更新などの処理中に何らかの障害(プログラムエラーや通信エラー、更新先のデータベースにアクセスできないなど)が発生した場合、それまでに行った処理を全てなかったことにする必要があります。その際には「更新前データ」を使って処理前の状態に戻します。
ロールバックとは更新前データを使って処理実行前に戻すことをいいます。
ロールバックとロールフォワードはデータ復旧方法としてよく出題されます。単に用語の意味を覚えるだけではなく、「ロールフォワードはバックアップファイル+更新後データ」、「ロールバックは更新前データ」を使って復元するということも覚えておきましょう。
※気を抜いていると「ロールバックとして適切なのはどれか」という問いに対して誤って「データ更新後ファイルを使用する」を選んでしまいかねません。