更新前ログ・更新後ログとは?こうしんまえログ・こうしんごログ
更新前ログは変更前の値を、更新後ログは変更後の値を記録したもので、前者は取消し(UNDO)、後者は再現(REDO)の材料になる。どちらを適用するかは障害の種類ではなく、そのトランザクションが障害の時点でコミット済みだったかどうかで決まる。
最終更新:2026-10-06
この語が出る過去問を解く →背景
回復処理に必要な操作は一方向ではない。まだ確定していない更新は無かったことにしなければならず、確定したのに媒体へ届いていない更新は先へ進めなければならない。戻す作業には元の値、進める作業には新しい値が要るため、片方だけを記録していては一方の要求を満たせない。だから同じ更新について2種類の値を残す。
具体例
OracleはREDOログとUNDO表領域という別の器に分けて保持する。PostgreSQLはWALに更新後の内容を書き、取消しにあたる働きは追記型の多版同時実行制御(MVCC)が保持する旧版で肩代わりさせる——製品によって持ち方は違うが、前と後の両方の値が要るという原則は共通する。
試験での引っ掛け
ロールバックが使うのは更新前ログ、ロールフォワードが使うのは更新後ログで、この対応を逆に答えさせる出題が非常に多い。媒体障害の回復ではバックアップに更新後ログを重ねて進めるため更新前ログの出番が無い、という点まで押さえておくと取り違えにくい。
関連用語
出た過去問
出典:令和2年度 10月試験 データベーススペシャリスト試験 午前Ⅱ 問4(IPA)解説で登場
DBMSが取得するログに関する記述として、適切なものはどれか。
正解:ロールフォワードに備えて、データベースの更新されたページに対する更新後情報を取得する。
要点:更新前ログはロールバック、更新後ログはロールフォワード
更新前情報(更新前ログ)はトランザクションを取り消すロールバックに使い、更新後情報(更新後ログ)は媒体障害からバックアップを復元した後に更新を再現するロールフォワードに使う。したがってロールフォワードに備えて更新後情報を取得する、とするエが正しい。
出典:令和5年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問15(IPA)解説で登場
a〜cそれぞれの障害に対して、DBMSはロールフォワード又はロールバックを行い回復を図る。適切な回復手法の組合せはどれか。 a デッドロックによるトランザクショ…
正解:a=ロールバック, b=ロールフォワード又はロールバック, c=ロールフォワード
要点:トランザクション障害は戻し、媒体障害は進めて回復する
デッドロックで打ち切られたトランザクションは、開始前の状態へ戻すロールバックで回復する。システム障害では、コミット済みのものはログから再現するロールフォワード、未完了のものはロールバックと使い分ける。媒体障害はバックアップを復元したうえで更新後ログを適用するロールフォワードで回復する。この組合せはイである。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。