平成28年秋期試験問題 午前Ⅰ 問10
問10解説へ
DBMSをシステム障害発生後に再立上げするとき,ロールフォワードすべきトランザクションとロールバックすべきトランザクションの組合せとして,適切なものはどれか。ここで,トランザクションの中で実行される処理内容は次のとおりとする。


正解 ア問題へ
分野:テクノロジ系
中分類:データベース
小分類:トランザクション処理
中分類:データベース
小分類:トランザクション処理
広告
解説
トランザクションがコミットされると、DBMSはその更新情報をメモリ上のバッファとログファイルに書き出します。ログファイルについてはディスクへ即時書出しされますが、メモリバッファの内容については入出力効率向上のために、一定の間隔ごとにまとめてディスクに反映する方式をとっています。このディスクと同期を取るタイミングを「チェックポイント」といいます。この仕組みによりチェックポイント以前にコミットしたトランザクションに関してはディスクへの反映が保証されます。
チェックポイント法を用いると、システム障害が発生した場合、ロールバック/ロールフォワードの対象を最後のチェックポイントから障害発生時点の間に実行していたトランザクションに限定できます。これによって障害発生直前の状態へと効率良く回復を行えます。
システム障害が発生すると、チェックポイントより後にコミットされたトランザクションがディスクに反映されていないため、更新後ログを使用して障害発生直前の状態までロールフォワード(前進復帰)を行います。また障害発生時にコミットされていないトランザクションは、ACID特性の原子性に基づき更新前ログを使用したロールバック(後退復帰)でトランザクション開始時点の状態に戻します。
図を見ると、チェックポイントからシステム障害までの間にコミットされているT2およびT5がロールフォワード、障害発生時にトランザクション中のT3,T4,T6がロールバックの対象であることになります。ただしT3,T4は読込みだけでデータベースの更新を行っていないため特に回復の必要はなく対象から除外されます。
以上より、前進復帰で回復するのが「T2,T5」、後退復帰でトランザクション開始前に戻すのが「T6」と判断できます。したがって正しい組合せは「ア」です。
チェックポイント法を用いると、システム障害が発生した場合、ロールバック/ロールフォワードの対象を最後のチェックポイントから障害発生時点の間に実行していたトランザクションに限定できます。これによって障害発生直前の状態へと効率良く回復を行えます。
システム障害が発生すると、チェックポイントより後にコミットされたトランザクションがディスクに反映されていないため、更新後ログを使用して障害発生直前の状態までロールフォワード(前進復帰)を行います。また障害発生時にコミットされていないトランザクションは、ACID特性の原子性に基づき更新前ログを使用したロールバック(後退復帰)でトランザクション開始時点の状態に戻します。


広告