pulpul 日本の試験

システムアーキテクト 概念書 · データベース

データベースの障害回復とバックアップ

データベースの障害回復とは、障害によって失われたり不整合になったりしたデータベースを、整合性のある状態に戻す作業である。回復では、コミット済みの更新を再適用するロールフォワードと、未完了の更新を取り消すロールバックを、障害の種類と更新ログの内容に応じて使い分ける。バックアップは回復の起点となるため、その取得方式とあわせて理解する必要がある。

障害の種類と回復の考え方

システム障害は、ハードウェアやソフトウェアの異常によりDBMSやシステムが停止する障害である。記憶媒体自体は壊れていないため、データベースの内容は残っており、チェックポイント以降の更新ログを使って整合性を戻すことができる。

媒体障害は、ディスクなどの記憶媒体が壊れて、データベースの内容が失われる障害である。この場合は既存のデータベースを使えないため、まずバックアップコピーからデータベースを復元する必要がある。

ロールフォワードとロールバックの判断基準

ロールフォワードは、コミット済みのトランザクションの更新後情報を使って、更新を再適用する操作である。システム障害では、チェックポイント取得後に障害発生前にコミットしたトランザクションが対象になる。

ロールバックは、障害時点で未コミットだったトランザクションの更新前情報を使い、書き込まれた更新を取り消す操作である。読取りだけで書込みを行わないトランザクションは、取り消す更新内容がないため対象にならない。

チェックポイント以前にコミットしたトランザクションは、データベースに反映済みとして扱われるため、通常は回復対象から外れる。チェックポイントは、回復時に読み直すログの範囲を絞るための基準点である。

媒体障害の回復手順

媒体障害からの回復は、まず最新のバックアップを戻し、その後にバックアップ取得後にコミットしたトランザクションをロールフォワードするという順序で行う。ロールフォワードで適用するのは、ログに記録されたコミット済みの更新後情報である。

復元できる時点は、保存されているログの範囲によって決まる。ログが不足していれば、その分の更新は回復できないため、ログの保管期間も運用上の重要な判断基準になる。

この節の続き

ここまでが冒頭部分です。ログインすると、無料でも1日2節まで全文をお読みいただけます。

アプリでこの節を読む