リリース情報


|13.3 データベース・リカバリーのための中断入出力の使用方法

| | | | |

|db2inidb ユーティリティーに関する下記の情報を、『バージョン 7.2 新着情報』に |記載されている情報と置き換えてください。

|db2inidb は DB2 に添付されて出荷されるツールで、クラッシュ・リカバリーを実行したり、 |データベースをロールフォワード保留状態にしたりできます。

|中断入出力は、連続的なシステム使用可能性を、オンライン分割ミラー・ハンドリングの |フル・インプリメンテーション (つまりデータベースをシャットダウンせずにミラーを |分割) を提供することでサポートします。大きなデータベースでバックアップをオンラインまたは |オフラインにすることが難しい場合は、中断入出力と分割ミラーを使用してミラー・イメージから |バックアップまたはシステム・コピーを取ることができます。

|中断入出力は、データベースの分割ミラー・イメージを取っているときのディスク書き込みを防止します。 |データベースが中断している間、 |オンライン・バックアップおよびリストア以外のすべてのデータベース操作は通常どおり機能します。 |ただし、ダーティー・ページをバッファー・プールまたはログ・バッファーから |ログにフラッシュする場合、入出力書き込みを待機できる操作もあります。 |通常、データベース入出力が再開してから、これらの操作を再開する必要があります。 |データベース入出力が、元々中断されていた接続と同じ接続で再開されることが重要です。 |同じ接続でないと、後続の接続試行でダーティー・ページをバッファー・プールからディスクに |フラッシュしなければならない場合にハングする可能性があります。これらの接続は、 |データベース入出力が再開されると完了します。 |接続試行がハングし、入出力の中断に使用した接続から入出力を再開できなくなった場合は、 |RESTART コマンドの WRITE RESUME オプションを使用してクラッシュ・リカバリーを実行しなければなりません。

|区分データベース環境では、必ずしもすべての区画で同時に入出力書き込みを |中断する必要はありません。分割ミラーを作成してオフライン・バックアップを実行する |ために、1 以上の区画のサブセットを中断することができます。このサブセットにカタログ・ノードが |含まれている場合は、それを最後の中断区画にする必要があります。

|データベースのミラーリングでは、主として、データベース・ディレクトリーの内容全体のコピー、 |およびローカル・データベース・ディレクトリーのコピーが行われます。 |ローカル・データベース・ディレクトリー sqldbdir は、 |メイン・データベース・ディレクトリーと同じレベルのファイル構造に入っています。また、 |ログ・ディレクトリーと表スペース・コンテナーがデータベース・ディレクトリーに入っていない場合は、 |それらもコピーする必要があります。分割ミラーリングされたデータベースはこれらのディレクトリー・ |パスに従属しているため、これらのディレクトリーのコピー先のパスは、1 次システムのディレクトリーと |同じにする必要があります。つまり、インスタンスも同じでなければなりません。 |この従属関係のため、db2inidb ツールの新規 『relocate』 オプションが |使用されていない限り、1 次データベースと同じシステム上にミラー・データベースを作成することはできません。

|『relocate』 オプションの目的は、指定された構成ファイルを使用して、 |指定のシステム上のデータベースを再配置することです。この操作では、 |内部データベース・ディレクトリー、コンテナー・ディレクトリー、ログ・ディレクトリー、 |インスタンス名、およびデータベース名の変更が行われます。データベース・ディレクトリー、コンテナー・ディレクトリー、および |ログ・ディレクトリーが、同じシステム上の異なるディレクトリー・パスに |1 次データベースとして正常にミラーリングされたと想定すると、 |db2inidb ツールを 『relocate』 オプションと一緒に使用して、 |ミラーリングされたデータベースの内部パスを変更することができます。 |このオプションの使用法は以下の通りです。

|ストレージ装置のミラーリングの度合いによって、db2inidb の使用法は変わります。 |以下の使用法では、データベース全体がストレージ・システムを通じて一貫してミラーリングされていることを |想定しています。

