トランザクション処理

基本情報技術者試験

【基本情報技術者試験のトランザクション処理の問題】データベース障害における2つの復旧法を図解でマスターする!

2020年1月22日

 

実際に出題された基本情報技術者試験トランザクション処理のテーマに関する過去問と解答、解説をしていきます。

トランザクション処理については、データベースに障害があった場合、取るべき対処やその際に使用するものなどを問う問題が多いです。

ですので、大きく以下2つの用語を理解し、仕組みを理解すればOK!

  1. ロールフォワード
  2. ロールバック

 

まずは、平成30年秋期、基本情報技術者試験に実際に出題された問題を例にを紹介し解説します。

 

トランザクション処理に関する問題例と解説

トランザクション処理に関する問題

データベースが格納されている記憶媒体に故障が発生した場合,バックアップファイルとログを用いてデータベースを回復する操作はどれか。

ア.アーカイブ

イ.コミット

ウ.チェックポイントダンプ

エ.ロールフォワード

出典:基本情報技術者試験 平成30年秋期 問30

答えはエ。

解説します。

 

解説

データベースシステムに障害が起きた時の、復旧方法を問う問題です。

問題文より、

記憶媒体に故障が発生した場合、バックアップファイルとログを用いてデータベースを回復する操作はどれか...

とあるので、ロールフォワードとなります。

 

しかし、データベースシステムに障害が起きた時の、復旧方法は他にロールバックがあります。

次節、データベースシステムの障害とその復旧方法を図解しました。

以下にまとめて書いておきます。

 

データベースシステムの障害とその復旧方法

データベースシステムの障害とその復旧方法

データベースシステムの障害には3つあります。

  1. 媒体障害の場合は「ロールフォワード」
  2. システム障害の場合は「ロールフォワード」
  3. トランザクション障害の場合は「ロールバック」

順番に解説します。

 

1.媒体障害の場合は「ロールフォワード」

媒体障害時における復旧方法

「媒体障害」における復旧方法は「ロールフォワード」です

上図の場合、トランザクションDにおいて「媒体障害」が発生しました。

その具体的な復旧方法は以下2つのファイルを用います。

  • バックアップファイル
  • 更新後ログファイル

更新後ログファイルには、トランザクションBの更新情報が記録されています。

ですので、それをもとにデータベースを更新し、障害発生直前(チェックポイント)の状態に戻します。

 

2.システム障害の場合は「ロールフォワード」

システム障害時における復旧方法

「システム障害」における復旧方法も「ロールフォワード」です

上図の場合、トランザクションDにおいて「システム障害」が発生しました。

まず、直前のチェックポイントまで戻します。

次に、以下ファイルを使用して、トランザクションDが開始される直前の状態まで戻します。

  • 更新後ログファイル

更新後ログファイルには、トランザクションCの更新情報が記録されています。

ですから、その更新後ログファイルを使用してデータベースに反映させます。

 

3.トランザクション障害の場合は「ロールバック」

トランザクション障害

トランザクション障害の場合は「ロールバック」で復旧します。

上図の場合、トランザクションBで障害発生しています。

ですので以下ファイルを用いて、トランザクション開始直前の状態に戻します。

  • 更新前ログファイル

 

ちなみに、ログファイルとは簡単にいえば、これまでDBMSが行ってきた処理の履歴です。

また、チェックポイントとは、DBMSは、ある時間間隔でデータ操作結果をデータベースに書き込んでいます

このタイミングのことをチェックポイントと呼びます。

 

では、ここでよく出てくる「トランザクション」とは何か?

なぜ復旧が必要なの?

次節、トランザクションや復旧の必要性について詳しく解説します。

 

トランザクションや復旧の必要性

まず、トランザクションとはデータベースに対するひとかたまりの処理のこと

例えば、A君の銀行口座からB君の銀行口座にお金を10万円振り込む場合、これを一連の流れとして1つのトランザクションとして考えます。

トランザクション

しかし、A君の口座から10万円をマイナス処理したものの、次のB君の口座に10万円をプラスする処理で障害が発生した場合には、データベースの内容に矛盾が生じることとなります。

トランザクション障害発生

ですので、こういったデータの矛盾を解決するために「ロールバック」や「ロールフォワード」といったデータベース回復手法が用いられるのです

 

まとめ

基本情報技術者試験のトランザクション処理の問題や解説をしてきました。

  • ロールバック:更新ログを使用し、トランザクション開始直前の状態に戻す復旧処理
  • ロールフォワード:更新ログを使用し、チェックポイントやトランザクション開始直前の状態に戻す復旧処理

更新前ログまたは更新ログを使うかは、復旧処理ごとに異なりますので注意が必要です。

また、解説した3つの障害(媒体障害、システム障害、トランザクション障害)の復旧方法についても理解しておきましょう。

 

人気記事【基本情報技術者試験の過去問(午前)】何年分解けばいい?よく出る問題をランキング形式で紹介し解説!

 

この記事はいかがでしたでしょうか✨?

-基本情報技術者試験

© 2020 お仕事講座-マー坊ブログ