情報処理安全確保支援士令和5年秋期 午前T 問9

問9

DBMSをシステム障害発生後に再立上げするとき,ロールフォワードすべきトランザクションとロールバックすべきトランザクションの組合せとして,適切なものはどれか。ここで,トランザクションの中で実行される処理内容は次のとおりとする。
am1/30.gif/image-size:451×370
  • am1/30a.gif/image-size:297×154

            
  • [出典]
  • 応用情報技術者
    令和5年秋期 問30と同題

分類

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

正解

解説

トランザクションがコミットされると、DBMSはその更新情報をメモリ上のバッファとログファイルに書き出します。ログファイルについてはディスクへ即時書出しされますが、メモリバッファの内容については入出力効率向上のために、一定の間隔ごとにまとめてディスクに反映する方式をとっています。このディスクと同期を取るタイミングを「チェックポイント」といいます。この仕組みによりチェックポイント以前にコミットしたトランザクションに関してはディスクへの反映が保証されます。

チェックポイント法が使用されているDBMSでは、システム障害の発生後、システムを復帰したときはデータベースがチェックポイントの状態に戻っています。このとき、ロールバックとロールフォーワードを組み合わせて、データベースを障害発生直前の状態に回復する処理が行われます。
ロールフォワード(前進復帰)
障害発生前にコミットしたトランザクションは、更新後ログを使って、コミットの内容を反映させる
ロールバック(後退復帰)
障害発生時にコミットされていないトランザクションは、更新前ログを使って、トランザクション開始時の状態に戻す
図を見ると、T1はチェックポイント前にコミットしているのでリカバリは不要、チェックポイントから障害発生までの間にコミットされているT2・T5がロールフォワード、障害発生時にトランザクション実行中のT3・T4・T6がロールバックの対象ということになります。しかし、トランザクションの処理内容を考えると、T3とT4はデータベースへの書込みがないため何ら元に戻す必要がありません。したがって、この2つのトランザクションはリカバリの対象外です。
am1/30_2.gif/image-size:433×94
以上より、ロールフォワードで回復するのが「T2,T5」、ロールバックでトランザクション開始前に戻すのが「T6」となります。したがって「ア」が正しい組合せです。
© 2014-2023 情報処理安全確保支援士ドットコム All Rights Reserved.

Pagetop