本文へスキップ
moduhub
39 ツール
ホーム
ツール
紹介
Googleでログイン
KO
EN
JA
図解IT事典
図解IT事典 › データベース › トランザクション
データベース回復手法(Database Recovery)
1. 定義
障害発生時にDBを一貫した状態に復旧するため、ログに基づくREDO・UNDOを行う復元手法
2. REDO(再実行)
障害
ログを読む範囲:最初から障害までのすべて
T1
REDO
T2
REDO
T3
対象外
T4
REDO
T5
対象外
対象
障害の前にCOMMITまで終わったトランザクション(T1、T2、T4)
方法
ログに記録された変更後の値(new value)を前から書き直す
守る性質
永続性(Durability):COMMITされた結果は障害が起きても消えない
3. UNDO(取り消し)
障害
ログを読む範囲:最初から障害までのすべて
T1
対象外
T2
対象外
T3
UNDO
T4
対象外
T5
UNDO
対象
障害の時点でまだ実行中だったトランザクション(T3、T5)
方法
ログに記録された変更前の値(old value)を後ろから書き戻す
守る性質
原子性(Atomicity):途中までの変更はデータベースに残らない
4. ログベース回復手法
即時更新
遅延更新
障害
ログを読む範囲:最初から障害までのすべて
T1
REDO
T2
REDO
T3
UNDO
T4
REDO
T5
UNDO
DBファイルに書く時
COMMIT前にも書くことがある
障害時の処理
COMMITしたT1、T2、T4はREDO、実行中だったT3、T5はUNDO
5. チェックポイント回復手法
即時更新
遅延更新
チェックポイント
障害
ログを読む範囲:チェックポイントから障害まで
T1
スキップ
T2
REDO
T3
UNDO
T4
REDO
T5
UNDO
チェックポイント
その時点までの変更をすべてDBファイルに書き、実行中のトランザクション一覧を残した印
障害時の処理
チェックポイント前に終わったT1はスキップ、T2、T4はREDO、T3、T5はUNDO
点線の範囲
UNDOするT3はチェックポイント前に始まったので、開始記録までさらにさかのぼって読む