データベースのバックアップと障害回復
データベースのバックアップは、障害に備えてデータベースの内容を別の媒体に複写しておく作業である。障害回復は、障害発生後にバックアップとトランザクションログを使い、障害直前の整合性が保たれた状態へデータベースを戻す処理である。回復の手順は障害の種類によって異なり、記憶媒体が壊れているかどうかが最初の判断の分かれ目になる。
バックアップ方式と復元の基本
フルバックアップは、データベース全体を一定の時点で複写する方式である。差分バックアップは、直近のフルバックアップ以降に変更されたデータだけを保存する方式である。差分バックアップを使って復旧するには、まずフルバックアップのデータで基準時点の状態に戻し、その後に差分バックアップの内容を反映させる必要があるため、差分データだけで復旧することはできない。 変更量が少ないあいだは、差分バックアップの取得対象がフルバックアップより少なくなるため、取得に要する時間を短くしやすい。ただし差分の対象は基準のフルバックアップ以降に累積していくため、基準の時点から時間がたつほど、差分の取得や反映にかかる時間が増えていく点に注意が必要である。 フルバックアップは全体を一度に戻せるため、復元の手順が単純になるという特徴を持つ。
ログを使う前進復帰と後退復帰
トランザクションログには、データの更新前の値を示す更新前情報と、更新後の値を示す更新後情報が記録される。前進復帰(ロールフォワード)は、コミットを完了したトランザクションの更新を更新後情報によって再実行し、障害直前までに確定した結果をデータベースに反映させる処理である。前進復帰の対象は、チェックポイント以降に障害発生前にコミットしたトランザクションに限られる。 後退復帰(ロールバック)は、障害時に未コミットのトランザクションが行った更新を更新前情報によって取り消し、データベースを矛盾のない状態へ戻す処理である。 一方で、参照だけを行い書込みを伴わないトランザクションには取り消すべき更新が存在しないため、後退復帰の対象にする必要はない。 チェックポイントは、ある時点までの更新をデータベースに反映させたうえで、その時点を回復の起点として記録する仕組みである。チェックポイントを取得しておけば、障害回復時に調べるログの範囲をチェックポイント以降に絞ることができる。
この節の続き
- 障害の種類ごとの回復手順
- 判断の基準: バックアップ間隔と復旧時間
- 実際の場面
- 試験で問われやすい区別
ここまでが冒頭部分です。ログインすると、無料でも1日2節まで全文をお読みいただけます。
アプリでこの節を読む