トランザクション処理 (全51問中37問目)

No.37

DBMSをシステム障害発生後に再立上げするとき,前進復帰(ロールフォワード)すべきトランザクションと後退復帰(ロールバック)すべきトランザクションの組合せとして,適切なものはどれか。ここで,トランザクションの中で実行される処理内容は次のとおりとする。
67.gif/image-size:375×311
  • [この問題の出題歴]
  • 応用情報技術者 H28秋期 問30
  • ソフトウェア開発技術者 H18春期 問68

分類

テクノロジ系 » データベース » トランザクション処理

正解

解説

トランザクションがコミットされると、DBMSはその更新情報をメモリ上のバッファとログファイルに書き出します。ログファイルについてはディスクへ即時書出しされますが、メモリバッファの内容については入出力効率向上のために、一定の間隔ごとにまとめてディスクに反映する方式をとっています。このディスクと同期を取るタイミングを「チェックポイント」といいます。この仕組みによりチェックポイント以前にコミットしたトランザクションに関してはディスクへの反映が保証されます。
チェックポイント法を用いると、システム障害が発生した場合、ロールバック/ロールフォワードの対象を最後のチェックポイントから障害発生時点の間に実行していたトランザクションに限定できます。これによって障害発生直前の状態へと効率良く回復を行えます。

システム障害が発生すると、チェックポイント以降にコミットされたトランザクションがディスクに反映されていないため、更新後ログを使用して障害発生直前の状態まで前進復帰(ロールフォワード)を行います。また障害発生時にコミットされていないトランザクションは、ACID特性の原子性も基づき更新前ログを使用した後退復帰(ロールバック)でトランザクション開始時点の状態に戻します。
67_1.gif/image-size:440×113
図を見ると、チェックポイントからシステム障害までの間にコミットされているT2およびT5が前進復帰、障害発生時にトランザクション中のT3,T4,T6が後退復帰の対象であることになります。ただしT3,T4は読込みだけでデータベースの更新を行っていないため特に回復の必要はなく対象から除外されます。

したがって、前進復帰で回復するのがT2,T5、後退復帰で回復するのがT6のみということになります。
© 2010-2019 応用情報技術者試験ドットコム All Rights Reserved.

Pagetop