オリジナル模擬試験2 問33

DBMSをシステム障害発生後に再立上げするとき,前進復帰(ロールフォワード)すべきトランザクションと後退復帰(ロールバック)すべきトランザクションの組合せとして,適切なものはどれか。ここで,トランザクションの中で実行される処理内容は次のとおりとする。
33.gif

33a.gif
正解 問題へ
分野:テクノロジ系
中分類:データベース
小分類:トランザクション処理
解説
DBMSは、ディスクに対する入出力効率を向上させるために、トランザクションの更新をメモリ上のバッファとログファイルに記憶しておき、一定の間隔ごとにまとめてディスクに反映させるという方式をとっています。このディスクと同期を取るタイミングをチェックポイントといいます。トランザクションがコミットされたとき、ログファイルは同時に書き出されますがディスクへの反映はチェックポイントを待つということになります。

システム障害が発生すると、チェックポイント以降にコミットされたトランザクションがディスクに反映されていないため、更新後ログを使用して障害発生直前の状態まで前進復帰(ロールフォワード)を行います。また障害発生時にコミットされていないトランザクションは、ACID特性の原子性に基づき更新前ログを使用した後退復帰(ロールバック)でトランザクション開始時点の状態に戻します。

図を見ると、チェックポイントからシステム障害までの間にコミットされているT2およびT5が前進復帰、障害発生時にトランザクション中のT3,T4,T6が後退復帰の対象であることになります。ただしT3,T4は読込みだけでデータベースの更新を行っていないため特に回復の必要はなく対象から除外されます。

したがって、前進復帰で回復するのがT2,T5、後退復帰で回復するのがT6のみということになります。

出典


Pagetop