サンプル問題 科目A 問46

問46  ディスク障害時に,フルバックアップを取得してあるテープからディスクにデータを復元した後,フルバックアップ取得時以降の更新後コピーをログから反映させてデータベースを回復する方法はどれか。

ア  チェックポイントリスタート   イ  リブート 

ウ  ロールバック     エ  ロールフォワード 

出典:基本情報技術者 サンプル問題

選択肢を見ていく

今回は、運用の問題ですね。

ア  チェックポイントリスタート

私は、この言葉をデータベース以外の分野で聞いたことがあります。その時は、アプリを長時間(数日間とか)実行する用途でした。もし途中でアプリが異常終了した場合にやり直すのは大変なので、途中段階で時々保存して(これがチェックポイント)、もし異常終了した場合は最後のチェックポイントから再開する、というものでした。

データベースのチェックポイントとは

では、データベースにおけるチェックポイントとは何でしょうか。調べると、次のようなわかりやすい解説がありました。

gihyo.jp

トランザクションをコミットするとログには反映されるが、元のデータベースにすぐに反映されるかどうか分からないということですね。それで、元のデータベースに時々反映することがあり、それをチェックポイントと呼ぶと。

イ  リブート

いや、これはどの分野でも再起動の意味しかないのでは、と思います。再起動で復旧する障害もありますが、この問題の場合は違います。

ウ  ロールバック

これはトランザクションが異常終了したときに、データベースへの変更を元に戻す処理ですね。

エ  ロールフォワード 

これは、データベースに障害が発生したときに、ある一貫した状態のデータベースをもとに、その後のトランザクションはログを元に再実行する復旧処理ですね。

で、この問題は

この問題はロールフォワードですね。

チェックポイントリスタートはディスクに異常が無く、データベースが失われていなければ有効だと思いましたが、バックアップテープから復旧するような障害には当てはまりませんね。

答え