|マルチノード環境で、いずれかの区画から分割ミラーを使用できるようにするには、 |db2inidb ツールを区画それぞれで実行する必要があります。 |db2_all コマンドを使用して、db2inidb ツールを |すべての区画で同時に実行することができます。 |

  1. |

    |複製データベースの作成

    |この目的は、1 次データベースの |複製を他のシステムで使用できるようにすることです。 |複製データベースの作成手順は以下の通りです。

    1. |次のコマンドを入力して、1 次データベースで入出力書き込みを中断します。
      |     db2 set write suspend for database
    2. |オペレーティング・システム・レベル・コマンドとディスク・サブシステム・レベル・コマンド |を使用して、1 次データベースからミラーを分割します。データとログの両方を分割します。
    3. |次のコマンドを入力して、1 次データベースで入出力書き込みを再開します。
      |     db2 set write resume for database

      |コマンドの実行後、1 次データベースは正常な状態に戻るはずです。

    4. |1 次データベースの分割ミラーを別のシステムにマウントします。
    5. |次のコマンドを入力して、他方のシステムでデータベース・インスタンスを開始します。
      |     db2start
    6. |次のコマンドを入力して、DB2 クラッシュ・リカバリーを開始します。
      |db2inidb database_name AS  SNAPSHOT
      
      |注:
      このコマンドは、 |中断書き込み状態を除去し、分割時に実行されていたトランザクションが行った変更をロールバックします。 |
      |

    |このプロセスを使用してオフライン・バックアップも実行することができますが、1 次データベース |にリストアした場合は、ログ・チェーンが一致しないので、このバックアップを使用して |ロールフォワードを実行することはできません。

  2. |

    |スタンバイ・データベースとしての分割ミラーの使用

    |ミラーリングされた (スタンバイ・) データベースはログを通じて絶えず |ロールフォワードするため、1 次データベースで作成される新しいログは、1 次システムから |絶えずフェッチされます。分割ミラーをスタンバイ・データベースとして使用する |方法は以下の通りです。

    1. |1 次データベース上での入出力書き込みを中断します。
      |	db2 set write suspend for database
    2. |オペレーティング・システム・レベル・コマンドとディスク・サブシステム・レベル・コマンド |を使用して、1 次データベースからミラーを分割します。データだけを分割し、ログを分割しないようにします。
    3. |1 次データベースで入出力書き込みを再開し、1 次データベースが正常処理に戻るようにします。
      |	db2 set write resume for database
    4. |データベースの分割ミラーを別のシステムにマウントします。
    5. |db2start コマンドを使用して、1 次データベース・インスタンスを開始します。
    6. |ミラーをロールフォワード保留状態にして、ミラーをロールフォワードします。
      |	db2inidb database_name AS STANDBY

      |注:
      このコマンドは、 |中断書き込み状態を除去し、ミラーリングされたデータベースをロールフォワード保留状態にします。 |
    7. |ユーザー出口プログラムをセットアップしてログをコピーし、1 次システムから |ログ・ファイルを検索します。これにより、このミラーリングされたデータベースで |最新ログを使用できるようにします。
    8. |データベースをログの終わりまでロールフォワードします。
    9. |ステップ f に戻り、1 次データベースがダウンするまでこのプロセスを繰り返します。
    10. |データベースをログの終わりまでロールフォワードし、AND STOP オプションを使用してデータベースをオンラインに戻します。 |これで使用できるようになります。 |
  3. |

    |バックアップ・イメージとしての分割ミラーの使用

    |ミラーリングされたデータベースを 1 次データベースに対して |リストアするためのバックアップ・イメージとして使用する方法は、以下の通りです。 |

    1. |db2stop コマンドを使用して、1 次データベース・インスタンスを停止します。
    2. |オペレーティング・システム・コマンドとディスク・サブシステム・コマンドを使用して、 |ミラーリングされたデータとログを 1 次データベースの最上部にコピーします。ログ・ファイルをコピーしないでください。 |1 次データベースのログは、ロールフォワード操作に使用しなければなりません。
    3. |db2start コマンドを使用して、1 次データベース・インスタンスを開始します。
    4. |次のコマンドを実行して、ミラーリングされたデータベースをロールフォワード保留状態にし、 |書き込み中断状態を除去します。
      |db2inidb database_name AS MIRROR
    5. |データベースをログの終わりまでロールフォワードし、AND STOP オプションを使用してデータベースをオンラインに戻します。 |これで使用できるようになります。 |
  4. |

    |同一システムへの 1 次データベースとしてのミラーの分割

    |db2inidb ツールの 『relocate』 オプションを使用して、データベースを |同じシステムに 1 次データベースとしてミラーリングする方法は、以下の通りです。 |この例では、データベースが新規インスタンスの下で使用されることを想定しています。 |

    1. |新規インスタンスを現行システムに作成します。
    2. |1 次データベース上での入出力書き込みを中断します。
      |	db2 set write suspend for database
    3. |オペレーティング・システム・レベル・コマンドとディスク・サブシステム・レベル・コマンドを使用して、1 次データベースからミラーを分割します。
      |注:
      データベース・ディレクトリー、 |ローカル・データベース・ディレクトリー、コンテナー・ディレクトリー、および |ログ・ディレクトリーを新規インスタンスにコピーする必要があります。 |コンテナー・ディレクトリーまたはログ・ディレクトリーがデータベース・ディレクトリーの下に |存在する場合は、データベース・ディレクトリーとローカル・データベース・ディレクトリーのみをコピーする必要があります。 |
    4. |1 次データベースで入出力書き込みを再開し、1 次データベースが正常処理に戻るようにします。
      |	db2 set write resume for database
    5. |以下の情報より、構成ファイルを作成します。
      | 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_#

      |注:
      LOG_DIR および CONT_PATH フィールドは、ログ・ディレクトリーまたは |コンテナー・ディレクトリーがデータベース・ディレクトリーの外に存在する場合にのみ必要です。 |指定しない場合のデフォルトがゼロである NODENUM を除き、 |その他のフィールドはすべて必須です。 |
    6. |新規に作成したインスタンスからデータベースを開始します。
      |	db2start
    7. |ミラーリングされたデータベースを再配置し、中断状況を除去し、 |ロールフォワード保留状態のミラーを配置します。
      |	db2inidb database_name as STANDBY relocate using config_file
    8. |ユーザー出口プログラムをセットアップしてログをコピーし、1 次データベースから |ログ・ファイルを検索します。これにより、このミラーリングされたデータベースで |最新ログを使用できるようにします。
    9. |データベースをログの終わりまでロールフォワードします。
    10. |ステップ h に戻り、1 次データベースがダウンするまでこのプロセスを繰り返します。
    11. |データベースをログの終わりまでロールフォワードし、AND STOP オプションを使用してデータベースをオンラインに戻します。 |これで使用できるようになります。 |
    |


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]