応用情報技術者 2024年 春期 午前2 問27
問題文
トランザクションTはチェックポイント後にコミットしたが、その後にシステム障害が発生した。トランザクションTの更新内容をその終了直後の状態にするために用いられる復旧技法はどれか。ここで、トランザクションはWALプロトコルに従い、チェックポイントの他に、トランザクションログを利用する。
選択肢
ア:2相ロック
イ:シャドウページ
ウ:ロールバック
エ:ロールフォワード(正解)
トランザクションの復旧技法【午前2 解説】
要点まとめ
- 結論:トランザクションTの更新内容を終了直後の状態に戻すには「ロールフォワード」が用いられます。
- 根拠:WAL(Write-Ahead Logging)プロトコルとチェックポイント後のコミット済みトランザクションは、ログを使って更新を再適用する復旧が可能です。
- 差がつくポイント:ロールバックは未コミットの変更を取り消す技法であり、コミット済みの更新を反映させるのはロールフォワードである点を理解しましょう。
正解の理由
トランザクションTはチェックポイント後にコミットしているため、その更新内容は永続化されているとは限りません。システム障害後に、ログを参照してコミット済みの更新を再適用し、データベースを終了直後の状態に戻す必要があります。これがロールフォワードの役割です。WALプロトコルにより、ログに記録された更新情報を順に適用することで復旧が可能です。
よくある誤解
ロールバックは障害時に未コミットの変更を取り消す技法であり、コミット済みの更新を反映させるための方法ではありません。シャドウページはページ単位の更新管理であり、ログを使った復旧とは異なります。
解法ステップ
- 問題文から「チェックポイント後にコミット済み」と確認する。
- コミット済みの更新を反映させる復旧技法を考える。
- WALプロトコルによりログが存在することを踏まえる。
- ロールバックは未コミットの取り消し、ロールフォワードはコミット済みの再適用と区別する。
- 選択肢の中から「ロールフォワード」を選ぶ。
選択肢別の誤答解説
- ア: 2相ロック
トランザクションの整合性を保つためのロック制御技法であり、復旧技法ではありません。 - イ: シャドウページ
更新時にページのコピーを作成する方式で、ログを使った復旧とは異なります。 - ウ: ロールバック
未コミットの変更を取り消す技法で、コミット済みの更新を反映させる目的には不適切です。 - エ: ロールフォワード
コミット済みの更新をログから再適用し、障害前の状態に戻す復旧技法です。
補足コラム
WALプロトコルは、データベースの耐障害性を高めるためにログを先にディスクに書き込む方式です。これにより、障害発生時にログを使ってロールフォワードやロールバックを行い、データの整合性を保ちます。チェックポイントは復旧時間短縮のために重要な役割を果たします。
FAQ
Q: ロールフォワードとロールバックの違いは何ですか?
A: ロールフォワードはコミット済みの更新を再適用し、ロールバックは未コミットの変更を取り消します。
A: ロールフォワードはコミット済みの更新を再適用し、ロールバックは未コミットの変更を取り消します。
Q: チェックポイントはなぜ必要ですか?
A: チェックポイントはログの適用範囲を限定し、復旧時間を短縮するために用いられます。
A: チェックポイントはログの適用範囲を限定し、復旧時間を短縮するために用いられます。
関連キーワード: トランザクション復旧、WALプロトコル、ロールフォワード、ロールバック、チェックポイント

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

