【ばっくわーどりかばり】
バックワードリカバリ とは?
最終更新:
💡 途中で失敗した処理の更新を取り消す回復方法
障害などで完了できなかった処理の更新を取り消し、データの整合性を回復する手法。更新前の情報などを使って取り消すUNDOに相当し、ログの形式や回復手順はシステムによって異なる。
📌 このページのポイント
- 未完了の処理による更新を取り消し、整合性を回復する
- 更新前の情報などを使って取り消す処理をUNDOと呼ぶ
- 更新を再適用するREDOと、回復の中で組み合わせる場合がある
- チェックポイントは回復の手がかりで、そこへ全更新を戻す意味ではない
バックワードリカバリで、何を戻すの?
途中で失敗した処理の更新を取り消すよ。たとえば振込の途中で口座から引き落としたのに、振込処理を完了できなかった場合、その処理による引き落としを戻して整合性を保つイメージだね。
どうやって取り消すの?
更新前の情報など、取り消しに必要な記録を使うんだ。IBMのCICSでは更新前イメージを記録し、更新を戻す。取り消しはUNDOと呼ばれるけれど、すべてのデータベースが同じ形式のログで行うわけではないよ。
フォワードリカバリとは、どう違うの?
チェックポイントまで戻せばいいの?
そういう意味ではないよ。Oracleでは、チェックポイントが変更の再適用を始める位置の手がかりになる。完了済みの処理を残し、未完了の処理を取り消すので、全データをチェックポイント当時の状態へ巻き戻すわけではないんだ。
回復は自動で動くの?
まとめ:ざっくりこれだけ覚えればOK!
「バックワードリカバリ」って出てきたら「未完了の処理の更新を取り消す回復方法」と思えばだいたいOK!
📖 おまけ:英語の意味
「Backward Recovery」 = 後方回復
💬 Backwardは後方へ、Recoveryは回復。記録を使って更新を取り消す方向を表すよ。完了済みの他の処理まで、障害前のある時点へ一律に戻すという意味ではないんだ。