レプリケーション成果物のデプロイ中にエラーに遭遇した場合。
変更を元に戻すために、単一のビジネス指標モデルのデプロイメント内で実行されたアクションを元に戻す必要があります。
すべてのデプロイメントは、複数のステージを経て実行されます。以下に典型的なシナリオを
示します。
- DDL のデプロイメント
- state.ddl をデプロイする。
- runtime.ddl をデプロイする。
- datamart.ddl をデプロイする。
- データ移動サービスのデプロイメント
- State_to_Runtime_setup_source をデプロイする。
- State_to_Runtime_setup_target をデプロイする。
- Runtime_to_historical_setup_source をデプロイする。
- Runtime_to_Historical_setup_target をデプロイする。
実行するアクションを決定するには、障害が発生したポイントを
識別する必要があります。例えば、state.ddl で障害が発生した場合は、単に
トランザクションをロールバックして元の状態に戻すだけで済みます。
しかし、datamart.dll で障害が発生した場合は、datamart.ddl をロールバックしても、
システムは runtime.ddl が正常に実行された後のポイントに戻るだけです。
データ移動サービスのデプロイメントの途中で発生した障害は、
リカバリーが最も困難ですが、不可能ではありません。最初のデプロイメントは
リカバリーが最も容易で、次が新規モデルのデプロイメントです。そして、
変更モデルのデプロイメントのリカバリーは最も困難です。
レプリケーション・スクリプトのデプロイメント・エラーからリカバリーするには、識別、バックアップ、復元または除去、そして再デプロイの各ステージを
実行します。
識別- 発生したエラーを確認し、IBM® サポートに連絡する必要があるかどうかを決定します。
- エラー発生時にデプロイされていたビジネス指標モデルを確認します。
- エラー発生時に作成または変更されていた Schema Generator のテーブルを確認します。
- エラー発生時に作成または変更されていた Schema Generator の成果物を確認します。
- リポジトリー・データベースで、ビジネス指標モデルの最新の有効バージョンを確認します。
- 変更管理のデプロイメントの場合は、以前のバージョンのモデルに対してデプロイされた
成果物のロケーションを確認します。これにより、データベースの構造、
その説明、および相互の関係がわかります。この情報は、
データをバックアップし、後で復元する必要がある場合に重要になる可能性があります。
- 現行成果物およびデプロイメント・ログ・ファイルのロケーションを確認します。
これらの情報は、問題判別のために重要であり、
IBM サポートに提供することになる可能性があります。
- 変更管理のデプロイメントの場合は、任意の CCD テーブルに存在する未処理のデータがあるかどうかを確認します。
WBIRMADM.RMMETADATA テーブル (ランタイム・データベースおよび
ヒストリー・データベースで使用可能) を使用して、デプロイされていたビジネス指標モデル・プロジェクト名 (OM_NAME) を持つ
関連 CCD テーブル (TGT_RM_APP_STG_TAB_NAME) を
判別できます。I または U でマークされた行は、処理されていない可能性があり、バックアップする必要があります。列 SERVICE_NAME には、
CCD テーブルおよびターゲット・テーブルのロケーションが含まれ、単語 to の後の名前が
これを示します。すべての成果物を完全に除去し、完全に新しいセットを生成する場合は、
TGT_TAB_NAME に対する関係の
トラックを保持する必要があります。これは、Schema Generator は、
同じ名前の CCD テーブルを生成しない可能性があり、デプロイメントが成功した後、ユーザーが新規 CCD テーブルに
このデータを復元する必要があるためです。
復元または除去 - 以前のデータベースの復元、または手動による成果物の除去のどちらが容易かを判断します。
- 復元 他のビジネス指標モデルが
存在しない場合、または他のビジネス指標モデルにアクティビティーがない場合は、バックアップされたバージョンからの復元が
有効な可能性があります。以前のデータベース・セットを復元し、それぞれのデータベースに対して再バインドが必要なアプリケーションを再バインドし、すべての Java ベースのストアード・プロシージャーおよびユーザー定義関数を再登録します。
注: - データベースのバックアップおよび復元についての詳細は、
DB2® の資料の『データ・リカバリー』のセクションを参照してください。
- デプロイメントが完了したモデルについては、WBIRMADM.RMMETADATA テーブルに、除去すべきでないものについて情報が
提供されます。ただし、デプロイメント中は、何らかの成果物および関係を決定するために、
デプロイメント・ログを検査し、
安全に除去できるものを判断する必要がある場合があります。
- 除去
- レプリケーション: ヒストリー・データベースとランタイム・データベース
- そのビジネス指標モデルと関連付けられたすべての Capture サーバーを停止します。(Capture サーバーは、ランタイム・データベースおよび状態データベース上で実行します。)
- そのビジネス指標モデルと関連付けられたすべての Apply サーバーを停止します。
- そのビジネス指標モデル用のすべての ETL ストアード・プロシージャーを除去します。
- そのビジネス指標モデルで使用されているすべての ETL ステージング・テーブルを除去します。
- ビジネス指標モデルの対応するターゲット・データベース内の WBIRMADM.RMCONTROL テーブルからすべての ETL 制御情報を除去します。
- そのビジネス指標モデルで使用されているすべての ETL の Prune ストアード・プロシージャーおよびトリガーを除去します。
- WBIRMADM.RMMETADATA テーブルの列 TGT_RM_APP_STG_TAB_NAME にリストされた、
接尾部 _BKUP および _M を持ち、さらにそのビジネス指標モデルに、Runtime_to_Historical (ヒストリー・データベースの場合) および State_to_Runtime (ランタイム・データベースの場合) の 対応する SERVICE_NAME も持つすべてのテーブルを除去します。TGT_RM_APP_STG_TAB_NAME にリストされたテーブルは、後の手順で除去されるため、
残しておきます。
- DB2 Replication Center を使用して、そのビジネス指標モデルにサービスを提供しているすべての Apply Subscription Set のメンバーを除去します。
- Apply subscription set が空の場合は、そのサブスクリプション・セットを除去します。
- Apply サーバーにサブスクリプション・セットがない場合は、Apply サーバーを除去します。
- WBIRMADM.RMMETADATA テーブルから、そのビジネス指標モデルと関連付けられたすべてのメタデータ・エントリーを除去します。また、ヒストリー・データベースを処理している場合は
ランタイム・データベース、およびランタイム・データベースを処理している場合は状態データベースで、 WBIRMADM.RMMETADATA テーブルから
同じエントリーを除去する
必要もあります。ビジネス指標モデルの行のみを除去する必要があり、これらは、
Runtime_to_Historical サービス名 (ヒストリー・データベースの処理時) および State_to_Runtime サービス名 (ランタイム・データベースの処理時) 内にあります。
- レプリケーション: ランタイム・データベースと状態データベース
- そのビジネス指標モデルにサービスを提供しているすべての Capture サーバーを停止します。
- そのビジネス指標モデルと関連付けられた Capture CD テーブルと関連するすべてのトリガーを除去します。
- WBIRMADM.RMPRUNECTRL テーブルから、ビジネス指標モデルで使用される Prune トリガーの Prune 制御情報を除去します。
- DB2 Replication Center を使用して、そのビジネス指標モデルと関連付けられたすべてのテーブルに対するすべてのサブスクリプションを除去します。
- WBIRMADM.RMMETADATA テーブルから、そのビジネス指標モデルと関連付けられたすべてのメタデータ・エントリーを除去します。
- データベース・スキーマ: 通常、スキーマ生成中のエラーは、変更されたモデルがデプロイされる前に
ロールバックされます。現行のレプリケーション成果物のセットには
影響はありません。
再デプロイ
ビジネス指標モデルをサポートするすべての成果物が除去されたら、「古いデプロイメントを
無視 (Ignore Older Deployments)」オプションを選択して
再度 Schema Generator を実行します。生成されたスキーマが成功したら、データベース定義言語 (DDL) スクリプトを
デプロイせずに、レプリケーション・スクリプトを再デプロイしてください。