|第 8 章「データベース・リカバリー」に、中断入出力関数の使用法に関するセクションを追加、更新します。
|db2inidb は DB2 に添付された新しいツールで、クラッシュ・リカバリーを実行でき、また |データベースをロールフォワード保留状態にすることができます。
|中断入出力は、連続的なシステム使用可能性を、オンライン分割ミラー・ハンドリングの |フル・インプリメンテーション (つまりデータベースをシャットダウンせずにミラーを |分割) を提供することでサポートします。大きなデータベースでバックアップをオンラインまたは |オフラインにすることが難しい場合は、中断入出力と分割ミラーを使用してミラー・イメージから |バックアップまたはシステム・コピーを行うことができます。
|中断入出力は、データベースの分割ミラー・イメージが整合性のあるものであることを |確認するためにディスク書き込みを防止します。データベースが使用停止の間、 |オンライン・バックアップおよびリストア以外のすべてのデータベース操作は |通常どおり機能します。ただし、バッファー・プールまたはログ・バッファーから |ログにダーティー・ページをフラッシュしようとしてハングする操作もいくつかあります。 |通常、データベース入出力が再開してから、これらの操作を再開する必要があります。 |データベース入出力が、元々中断されていた接続と同じ接続で再開されることが重要です。 |同じ接続でないと、バッファー・プールからディスクにダーティー・ページを |フラッシュする要求を行った場合に、ハングする可能性があります。
|データベースのミラーリングは主として、データベース・ディレクトリーの |内容をすべてコピーすることです。ログ・ディレクトリーおよび表スペース・コンテナーが |データベース・ディレクトリーにない場合は、それらをコピーすることもまた必要です。 |分割ミラーリングされたデータベースはこれらのディレクトリー・パスに従属しているため、 |これらのディレクトリーのコピー先のパスは、1 次システムのディレクトリーと同じにする |必要があります。つまり、インスタンスは同じでなければなりません。 |この従属関係のため、db2inidb ツールの新規 "relocate" オプションが |使用されているのでなければ、同じシステム上のデータベースを 1 次システムとして |ミラーリングすることはできません。
|"relocate" オプションの目的は、指定された構成ファイルを使用して、 |指定のシステム上のデータベースを再配置することです。これには、内部データベース・ディレクトリー、 |コンテナー・ディレクトリー名、ログ・ディレクトリーの変更、 |インスタンス名の変更、およびデータベース名の変更が関係します。 |データベース・ディレクトリー、コンテナー・ディレクトリー、および |ログ・ディレクトリーが、同じシステム上の異なるディレクトリー・パスに |1 次データベースとして正常にミラーリングされたと想定すると、 |db2inidb ツールを "relocate" オプションと一緒に使用して、 |ミラーリングされたデータベースの内部パスを変更することができます。 |このオプションの使用法は以下の通りです。
|ストレージ装置のミラーリングの度合いによって、db2inidb の使用法は変わります。 |以下の使用法では、データベース全体がストレージ・システムを通じて一貫してミラーリングされていることを |想定しています。
|マルチノード環境で、いずれかの区分から分割イメージを使用できるようにするには、 |db2inidb ツールを区分それぞれで実行する必要があります。 |db2inidb ツールは、すべての区分で同時に実行することができます。
|この目的は、1 次データベースの |レプリケーションを読み取りに使用することです。 |レプリケーション・データベースの作成手順は以下の通りです。
| db2 set write suspend for database
| db2 set write resume for database
|コマンドの実行後、1 次データベースは正常な状態に戻るはずです。
| db2start
|db2inidb database_name AS SNAPSHOT
|
|この処理はオフライン・バックアップにも使用することができますが、 |1 次データベースにリストアする場合、ログ・チェーンが一致しないために、このバックアップを |ロールフォワードに使用することはできません。 |
|ミラーリングされた (スタンドバイ) データベースは |ログを通じて連続的にロールフォワードするため、1 次データベースで作成されている新しいログは、 |1 次システムから絶えずフェッチされます。分割ミラーをスタンドバイ・データベースとして使用する |方法は以下の通りです。
| db2 set write suspend for database
| db2 set write resume for database
| db2inidb database_name AS STANDBY
|
|ミラーリングされたデータベースを 1 次データベースに対して |リストアするためのバックアップ・イメージとして使用する方法は、以下の通りです。 |
| db2start
|db2inidb database_name AS MIRROR
|db2inidb ツールの "relocate" オプションを使用して、データベースを |同じシステムに 1 次データベースとしてミラーリングする方法は、以下の通りです。 |この例では、データベースが新規インスタンスの下で使用されることを想定しています。 |
| db2 set write suspend for database
| db2 set write resume for database
| DB_NAME=<name>,<optional new name> | DB_PATH=<primary db dir path>,<mirrored db dir path> | INSTANCE=<primary instance>,<mirror instance> | LOG_DIR=<primary db log dir>,<mirrored db log dir> | CONT_PATH=<primary db container #1 path>,<mirrored db container #1 path> | ... | CONT_PATH=<primary db container #n path>,<mirrored db container #n path> | NODENUM=<node #>
|
| db2start
| db2inidb database_name as STANDBY relocate using config_file