IPA 障害回復・バックアップ — 頻出論点と過去問

頻出論点

1. この分野は何か

データベースの運用中に発生するプログラムの異常終了、システムの停止、記憶媒体の破損といった各種の障害に対し、データの整合性と耐久性を保って元の状態や障害直前の状態へ復旧する仕組みを扱います。障害が起きた時点で各トランザクションが確定済みか実行中かによって、バックアップファイルやログファイルのどの情報を使い、前へ進める操作と取り消す操作のどちらを行うかが決まります。

2. 実際の出題のされ方

ログやチェックポイントとは何かをトランザクション処理のほかの用語の説明と並べて選ばせる問題や、週次のフルバックアップと日次の差分バックアップを組み合わせた運用で特定時点への復旧に最低限必要なファイルを選ばせる問題があります。こうした基本的な用語の定義やバックアップからの復元手順は、ITパスポートで出題されています。

チェックポイントと障害発生の時刻を示した図から、回復の対象になるトランザクションを判定する問題が、応用情報技術者の午前と高度試験の午前Iに出ています。ログの使い方やチェックポイントの意味など、回復の仕組みそのものを問う問題は繰り返し出題されています。各トランザクションの開始・終了時期、undo/redo方式における更新前情報・更新後情報の要否、べき等(idempotent)な操作の意味などが問われています。

障害の種類ごとに回復手法を組み合わせる問題と、REDOのべき等が何を指すかを選ぶ問題では、データベーススペシャリストの午前IIが仕組みの細部まで踏み込みます。

情報処理安全確保支援士とシステムアーキテクトの午前IIで出ているのは、DBMSのコミット処理がどの時点で完了するのかを選ばせる問いです。

フルバックアップの取得間隔を変えたときに復旧時間や媒体使用量へどう影響するかは、プロジェクトマネージャとITサービスマネージャの午前IIで問われる論点です。

3. 学習のポイント

障害の種類と回復手法(ロールバックとロールフォワード)の対応関係は、この分野の土台となります。DBMSで扱う障害は大きく3つに分かれます。

  • トランザクション障害: デッドロックやプログラムの論理エラーなどで処理の途中でトランザクションが止まる障害です。ログファイルの更新前情報(更新前ログ)を用いて、そのトランザクションによる変更を取り消して開始前の状態に戻すロールバック(後退復帰・undo)を行います。
  • システム障害: CPUやメインメモリの障害、電源断などにより、記憶媒体は壊れていないもののシステムが停止する障害です。再立ち上げ時には、チェックポイントのあとにコミットしたトランザクションに対して更新後情報(更新後ログ)を使って結果を再反映するロールフォワード(前進復帰・redo)を行い、障害発生時点で未コミットだった更新トランザクションに対して更新前情報を使ったロールバックを行います。
  • 媒体障害: ハードディスクの故障などでデータベースの記録媒体そのものが使用不能になる障害です。あらかじめ取っておいたバックアップを復元(リストア)した上で、バックアップ取得以降にコミットされたトランザクションの更新後情報をログから反映させるロールフォワードによって、障害発生直前の状態まで回復させます。

チェックポイントとログの制御方式も重要な論点です。

  • チェックポイント: チェックポイントでは、メモリ上でまだディスクに書いていない更新を、ある時点でまとめて書き出します。障害のあとは、その時点より前に確定した更新をやり直さずに済むので、回復にかかる時間が短くなります。
  • 時系列図からの対象判定: 時間軸の図からロールフォワードとロールバックの対象を選ぶ問題では、各トランザクションについて、コミットしたかどうか、チェックポイントの前か後か、データを書き換えたかどうかの3点を確認します。チェックポイントより前にコミットしたものは回復不要、チェックポイントのあとで確定し障害発生前に終了したものはロールフォワードの対象、障害発生時点で未コミットのものはロールバックの対象です。ただし、処理内容の表が与えられている場合は、データベースへの書込み(Write)を行わず読取り(Read)しかしていないトランザクションはデータを変更していないため、未コミットであってもロールバックの対象にはなりません。
  • ログ先行書込み(WAL: Write-Ahead Logging)とコミット完了時点: ACID特性の耐久性を支えるログ先行書込み(WAL)では、更新したページをディスクに書き出す前に、その更新を記録したログを先にディスクへ書きます。これとは別に、コミットが完了したとみなせるのは、そのトランザクションの更新とコミットの記録がディスク上のログに書き終わったときです。
  • REDOのべき等性: べき等とは、同じ操作を何度実行しても、1回だけ実行したときと結果が変わらない性質です。REDOがこの性質を持つので、回復の途中で再び止まっても、REDOを最初からやり直せば正しい状態に戻せます。

バックアップの方式と運用間隔の影響も整理しておきましょう。

  • フルバックアップと差分・増分バックアップ: フルバックアップはデータベース全体のコピーを取得します。差分バックアップは最後のフルバックアップ以降のすべての変更データを取得する方式であるため、復旧時には直近のフルバックアップと最新の差分バックアップの2つがあれば、その差分バックアップ取得時点の状態に戻せます。
  • フルバックアップの取得間隔と復旧時間: フルバックアップの間隔を短くすると、復元したあとに反映する更新ログが少なくなり、復旧が早く終わります。1回のフルバックアップにかかる時間や媒体の量は、データベース全体の大きさで決まります。

4. 間違えやすいところ

媒体障害からの回復で、バックアップを戻したあとにログの更新前情報を使うとする誤答肢がありました。バックアップの時点から前へ進めるときは更新後情報、取り消すときは更新前情報を使います。

異常終了したトランザクションでは、更新ログを捨てれば開始前の状態に戻るとする誤答肢がありました。ログを捨てても、すでに書き換えたデータは元に戻りません。

チェックポイントの説明として、トランザクションの途中に印を付けてそこまで取り消せる時点(セーブポイント)を述べた誤答肢がありました。セーブポイントは、障害が起きていなくてもプログラムの指示で使う、1つのトランザクションの中だけの仕組みです。

べき等な操作の説明を選ぶ問題では、トランザクションの原子性の説明が誤答肢にありました。すべて実行されるか全く実行されないかのどちらかになる性質は原子性で、べき等とは別の性質です。

障害回復・バックアップの理解度チェック

障害回復・バックアップの過去問一覧

障害回復・バックアップの用語

データベースのほかの論点

SQL・関係代数53問 データモデル・E-R/UML・キー37問 正規化・関数従属19問 トランザクション・同時実行制御30問 分散DB・NoSQL18問 インデックス・物理設計11問