目次(まとめ)
◾️ ロールフォワード:バックアップファイルと更新後ジャーナルファイルを使ってデータベースを復元する
◾️ ロールバック:更新前ジャーナルファイルを使って一連の処理に障害が生じる前に戻す
◾️ 参考文献
こんにちは、みっちゃんです。
今回の記事では、データベース自体に起こる障害や、データベースに対して実行する処理に起こる障害に備える仕組みについて紹介します。
ロールフォワード:バックアップファイルと更新後ジャーナルファイルを使ってデータベースを復元する
さまざまなデータを保存し、随時更新されていくデータベースですが、中身のデータが失われないように定期的にバックアップをとります。
バックアップで得られるファイルを「バックアップファイル」といいます。そのままです。
例えば、毎日お昼12時にバックアップファイルをとることを決めているとします。
もし、ある日のお昼12時前にデータベースが故障してしまったりすると、当然、前日のお昼12時から故障するまでにデータベースに加えられた操作は全て失われてしまいます。
このような問題に備えるため「ジャーナルファイル」を使います。
ジャーナルファイルは、データベースに対する更新が行われる度に、更新前と更新後に取得されます(それぞれ、更新前ジャーナルファイル、更新後ジャーナルファイルと呼ばれます)。
上の例では、前日のお昼12時に取得されたバックアップファイルと、それ以降にデータベースが更新された際に取得された更新後ジャーナルファイルを使うことで、故障が起こったときのデータベースの状態を復元することが可能になります。
この一連の復元処理のことを「ロールフォワード」といいます。
ロールバック:更新前ジャーナルファイルを使って一連の処理に障害が生じる前に戻す
データベースには、随時更新が行われます。
例えば、AさんからBさんへと、お金の受け渡しがあるような場合には、「Aさんのお金を減らす」「Bさんのお金を増やす」という処理が必要です。
しかし、後半の「Bさんのお金を増やす」という処理に何らかの障害が生じた場合には、データベースの整合性がおかしくなってしまいます。
このような場合には、更新前ジャーナルファイルを使って、「Aさんのお金を減らす」という処理を行う前の状態にデータベースを戻す必要があります。
この一連の巻き戻し処理のことを「ロールバック」といいます。
参考文献
きたみりゅうじ「キタミ式イラストIT塾 応用情報技術者」技術評論社