Standard または Advancedのライセンスで利用可能。
異なるジオデータベースにデータを分散すること、および各データベースのデータに対して行われた変更を同期することが、さまざまなワークフローで必要になります。 このトピックでは、システムでデータ分散の使用、ジオデータベース レプリカの作成、レプリカの管理、および同期を最適に行う方法について説明します。
「データ分散の概要」は、ジオデータベース レプリケーションとそれ以外の分散データ操作方法を理解するのに適した手引きです。 「分散データのシナリオ」では、ジオデータベース レプリケーションを使用するための一般的なユース ケースが複数紹介されています。 ジオデータベース レプリケーションがシステムに最も適した方法である場合は、レプリカの作成方法について検討します。
レプリカの作成
次の情報は、システムのレプリカを作成するための最適な方法を判断するのに役立ちます。
- どのレプリカが必要か判断する - レプリカを 1 つか 2 つ作成すれば十分な場合もあれば、多くのレプリカが必要になる場合もあります。 たとえば、多くのレプリカが必要になるのは、現場でモバイル デバイスを使用して操作するフィールド担当者にデータを配布する場合です。 2 つのエンタープライズ ジオデータベースを同期させたい場合は、レプリカが 1 つあれば十分でしょう。 レプリカの詳細およびレプリカがジオデータベース内でどのように機能するかについては、「ジオデータベース レプリケーションのアーキテクチャ」をご参照ください。
- レプリケーションの種類を判断する - 「レプリケーションの種類」では、利用可能なレプリケーションの種類を説明しています。 システムでシナリオごとに異なるタイプのレプリカを使用しなければならない場合があります。 たとえば、別のオフィスとの同期には双方向レプリケーションが適しており、マップ公開用のジオデータベースの更新には一方向レプリケーションを使用することが適してきます。
- レプリカを作成する - [レプリカの作成 (Create Replica)] ジオプロセシング ツールを使用して、ジオデータベース レプリカを作成します。 このツールは、レプリカを定期的に作成しなければならない場合に適しています。 たとえば、現場担当者が日常的に使用するチェックアウト レプリカを作成するためのモデルを構築できます。
- バージョン対応のワークフローにレプリケーションを統合する - ジオデータベース レプリケーションはトラディショナル バージョニングに基づいて作成されています。 レプリカの作成時に、親レプリカと子レプリカの両方にレプリカ バージョンが定義されます。 これは、同期の際に変更を送受信するバージョンです。 詳細については、「レプリケーションとバージョニング」をご参照ください。
レプリカ バージョンは変更を同期するためのパイプであるため、レプリカを作成する前に、レプリカ バージョンをどのように操作するか計画してください。 たとえば、同期の際に、受信した変更に整合チェックを実行してから、メインのワークフローに統合する計画を立てたとします。 同期後にレプリカ バージョンの内容を解析してから、通常の作業バージョンにリコンサイルおよびポストできます。 また、デフォルト バージョンをレプリカ バージョンとして使用できます。 これは、同期の際に、変更内容を直接 DEFAULT バージョンにポストしたい場合に使用できます。
- 複製するデータを定義する - ジオデータベース レプリケーションでは、エンタープライズ ジオデータベース内の一部またはすべてのデータセットを複製できます。 また、フィルターおよびリレーションシップ クラスを使用して、複製するフィーチャまたは行を定義することもできます。 レプリカを作成する際には、常にフィルターが先に適用され、次にフィーチャと行をさらに追加するためにリレーションシップ クラスが使用されます。 詳細については、「レプリケーションのためのデータの準備」をご参照ください。
複製するデータを定義する際には、将来のニーズについて検討します。 たとえば、双方向レプリカと一方向レプリカを一度だけ作成して、繰り返し同期するような場合、 レプリカの作成時に定義したフィルターは、同期時にも適用されます。 時間経過に伴ってニーズが変化し、より大きなレプリカ エリアが必要となることがあります。 また、複製するデータのタイプについて検討することも重要です。 データの整合性を維持するために、トポロジなどのコンプレックス データ タイプを複製する際には、追加のルールが適用されます。 以下のヘルプ トピックでは、ArcGIS のトポロジ、リレーションシップと ArcGIS、ArcGIS における画像とリモート センシング、ArcGIS AllSource におけるテレイン データセット、ネットワーク データセットに関するルールと例を示しています。 複製するデータを定義する場合の考慮事項については、「高度なジオデータベース データセットのレプリケーション」をご参照ください。
- レプリカ作成オプションを検討する - レプリカの作成プロセスをできるだけ効率化するためのオプションがいくつか追加されました。 これらのオプションは特定のケースを対象に設計されているため、ワークフローに適さない場合もあります。 次のリストを参照して、これらのオプションを利用できるかどうか確認してください。
- スキーマの再使用 - 複製するデータのスキーマがすでに含まれている複製先のジオデータベースを指定します。 これにより、データの複製にかかる時間が短縮されます。 このオプションは、チェックアウト レプリカでのみ有効であり、ファイル ジオデータベースへのレプリケーションでのみ使用することができます。
- 関連データのレプリカ - レプリカの作成時に、複製するデータを決定するために、最初にフィルターが適用され、次にリレーションシップ クラスが処理されます。 リレーションシップ クラスの処理をオフにすると、時間を節約することができます。 リレーションシップ クラスの処理をオフにしても、リレーションシップ クラスは含まれますが、レプリカの作成および同期の際に処理されません。 リレーションシップ クラスの処理をすべてオフにすることができるオプションが [レプリカの作成 (Create Replica)] ジオプロセシング ツールに用意されています。
- 履歴管理を使用して変更を追跡 - バージョニングに関連付けられた差分テーブルの代わりに、履歴管理を使用して変更をトラックする場合、システムにレプリカ バージョンは作成されません。 そのため、リコンサイル、ポスト、圧縮などのプロセスは影響を受けず、バージョン管理とレプリケーション管理が独立したものになります。 これによって、同期のスケジュールもより柔軟に設定できます。
注意:
このオプションでは、履歴管理が有効にならないため、履歴管理を有効にしてデータをトラディショナル バージョン対応登録する必要があります。 このオプションを使用する場合は、デフォルト バージョンからレプリカを作成する必要があります。
- 既存データのみ登録 - 大量のデータを複製する場合は、[既存データのみ登録] オプションの使用を検討してください。 このオプションを使用することで、レプリカの作成時にデータのコピーを省略し、既存のジオデータベースをレプリカとして登録することができます。 このオプションを問題なく使用するには、レプリカ作成前に特定の要件群を満たす必要があります。
- テーブルのすべてのレコード - レプリカ作成プロセス中に、テーブルのデフォルトの動作として、そのテーブルのスキーマのみが複製されます。 すべてのテーブルのすべてのレコードを子ジオデータベース レプリカに複製するには、テーブルのすべてのレコード オプションを使用できます。このオプションは、[レプリカの作成 (Create Replica)] ジオプロセシング ツールの [高度な設定] セクションにあります。
- 接続環境または非接続環境のどちらを使用するかを検討してください。レプリカは、接続環境と非接続環境のどちらでも作成できます。 接続環境では、同じネットワークに接続されている間に作成と同期が行われます。 非接続環境では、ネットワークが使用されません。 作成と同期を行うには、XML ドキュメントなどのファイルをエクスポートし、そのファイルをターゲットに送信してから、ターゲットにインポートします。 詳細については、「接続環境と非接続環境のレプリケーション」をご参照ください。
信頼性のないネットワークしか使用できない場合は、非接続環境のレプリケーションを使用することも検討してください。 速度の遅いネットワーク上でレプリカ作成プロセスを実行すると、非常に時間がかかり、信頼できない結果になる場合があります。 非接続環境のレプリケーションでは、ファイルにエクスポートした後、情報がネットワーク上で送信されるまで待機せずに引き続き作業を実行できます。 ただし、この場合には、ファイルが失われるといけないので、ターゲットにインポートする前に、これらのファイルのバックアップを作成しておきます。
レプリカの同期
レプリカが作成されたら、レプリカ ジオデータベース間で変更の同期を開始することができます。 システムを効果的に運用するには、変更を同期するための計画を立てることが重要です。 詳細については、「同期とは」をご参照ください。
システムに最適な手法を決定するときには、以下を検討してください。
- 同期の方法 - まず、システムに最適な同期の方法を決定します。 次のオプションが用意されています。
- 接続環境での同期
接続環境での同期について説明します。 - 手動による同期 - 操作するレプリカの数が少なく、2 つのレプリカ ジオデータベース間で変更の同期を頻繁に実行する必要がない場合は、ArcGIS AllSource に用意されている [変更の同期 (Synchronize Changes)] ジオプロセシング ツールを使用します。
- エージェントによる自動化された同期 - レプリカの数が多い、または同期が頻繁に発生する、あるいはその両方のシステムでは、レプリケーション エージェントの構築を検討してください。 レプリケーション エージェントは、複製先のジオデータベースに自動的に接続して、同期を実行する仕組みになっています。 この場合、同期は自動的に開始されるため、ユーザーが明示的に実行する必要はありません。
- ジオプロセシング ツールによる同期 - ジオプロセシング ツールで、レプリカを同期するためのモデルを構築することができます。これには、ローカル ジオデータベース接続またはインターネット経由で実行されるジオデータ サーバー オブジェクトへの接続のどちらかを使用します。 これらのモデルを Python スクリプトにエクスポートして、Python で実行できます。 スクリプトを実行するためのコマンドを Microsoft Windows スケジューラなどのスケジューリング ソフトウェアに追加すると、コマンドを定期的に実行できます。 たとえば、2 つのエンタープライズ ジオデータベースの同期を週に一度、ピーク時以外の時間帯にスケジュール設定することができます。
- 非接続環境での同期
非接続環境での同期について説明します。 - 手動同期 - 非接続環境のレプリカの場合、レプリカ間でメッセージを手動で交換することで同期を実行します。 メッセージ交換のこの手動プロセスでは、非接続環境での同期のワークフローに従い、一方のレプリカからファイルにメッセージをエクスポートし、ファイルから相対レプリカにメッセージをインポートします。
- 接続環境での同期
- 同期と競合 - レプリカのデータに対する編集が別のレプリカから同期された編集内容と競合した場合には、競合を解決する方法を決定しなければなりません。 競合の解決ポリシーを適用して、競合を自動的に解決できます。 システムで競合が発生しているかどうかを確認するには、「同期とバージョニング」をご参照ください。
- 同期するデータ - チェックアウト レプリカの場合は、子レプリカに加えられたすべてのデータ変更が同期されます。 双方向レプリカと一方向レプリカの場合は、フィルターとリレーションシップ クラスの要件を満たす変更だけが適用されます。 [レプリカの管理] ウィンドウを使用して、複製された各データセットに適用されているフィルターとリレーションシップ クラスのルールを特定することができます。 データの整合性を維持するために、トポロジなどのコンプレックス データ タイプを同期する際には、追加のルールが適用されます。 リレーションシップ クラスを処理して、同期するデータを追加することもできます。 タイプの異なるデータの同期方法を十分に把握するには、「同期とトポロジ」および「フィルターと関連データを使用して同期」をご参照ください。
複製することを選択したデータのメタデータは、レプリカ作成プロセス中にコピーされます。 メタデータへの変更はレプリカの同期中には適用されません。
- データの量 - 同期の際には、最後の同期以降に加えられた変更だけが適用されます。 ArcGIS AllSource は、すでに送信および承認された変更を除外します。 また、いったん送信された変更が元のレプリカに返信されることはありません。 このようにして、送信するデータの量を必要なものだけに減らします。
変更がデータに適用される割合に応じて、同期の頻度を計画してください。 変更の量に十分に対応できる頻度で同期を実行しないと、同期処理に時間がかかる場合があります。 また、ピーク時以外の時間帯に同期を実行することも推奨されます。 非接続環境では、データ変更をエクスポートする際に、.xml ファイルなどの非圧縮形式ではなく、.zip ファイルを使用する必要があります。 承認メッセージを定期的に送信する作業を取り入れることもお勧めします。
- レプリカを同期する順番 - 複数のレプリカを操作する場合は、それらを同期する順番が重要になる可能性があります。 たとえば、単一のエンタープライズ ジオデータベースから複数の双方向レプリカを作成する場合について検討してください。 これらのレプリカの同期をとる方法の 1 つは、各子レプリカを親レプリカと双方向で同期させることです。 この場合は、子レプリカが変更を親レプリカに送信し、親レプリカも変更を子レプリカに送信します。 もう 1 つの方法では、各子レプリカが先に変更を親レプリカに送信します。 親レプリカはすべての変更を取り込んだ後、変更を各子レプリカに返送します。 1 つ目の方法では、親レプリカが送信するのは、親レプリカでの変更と、各レプリカから受信し、すでに同期されている変更だけですが、2 つ目の方法では、他のすべてのレプリカから取り込まれた変更も送信します。 どちらの方法が適切であるかは、システムの要件によります。
- スキーマの変更 - ジオデータベース レプリケーションでは、スキーマの変更が可能です。 これは、複製されたデータのスキーマが変更された場合でも、同期が依然として機能することを意味します。 一般に、スキーマの変更は最小限に抑えることをお勧めします。 ジオプロセシング ツールの組み合わせを使用して、レプリカのスキーマを更新し、相対レプリカのスキーマと一致させる方法の詳細については、「レプリカ スキーマ変更」をご参照ください。
- エラーへの対処 - 同期の際には、さまざまな理由でエラーが発生する可能性があります。 接続されているシステムでは、コンピューター ネットワークで障害が発生したり、競合しているレプリカを同期しようとしたりすることがあります。 接続されていないシステムでは、メッセージが失われたり、メッセージを間違った順序でインポートしようとしたりすることがあります。 どのような場合でも、システムは整合性のある状態を維持できるように設計されています。 変更がロールバックされ、不適切なデータ変更が破棄されます。 レプリカ アクティビティ ログを使用して、発生したエラーを検索し、復旧方法を判断することができます。 ほとんどの場合は、引き続き変更を同期すると、システムがエラーから自動的に復旧します。 レプリカには、送信された変更セットの数と受信された変更セットの数を示す世代情報も含まれています。 詳細については、「ジオデータベース レプリカの管理」をご参照ください。
レプリカの管理
ArcGIS AllSource の [レプリカの管理] ウィンドウを使用して、ジオデータベース レプリカとフィーチャ サービス レプリカを表示して管理することができます。 [レプリカの管理] ウィンドウには、エンタープライズ ジオデータベース内のすべてのレプリカと、特定のフィーチャクラスまたはテーブルが参加しているレプリカおよびレプリカ プロパティが表示されます。
レプリカの作成に使用された方法によって、レプリカのタイプ (ジオデータベース レプリカまたはフィーチャ サービス レプリカ) が決まります。 [レプリカの管理] ウィンドウには、レプリカのタイプごとのタブが含まれています。
- [ジオデータベース レプリカ] - ジオデータベース レプリカは、レプリカの作成 (Create Replica) または [サーバーからレプリカを作成 (Create Replica From Server)] ジオプロセシング ツールから明示的に作成されます。 このタブで使用できるツールおよびオプションの説明については、「ジオデータベース レプリカの管理」をご参照ください。
- [フィーチャ サービス レプリカ] - フィーチャ サービス レプリカは、フィーチャ サービスをオフラインにしたときに作成されます。 このタブで使用できるツールおよびオプションの説明については、「フィーチャ サービス レプリカの管理」をご参照ください。