0
1

[DBMS] ロールバックとロールフォワードについて

Last updated at Posted at 2024-08-10

ロールバック

障害発生時点からチェックポイントまで、時間を遡ってログファイルを確認し、更新ログを用いてundo※1する。

※1:COMMIT済以外のトランザクションの更新を、ログに記録された更新の値(更新前情報、ログ)を用いてもとに戻す方法

ロールフォワード

チェックポイントからCOMMIT済のトランザクションまで、時間に沿ってログファイルを確認してし、更新ログを用いてredo※2する。

※2:COMMIT済のトランザクションによる更新を、ログに記録された更新の値(更新後情報、ログ)を用いてもとに更新する方法

一覧

障害 処理
トランザクション障害 ロールバック ①更新ログでトランザクション前に戻す
媒体障害 ロールフォワード ①バックアップファイルでバックアップ時点に戻す
②更新ログでトランザクションを適用する

例1

image.png

T1

チェックポイント前にCOMMIT済のため、リスタート不要。

T2

チェックポイントから障害発生時点の間に、COMMIT済のためロールフォワードによってリスタート。

T3

障害発生時にトランザクション実行中のため、ロールバックによってリスタート。
しかし、データベースへの書込み処理がないため、更新前後のデータを色くしたログ(ジャーナルファイル)が生成されないため、ロールバック対象外。

T4

障害発生時にトランザクション実行中のため、ロールバックによってリスタート。
しかし、データベースへの書込み処理がないため、更新前後のデータを色くしたログ(ジャーナルファイル)が生成されないため、ロールバック対象外。

T5

チェックポイントから障害発生時点の間に、COMMIT済のためロールフォワードによってリスタート。

T6

障害発生時にトランザクション実行中のため、ロールバックによってリスタート。

参考リンク

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1