HOME»ソフトウェア開発技術者平成20年春期»午前問67
ソフトウェア開発技術者平成20年春期 午前問67
問67
DBMSをシステム障害発生後に再立上げするとき,前進復帰(ロールフォワード)すべきトランザクションと後退復帰(ロールバック)すべきトランザクションの組合せとして,適切なものはどれか。ここで,トランザクションの中で実行される処理内容は次のとおりとする。
- [出題歴]
- 応用情報技術者 R5秋期 問30
- 応用情報技術者 H28秋期 問30
- ソフトウェア開発技術者 H18春期 問68
分類
テクノロジ系 » データベース » トランザクション処理
正解
ア
解説
トランザクションがコミットされると、DBMSはその更新情報をメモリ上のバッファとログファイルに書き出します。ログファイルについてはディスクへ即時書出しされますが、メモリバッファの内容については入出力効率向上のために、一定の間隔ごとにまとめてディスクに反映する方式をとっています。このディスクと同期を取るタイミングを「チェックポイント」といいます。この仕組みによりチェックポイント以前にコミットしたトランザクションに関してはディスクへの反映が保証されます。
チェックポイント法が使用されているDBMSでは、システム障害の発生後、システムを復帰したときはデータベースがチェックポイントの状態に戻っています。このとき、ロールバックとロールフォーワードを組み合わせて、データベースを障害発生直前の状態に回復する処理が行われます。
チェックポイント法が使用されているDBMSでは、システム障害の発生後、システムを復帰したときはデータベースがチェックポイントの状態に戻っています。このとき、ロールバックとロールフォーワードを組み合わせて、データベースを障害発生直前の状態に回復する処理が行われます。
- ロールフォワード(前進復帰)
- 障害発生前にコミットしたトランザクションは、更新後ログを使って、コミットの内容を反映させる
- ロールバック(後退復帰)
- 障害発生時にコミットされていないトランザクションは、更新前ログを使って、トランザクション開始時の状態に戻す