データベースのデータを更新中のトランザクションが、実行途中で異常終了した際、更新中のデータに対して行われる処理はどれか。
ア |
更新処理をなかったことにするために、ロールバックしてトランザクション開始前の状態に回復する。 |
イ |
チェックポイント時点にデータベースを戻し、コミットが完了しているトランザクションの更新をロールフォワードしてデータを回復する。 |
ウ |
トランザクション以上の発生時点までの更新ログ情報を破棄して、開始前の状態に回復する。 |
エ |
トランザクションの更新ログを使って異常終了時点までロールフォワードして回復する。 |
答え ア
【解説】
異常終了したトランザクションで行われたデータの更新を元に戻す処理なので更新処理をなかったことにするために、ロールバックしてトランザクション開始前の状態に回復する。(ア)になります。
イ |
データベースが物理的に壊れたときに行う回復手段です。 |
ウ |
更新ログを破棄しても、データベースはトランザクション開始前の状態には戻りません。 |
エ |
更新ログを使って異常終了時点までロールフォワードしても回復しません。
(問題の分析時に、現象を再現させるためこの処理を行うことがあります。) |
【キーワード】
・ロールフォワード
・ロールバック
【キーワードの解説】
- ロールフォワード(roll forward)
データベースに障害が発生したときに、データベースのバックアップファイルとジャーナル(ログ)ファイルから障害直前のデータまで戻すこと。
- ロールバック(roll back)
データベースに障害が発生したときに、障害の直前に行ったチェックポイント(データを確定させる処理)まで、データを元に戻す処理のことです。
元に戻すための情報として、データベースの操作をしたときの記録(ジャーナル)を使用します。
ジャーナルには、操作前のデータベースの状態を記録する更新前ジャーナルと、操作後の状態を記録する更新後ジャーナルがあります。
チェックポイントはトランザクション処理の完了後に行われることが一般的です。
もっと、「ロールバック」について調べてみよう。
戻る
一覧へ
次へ
|