データベーススペシャリスト(2025/05/26)障害管理

ページに広告が含まれる場合があります。

データベース管理システム(DBMS)において、障害管理は非常に重要な役割を果たします。これは、トランザクションのACID特性のうち、「D(Durability=耐久性)」に対応する機能です。


障害管理とは?

障害管理とは、障害(たとえば停電やシステム障害)によってデータが失われないようにするための仕組みです。ACID特性の中でも「D:耐久性」に関わる部分であり、データベースに変更が加えられた後、その変更が確実に保存されるよう保証する必要があります。


コミットとチェックポイント

コミットとは?

コミット(COMMIT)」は、トランザクションの完了を示す命令で、その時点での変更内容をデータベースに反映させる操作です。

ただし、ここで重要なのは以下のポイントです:

  • コミットしても、すぐに補助記憶装置(ディスク)に書き込まれるわけではありません。
  • 実際には、主記憶装置(バッファ)に反映されるだけです。
  • 代わりに、**操作履歴を記録した「ログファイル」**に「更新前」と「更新後」のログが出力され、これは補助記憶装置に保存されます。

チェックポイントとは?

チェックポイント」は、主記憶装置にあるデータ(バッファ)を補助記憶装置に書き込むタイミングのことを指します。

  • コミットとは無関係に、DBMSが自動的に実施します。
  • 実行タイミングの例:
    • 一定時間が経過したとき
    • バッファの空き容量が不足したとき
    • ログファイルが切り替わったとき

チェックポイントによって、データベースの内容がディスクに保存されるため、障害発生時の復旧処理が高速化されます。


ロールフォワードとは?

障害が発生した場合、データを復旧する手段のひとつが「ロールフォワード(Roll Forward)」です。

これは、更新後ログを使ってトランザクションの処理を再現(巻き戻し)する手法です。

  • コミット後にチェックポイントが実施されていれば、ロールフォワードは不要です。
  • コミット後にチェックポイントがなければ、更新後ログを使って再実行(ロールフォワード)が必要になります。

バックアップの種類

障害時の復旧に備えるためには、定期的なバックアップが不可欠です。DBMSでは以下の3種類のバックアップ方法が使われます。

1. フルバックアップ

  • データベース全体を保存
  • 容量が大きくなるが、復旧が簡単

2. 差分バックアップ

  • 前回のフルバックアップ以降に変更があったデータだけを保存
  • 復旧時には、フルバックアップ+最新の差分バックアップを使用

3. 増分バックアップ

  • 毎日の変更分だけを保存
  • 容量が最も少ないが、復旧にはフルバックアップ+すべての増分バックアップが必要

まとめ:障害管理の要点

最後に、この記事で解説したポイントを簡単に振り返っておきましょう。

  • コミットでは、主記憶装置にのみデータが反映される
  • コミット時には、更新前ログと更新後ログが補助記憶装置に保存される
  • チェックポイントでは、バッファの内容が補助記憶装置に書き込まれる
  • ロールフォワードは、チェックポイント前にコミットされたデータの復旧に必要
  • バックアップには、フル・差分・増分の3種類がある

コメント

タイトルとURLをコピーしました