トランザクションTはチェックポイント後にコミットしたが,その後にシステム障害が発生した。
トランザクションTの更新内容をその終了直後の状態にするために用いられる復旧技法はどれか。
ここで,トランザクションはWALプロトコルに従い,チェックポイントの他に,トランザクションログを利用する。
正答4
解説
正解は4です。
WAL(Write Ahead Logging)プロトコルでは、データベースを更新する前に、必ず更新内容をログに書き出します。
トランザクションTはチェックポイントの後にコミットしたので、その更新はデータベース本体に反映されていない可能性があります。
コミット済みの更新は、ログを使って再実行し、終了直後の状態に戻す必要があります。
【選択肢別解説】
1:× 2相ロックは、ロックの獲得と解放を2つの段階に分けて直列化可能性を保証する、同時実行制御の方式です。
障害からの復旧技法ではありません。
2:× シャドウページは、更新するページの複製を作って切り替える復旧方式です。
本問はトランザクションログを利用する前提なので当てはまりません。
3:× ロールバックは、更新前ログを使って未コミットのトランザクションの更新を取り消す技法です。
コミット済みのTには用いません。
4:○ ロールフォワードは、チェックポイント時点の状態から更新後ログを使って更新を再実行し、コミット済みの内容を反映する技法です。
【ポイント】
コミット済みのトランザクションは「ロールフォワード(再実行)」、未コミットのトランザクションは「ロールバック(取消し)」で復旧します。
システム障害では、チェックポイント以降のログが復旧の対象になります。