本文へスキップ

障害回復(リカバリ)

低頻約 26 分5 用語過去問 9 題

この単元の目標

  • チェックポイントが回復の起点になる理由を説明できる。
  • ロールバックとロールフォワードを、対象とするトランザクションと使う記録で分けられる。
  • バックワードリカバリとフォワードリカバリが、それぞれどちらの操作の呼び名かを結び付けられる。
用語総表(5 語)
用語ひとことで回復の向き主に使う記録
チェックポイントメモリ上の更新をディスクへまとめて書き出す操作・時点向きはなく、回復を始める位置を決めるディスク上の内容とログ
ロールバック正常に終わらなかったトランザクションの更新を取り消す操作さかのぼるログの更新前の値
バックワードリカバリロールバックで処理前の状態へ戻す回復の方式 (後退復帰)さかのぼるログの更新前の値
ロールフォワード過去の時点のデータに更新を適用し直して進める操作進めるバックアップなどとログの更新後の値
フォワードリカバリロールフォワードで障害直前の状態へ進める回復の方式 (前進復帰)進めるバックアップなどとログの更新後の値

用語

チェックポイントは、メモリ上にためた更新内容をディスクへまとめて書き出す操作、またはその操作を行った時点である。

  1. 更新をメモリにためる
  2. チェックポイントでディスクへ書き出す
  3. 障害が起きる
  4. 直近のチェックポイントから回復

回復は直近のチェックポイントを起点に行い、それより前の更新はやり直さずに済む。

4 / 4

DBMS は処理を速くするため、更新をすぐにはディスクへ書かず、メモリ上のバッファにいったんためておく。チェックポイントを定期的に設けると、その時点までの更新はディスクに反映済みとなる。システムが止まりディスクの内容は残っている障害では、更新の経過を順に書き留めた記録であるログを最初までたどらずに、直近のチェックポイントから回復を始められる。

たとえ家計簿を毎月末に清書しておけば、書き損じに気付いても直近の月末から見直せば済むのに似ている。

覚え方check (確かめる) と point (地点): 更新がディスクに書かれたことを確かめた地点。

出題のポイント

  • 出題チェックポイントという語は、更新をディスクへまとめて書き出す操作と、その操作を行った時点のどちらの意味でも使う。
  • 混同注意コミットは 1 つのトランザクションの結果を確定させる操作である。チェックポイントは個々のトランザクションの終わりとは関係なく、定期的に更新をディスクへ反映させる操作である。

この用語の過去問 2 題 チェックポイント

ロールバックは、正常に終わらなかったトランザクションの更新を取り消し、その処理を始める前の内容へ戻す操作である。

  1. トランザクション開始
  2. 一部の項目を更新
  3. 途中で異常終了
  4. 更新前の値で元に戻す

ログの更新前の値を当て直し、トランザクションを始める前の内容に戻す。

4 / 4

取り消しには、ログに残した更新前の値を使い、書き換えた項目を元の値へ戻していく。障害のほか、プログラムの誤りや利用者による中止でトランザクションが途中で止まったときにも行う。これにより、途中までの更新だけがデータベースに残ることはない。

たとえ申込書に記入している途中で書き損じたら、その用紙を捨てて白紙に戻すのに似ている。

覚え方roll back は「巻き戻す」。back (後ろ) の向きなので後退復帰と結び付く。

出題のポイント

  • 出題ロールバックでは、途中まで行った書き換えも一つ残らず元の値に戻り、一部だけ反映された状態は残らない。
  • 出題ロールバックで消えるのは、異常終了したトランザクション自身が行った更新である。それより前にコミットを済ませたトランザクションの更新はそのまま残る。
  • 混同注意コミットは正常に終わったトランザクションの更新を確定させる操作で、ロールバックは終わらなかったトランザクションの更新を取り消す操作である。

この用語の過去問 3 題 ロールバック

バックワードリカバリは、ロールバックによってデータベースを処理前の状態へさかのぼらせる回復の方式で、後退復帰とも呼ぶ。

現在のデータベースを出発点に、ログの更新前の値を新しいものから順に当てて、時間を逆向きにたどる。行う操作はロールバックそのもので、バックワードリカバリは回復の向きに着目した呼び名である。

出題のポイント

  • 出題トランザクションが途中で失敗しても更新を取り消せるのは、更新の経過がログに記録されているからである。

この用語の過去問 2 題 バックワードリカバリ

ロールフォワードは、過去の時点のデータベースに、ログに残る更新を順に適用し直して、障害直前の状態まで進める操作である。

  1. ディスクが壊れる
  2. バックアップを戻す
  3. ログの更新後の値を順に適用
  4. 障害直前の状態

コミット済みの更新がすべて反映され、障害が起きる直前の内容になる。

4 / 4

例えばディスクが壊れてデータが失われたときは、まず定期的に取っておいたバックアップを戻すが、それだけではバックアップを取った後の更新が抜けている。そこで、ログに記録された更新後の値を古いものから順に書き込み、コミット済みのトランザクションの結果を再現する。

たとえ消えてしまった表計算のファイルを前日の控えから開き、その後の入力をメモを見ながら打ち直すのに似ている。

覚え方roll forward は「先へ転がす」。forward (前へ) の向きなので前進復帰と結び付く。

出題のポイント

  • 出題障害回復で、バックアップを取った後の更新を再現する材料になるのは、更新の内容を記録したログである。

この用語の過去問 2 題 ロールフォワード

「ロールバック」と「ロールフォワード」の違い

観点ロールバックロールフォワード
決め手対象正常に終わらなかったトランザクションコミット済みのトランザクション
出発点現在のデータベースバックアップなど過去の時点の内容
使うログの値更新前の値更新後の値
時間の向きさかのぼる (後退復帰)進める (前進復帰)

フォワードリカバリは、ロールフォワードによってデータベースを障害直前の状態まで進める回復の方式で、前進復帰とも呼ぶ。

出発点はバックアップのような過去の時点のデータで、ログの更新後の値を使って時間を順方向にたどる。中身はロールフォワードと同じで、こちらは前へ進む向きを名前にしている。

出題のポイント

  • 混同注意ディスクの破損でデータそのものが失われたときに用いるのはフォワードリカバリである。バックワードリカバリは、今あるデータベースが失われずに使えることを前提にする。

この用語の過去問 1 題 フォワードリカバリ

要点

  • チェックポイントでメモリ上の更新をディスクへ書き出しておくと、回復はその時点から始められる。
  • ロールバックはバックワードリカバリの操作で、ログの更新前の値を使って更新を取り消す。
  • ロールフォワードはフォワードリカバリの操作で、過去の時点のデータにログの更新後の値を適用し直す。
  • 回復の材料はログで、バックアップだけでは取得後の更新を再現できない。

確認問題

この単元の過去問から 4 題

確認問題を解く

この分野の過去問をすべて見る