ロールバック
障害発生時点からチェックポイントまで、時間を遡ってログファイルを確認し、更新前ログを用いてundo※1する。
※1:COMMIT済以外のトランザクションの更新を、ログに記録された更新前の値(更新前情報、ログ)を用いてもとに戻す方法
ロールフォワード
チェックポイントからCOMMIT済のトランザクションまで、時間に沿ってログファイルを確認してし、更新後ログを用いてredo※2する。
※2:COMMIT済のトランザクションによる更新を、ログに記録された更新後の値(更新後情報、ログ)を用いてもとに更新する方法
一覧
障害 | 処理 | |
---|---|---|
トランザクション障害 | ロールバック | ①更新前ログでトランザクション前に戻す |
媒体障害 | ロールフォワード | ①バックアップファイルでバックアップ時点に戻す ②更新後ログでトランザクションを適用する |
例1
T1
チェックポイント前にCOMMIT済のため、リスタート不要。
T2
チェックポイントから障害発生時点の間に、COMMIT済のためロールフォワードによってリスタート。
T3
障害発生時にトランザクション実行中のため、ロールバックによってリスタート。
しかし、データベースへの書込み処理がないため、更新前後のデータを色くしたログ(ジャーナルファイル)が生成されないため、ロールバック対象外。
T4
障害発生時にトランザクション実行中のため、ロールバックによってリスタート。
しかし、データベースへの書込み処理がないため、更新前後のデータを色くしたログ(ジャーナルファイル)が生成されないため、ロールバック対象外。
T5
チェックポイントから障害発生時点の間に、COMMIT済のためロールフォワードによってリスタート。
T6
障害発生時にトランザクション実行中のため、ロールバックによってリスタート。