表および表スペースのバックアップおよび回復の実行時に起きる可能性のある問題の解決を考慮するときに、 注意すべきいくつかの概念があります。 その概念には以下のものが含まれます。
ログ記録と回復の概念の付加的な詳細については、管理の手引き: 計画 を参照してください。
バックアップ、復元、ロールフォワード、 およびログ記録の詳細については、管理の手引き: インプリメンテーション を参照してください。
簡単に再作成できるデータの場合は、回復不能データベースにそのデータを保管しても構いません。 以下に例を示します。
簡単に再作成できないデータの場合は、回復可能データベースにそのデータを保管しなければなりません。 以下に、回復可能データベースに入れるべきデータの例を示します。
どのデータベースにも、関連したログがあります。 そのログに、データベースの変更のレコードが保管されます。 最後の完全なオフライン・バックアップの時点より前の状態にデータベースを復元する必要が生じた場合、 ログを使って、データをエラー地点までロールフォワードする必要があります。
DB2 のログ記録には、 循環 およびアーカイブ という 2 つのタイプがあり、 それぞれ異なるレベルの回復機能を備えています。
新規のデータベース作成時のデフォルトの動作は、循環 ログです。 このログ記録タイプでは、データベースの完全なオフライン・バックアップのみが有効です。 その名前が示すとおり、循環ログは、「輪」になったオンライン・ログを使って、 トランザクションの障害やシステム・クラッシュからの回復を図ります。 ログが使用および保存されるのは、 現行のトランザクションの保全性を保証できる地点までのみです。 循環ログの場合、最後の完全バックアップ以前のトランザクションまでデータベースをロールフォワードすることはできません。 メディアの障害や災害からの回復は、 完全なオフライン・バックアップからの復元によって行われます。 最後のバックアップ以後に行われた変更はすべて失われます。 全バックアップをとるときは、 データベースをオフライン (ユーザーからアクセス不能) にしなければなりません。 このタイプの復元は、特定の時点の全バックアップでデータを回復するので、 バージョン回復 と呼ばれます。
障害 (システム電源またはアプリケーションのエラー) が原因でデータベースが不整合な状態のままにならないように、 破損回復時にはアクティブ・ ログが使われます。 RESTART DATABASE コマンドはアクティブ・ログを使って、必要があれば、 整合性があり使用可能な状態にデータベースを変えます。 障害のためにコミットされないままこのログに記録されている変更内容は、 破損回復時にロールバックされます。 コミット済みであっても、 メモリー (バッファー・プール) からディスク (データベース・コンテナー) に物理的に書き込まれていない変更は、 再実行されます。 これらのアクションによって、データベースの保全性が保たれます。 また、ROLLFORWARD DATABASE コマンドは、必要があれば、 時刻指定回復またはログ末尾までの回復でもアクティブ・ログを使います。 アクティブ・ログは、データベース・ログ・パス・ディレクトリーに入っています。
ロールフォワード回復には、特にアーカイブ・ログが使われます。 アーカイブ・ログには次のようなものがあります。
バージョン回復およびロールフォワード回復の方式では、 さまざまな回復地点を利用することができます。 バージョン方式では、 スケジュールどおりの時刻にデータベースの全データベース・バックアップ・コピーがオフラインでとられます。 この方式を使用する場合、回復されたデータベースは、 復元元のバックアップ・コピーと同じ時点のものでしかありません。 たとえば、毎日終業時にバックアップ・コピーをとっていても、 翌日の業務の途中でデータベースを失うと、半日分の変更を失ってしまいます。
ロールフォワード回復方式では、データベースに加えられた変更は、ログに記録されます。 この方式の場合、まずバックアップ・コピーを使ってデータベースまたは表スペースを復元してから、 ログを使って、そのバックアップ・コピーの作成時以後にデータベースに加えられた変更を再適用します。
ロールフォワード回復を使用可能にすると、 オンライン・バックアップと表スペース・レベル・バックアップの利点を活用することができます。 全データベース回復および表スペース・ロールフォワード回復の場合、 ログの末尾までの回復または指定時刻までの回復のどちらでも選択することができます。 たとえば、アプリケーションがデータベースを破壊した場合、 まずそのデータベースの復元コピーから始めて、 そのアプリケーションの開始の直前まで戻って変更をロールフォワードすることができます。 指定した時刻以後にログに書き込まれた作業単位は再適用されません。
また、ログの末尾または特定の時点のどちらかまで表スペースをロールフォワードすることもできます。