インスタンスデータレプリケーション (IDR) の準備
インスタンスデータレプリケーション (IDR) (HLA) をセットアップする前に、プロデューサーインスタンスとコンシューマーインスタンスのテーブルと列を分析して、データを正常に複製します。
複製するテーブルの決定
プロデューサーレプリケーションセットを作成する前に、複製するテーブルを決定します。システムテーブル (sys_ prefix 付きのテーブル) は複製しないでください。コンシューマーインスタンス内に既存のデータがあるシステムテーブル (sys_user、sys_user_group、sys_user_grmember など) を複製する場合は、レプリケーション中に挿入と更新のエラーが発生する可能性があります。これらのテーブルを複製する場合、その後これらのテーブルをクリーニングする追加作業が必要になる場合があります。
CMDB テーブルを複製しないでください。CMDB テーブルを複製すると、関連するレコードの数が原因で、パフォーマンスの問題が発生したり、予期しない結果が生じたりする可能性があります。CMDB テーブルを複製する必要がある場合は、条件を使用して複製レコードの数を制限し、すべての必要な列がレプリケーションセットに含まれるようにしてください。
複製を避ける必要があるテーブルのリストについては、「インスタンスデータレプリケーション (IDR) で除外されたテーブル」を参照してください。
テーブル階層の分析
「インスタンスデータレプリケーション (IDR) でのテーブル階層の保持」を参照してください。
テーブルの関係性の分析
複製するテーブルごとに、他のテーブルを指す参照フィールドがテーブルにあるかどうかを確認します。別のテーブルを指す参照フィールドを持つテーブルを複製しているが、そのテーブルをレプリケーションセットに含めない場合、コンシューマーインスタンスのレコードの参照フィールドは空になります。テーブルの関係性を複製すると、データ整合性を維持し、参照フィールドが想定どおりにコンシューマーに入力されます。
レプリケーションセットの編成
計画フェーズの一環として、レプリケーションセットとそこに含まれるテーブルを編成する方法を決定します。
- テーブルごとに単一のレプリケーションセットを作成します。このオプションでは、さらにセットアップ、構成、および時間管理が必要になりますが、他のテーブルに影響を与えることなく、1 つのテーブルのレプリケーションを一時停止できます。
- レプリケーションは、複数のジョブを使用して並列で実行されます。
- スループットメトリクスは、個別のレプリケーションセットを使用すると簡単に追跡できます。
- エラーが発生すると、複数のテーブルすべてではなく、単一のテーブルのレプリケーションが影響を受けます。
- 関連するテーブルのグループに対してレプリケーションセットを作成します。このオプションはセットアップや管理が簡単ですが、ミスや潜在的な問題はグループ内のすべてのテーブルに影響します。
- レプリケーションステータスに関する情報を検索する必要がある場合は、このレプリケーションセットに論理名を使用するほうが、テーブルごとに個別のレプリケーションセットを使用するよりも簡単に検索して確認できます。
- レプリケーションを一時停止する場合は、1 つのレプリケーションセットからレプリケーションを一時停止することで、テーブルのグループ全体に実行できます。
- 1 つのテーブルでレプリケーションの問題が発生してレプリケーションが停止すると、レプリケーションセット内のすべてのテーブルのレプリケーションが停止します。
単一のレプリケーションセット内のテーブルをグループ化する場合は、5 つ以下のテーブルに制限するようにしてください。複製するテーブルが 5 つ以上ある場合は、各セットに 5 つ以下のテーブルを含む複数のレプリケーションセットを使用します。
複製する列の決定
複製するテーブルごとに、含める列を決定します。デフォルトでレプリケーションセットにすべての列を含めることはしないでください。代わりに、必要な列を決定し、sys_ column やスクリプトによって自動的に更新されるその他の列を除外します。
たとえば、システムによって頻繁に自動的に更新される列を含めると、HLA では必要以上にデータを複製する可能性があります。このデータが複製されると、キャパシティのサブスクリプションに悪影響を及ぼす可能性があります。[IDR ライセンスと使用率の詳細] ダッシュボードを定期的に確認して、プロデューサーから生成されたメッセージ数を監視します。
コンシューマーインスタンスのターゲットテーブルの準備
デフォルトでは、 HLA はルックアップ値としてレコードの sys_id フィールドを使用して、プロデューサーインスタンスとコンシューマーインスタンス間でデータの同期を維持します。ターゲットテーブルに既存のデータまたは以前のデータインポートのレコードが含まれている場合は、コンシューマーの sys_id 値はプロデューサーインスタンスの sys_id と一致しません。
常にプロデューサーインスタンスを信頼できる情報源と見なしてください。最適なレプリケーション結果を得るには、次のガイドラインに従ってください。
- プロデューサーインスタンスをコンシューマーインスタンスの専用データソースにします。
- レプリケーションの前に、コンシューマーインスタンスのターゲットテーブルが空であることを確認します。ターゲットインスタンスの初期レコードは、レプリケーションセットまたはクローンを介してプロデューサーから専用で送信されたデータから作成されるのが理想的です。
- コンシューマーインスタンスのターゲットテーブルに対して、レプリケーションの開始後に他の進行中のデータインポートや更新がないことを確認します。
たとえば、LDAP のユーザーが別のデータソースを使用してコンシューマーインスタンスにインポートされた場合、それらのレコードの sys_id はプロデューサーインスタンスの sys_id 値と一致しません。このシナリオでは、コンシューマーインスタンスにあるターゲットテーブルの既存のユーザーレコードは更新されず、重複レコードが作成されます。
これを防ぐことができない場合は、レプリケーションの前にコンシューマーインスタンスのテーブルをクリーニングします。ターゲットテーブルの該当のレコードを削除するか、プロデューサーとコンシューマーの sys_id 値を確実に一致させる必要があります。
または、カスタムの [結合] フィールドを使用して、(デフォルトの sys_id 列の代わりに) レプリケーション用に一意のレコードを識別することもできます。コンシューマーインスタンスのレコードが、プロデューサーインスタンスの同じレコードと異なる sys_id を持つ場合は、カスタムの [結合] 列を使用します。カスタムの [結合] の使用方法の詳細については、「 インスタンスデータレプリケーション (IDR) の結合列」を参照して ください。
ビジネスルールの確認
ビジネスルールを使用して、通知の送信や複製されたデータの検証など、レプリケーション後にワークフローをトリガーすることができます。idr.system ユーザーによるターゲットテーブルのレコードの挿入、更新、または削除を妨げる可能性があるコンシューマーインスタンスのビジネスルールを確認します。
ビジネスルールに関連するエラーが発生した場合は、 テーブルを作成します。エラーの原因となっているスクリプトの詳細については、[エラーメッセージ (Error Message)] フィールドを参照してください。
双方向レプリケーションにより、プロデューサーインスタンスで作成されたレコードがコンシューマーインスタンスに複製され、その逆も同様です。レコードがコンシューマーインスタンスに挿入され、レコードを更新するビジネスルールがトリガーされると、その更新はプロデューサーインスタンスには複製されません。
ACL の確認
コンシューマーインスタンスのターゲットテーブルに配置されている ACL を確認し、HLA がデータを正常に複製できることを確認します。idr.system ユーザーがターゲットテーブルの適切なロールを持っていることを確認します。
ACL に関連するエラーが発生した場合は、 テーブルを作成します。エラーの原因となっている ACL の詳細については、[エラーメッセージ (Error Message)] フィールドを参照してください。
データポリシーの確認
コンシューマーインスタンスのターゲットテーブルに配置されているデータポリシーを確認し、HLA がデータを正常に複製できることを確認します。複製しているデータがデータポリシーを満たしていることを確認します。
データポリシーに関連するエラーが発生した場合は、 テーブルを作成します。エラーの原因となっているデータポリシーの詳細については、[エラーメッセージ ] フィールドを参照してください。