トランザクションTはチェックポイント取得後に完了し,その後にシステム障害が発生した。
データベースをトランザクションTの終了直後の状態に戻すために用いられる復旧技法はどれか。
ここで,チェックポイントのほかに,トランザクションログが利用できるものとする。
正答4
解説
正解は4です。
システム障害が起きたとき、ログを使ってデータベースを復旧する技法を問う問題です。
トランザクションTはチェックポイントの後に正常に完了しているので、その更新結果をデータベースに反映し直す必要があります。
【選択肢別解説】
1:× 2相ロックは、ロックをかける段階と解除する段階を分けて、同時実行されるトランザクションの整合性を保つ方式です。
障害からの復旧技法ではありません。
2:× トランザクションスケジューリングは、複数のトランザクションの実行順序を制御することです。
障害からの復旧技法ではありません。
3:× ロールバックは、更新前ログを使って、完了していないトランザクションの更新を取り消す技法です。
完了済みのTの結果を再現する目的には使いません。
4:○ ロールフォワードは、チェックポイント時点の状態に更新後ログを順に適用して、更新をやり直す技法です。
完了済みのTの終了直後の状態まで戻せるので正しいです。
【ポイント】
障害時点で完了していたトランザクションはロールフォワード(更新後ログ)、未完了のものはロールバック(更新前ログ)で処理します。
チェックポイントより前に完了したものは、すでにデータベースに書き込まれているので処理は不要です。