Web教材一覧データベース

バックアップ/リカバリー、再編成/再構築

キーワード

バックアップ,リカバリー,ジャーナルファイル,ロールフォワード,ロールバック、再編成、再構築


データベースのバックアップ/リカバリー

万一のトラブルによりデータの整合性を失ったとき,データベースを正しく回復する機能が必要になります。それには,バックアップとリカバリーを行います。

バックアップ

定期的に(それをチェックポイントといいます)に,データベース全体をバックアップファイルにコピーします。その間は,更新が行われるたびに,更新前と更新後の情報をジャーナルファイルログファイルともいう)に記録しておきます。

バックアップには、フルバックアップ差分バックアップがあります。フルアップバックとは、対象となるファイル全体をバックアップすることであり、差分バックアップとは、前回バックアップした後で変化した部分だけをバックアップすることです。
 リカバリー処理の観点では、フルアップバックのほうが効率的なのですが、バックアップ処理の観点では、一般にバックアップ量が大きいので、毎回フルアップバックをするのは時間がかかります。それで、例えば、毎週末にフルバックアップを行い、毎日のバックアップは差分バックアップするようにするのが一般的です。

バックアップでの留意事項を列挙します。

(注)ホットサイトとコールドサイト

遠隔地バックアップセンターは、大きくホットサイトとコールドサイトに区分できます。
 ホットサイトとは、日常から待機状態にしておき障害発生時に直ちに再開できるサイトです。例えば東京と大阪に拠点を置き、双方が互いの処理を代行できる環境にしておき、互いにバックアップデータを交換して、最新の状況にしておきます。
 コールドサイトとは、障害発生時に必要なハードウェアやソフトウェアを持ち込み業務を再開する形態です。社外データセンターのなかには、単にバックデータの保管だけでなく、このようなサービスを提供することもあります。

リカバリー処理

トラブルが発生したときには,リカバリー処理をします。
 リカバリーに似た用語にリストアがありますが、リストアはバックアップしたデータを物理的に「復元」することで、リカバリーは、リストアしたデータに対して、その後の変更内容を反映させ最新の状態(障害発生直前の状態)に「復旧」することです。
 リカバリーには,ロールフォワードとロールバックがあります。

ロールフォワード
データベースに障害が発生したときの対応です。バックアップファイルからデータベースを復元して,ジャーナルファイルにより更新を行い,障害直前の状態にまで回復します。リカバリーの順序が更新と同じ順序で行われます。
ロールフォワードの図
ロールバック
更新中に障害が発生したときの対応です。図では,状態2は正常に完了し,状態3になるときに障害が発生したことを示しています。このときは,ジャーナルファイルに状態2と状態3の違いが残っているので,それを用いて状態2にまで戻します。リカバリーの順序は更新の順と逆になります。
ロールバックの図

データベースの再編成・再構築

上記の障害ではなく通常の利用時でもデータベースの保守が必要になることがあります。その対応に再編成と再構築があります。なお、ここではテーブルについて記述しますが、インデックスでも同様なことが起こり、それらを同時に行う必要があります。

データベースの再編成(再構成)

通常のファイルを削除しても、その領域に消去フラグがつけられるだけで解放されません。そのため、ファイルの創成や削除を繰り返している間に、磁気ディスクには虫食い的な空き領域が散在します。これは磁気ディスクの容量を無駄にするし、処理効率を低下させます。空き領域をまとめて連続領域に並び変える作業がデフラグメンテーション(デフラグ)です。

これと同じ現象がデータベースでも発生します。データの追加、更新、削除を繰り返すと、テーブル内に再利用されない領域が発生します。それを整理する作業をデータベースの再編成あるいは再構成といいます。

データベースの再構築

データベースの再構築とは、データベースを作り直すことで、次の手順で行います。
 ・既存のデータベースをテキストファイルにダンプ(データベースダンプという)し、
 ・必要ならば、新スキーマを作成し、
 ・新スキーマにより、テキストファイルをデータベースにする

次のような場合に再構築が必要になります。

再構築の作業中に旧データベースの更新処理があると、新データベースと整合性がとれなくなるので、作業期間中は利用を止めることになります。そのため、再構築を頻繁に行うのは不適切です。


本シリーズの目次へ