Standard または Advancedのライセンスで利用可能。
レプリカを作成すると、親ジオデータベースからデータとスキーマが子ジオデータベースへコピーされます。 このデータには、レプリカのデータセットから複製される行が含まれています。 スキーマは、フィールド、ドメイン、サブタイプ、および複製されるデータ内のデータセットの定義で構成されています。
初期状態では、スキーマはどちらのレプリカでも同じですが、各レプリカ ジオデータベースのスキーマに変更が加えられる可能性があります。 たとえば、一方のレプリカではプロジェクトを完了するための追加フィールドが必要で、相対レプリカでは既存のフィールドに新しいドメインを適用する必要があるとします。 この場合、両方のレプリカ ジオデータベースのスキーマはもはや同じではありません。 ジオプロセシング ツールを使用してレプリカ ジオデータベースのスキーマを比較し、違いを特定できます。一部のスキーマ変更タイプでは、2 つのジオデータベース間でスキーマを同期することができます。
スキーマ変更によって、ジオデータベース内のテーブルやフィーチャクラスなどのオブジェクトの構造や定義が変更されます。 このため、スキーマ変更は、そのジオデータベース内のオブジェクトに直接適用され、特定のバージョンに限定されることはありません。
レプリカ スキーマのツール
レプリカ スキーマ変更を操作する際には、以下の 3 つのジオプロセシング ツールを使用します。
- [レプリカ スキーマのエクスポート (Export Replica Schema)] - 一方向または双方向の入力レプリカのスキーマで、レプリカ スキーマ ファイルを作成します。
- [レプリカ スキーマの比較 (Compare Replica Schema)] - レプリカ ジオデータベースと相対レプリカ ジオデータベース間のスキーマの差分を記述する .xml ファイルを生成します。
- このツールにより生成されるスキーマ変更ファイルには、相対レプリカ ジオデータベースと一致させるために、レプリカ ジオデータベースに適用する必要がある変更が記述されています。
- [レプリカ スキーマのインポート (Import Replica Schema)] - 入力レプリカ ジオデータベース、および .xml ファイルを使用してレプリカ スキーマの差分を適用します。
スキーマ変更ツールには、次の場所からアクセスできます。
- [ジオプロセシング] ウィンドウで、検索オプションを使用するか、[分散ジオデータベース] ツールボックスを参照します。
- [レプリカの管理] ウィンドウで、[レプリカの管理] メニュー を使用できます。
- [カタログ] ウィンドウで、ジオデータベースを右クリックして、[分散ジオデータベース] ショートカット メニューにアクセスできます。
スキーマ変更を相対レプリカ ジオデータベースに適用するには、「ジオデータベース レプリカの管理」に示された手順をご参照ください。
注意:
レプリカのスキーマを相対レプリカのスキーマと一致するように変更することは、データの同期とは異なるプロセスです。
有効なスキーマ変更
次の表は、[レプリカ スキーマのインポート (Import Replica Schema)] ジオプロセシング ツールを使用して、相対レプリカ ジオデータベースにインポートできるスキーマ変更のタイプを示しています。 表の値は、スキーマ変更が相対レプリカ ジオデータベースに適用されるかどうか、またはその適用方法を示しています。
追加 | 変更 | |
---|---|---|
フィールド | テーブルまたはフィーチャクラスに追加されたフィールドが同期されます。 | フィールドに適用されたドメインへの変更が同期されます。 |
ドメイン | 新しいドメインが同期されます。 | ドメイン定義への変更が同期されます。 |
テーブルまたはフィーチャクラス |
追加されたフィールドと、テーブルとフィーチャクラスのフィールドに適用されたドメインが同期されます。 |
削除されたフィールド、テーブルやフィーチャクラスは、相対レプリカ ジオデータベースに同期されません (つまり、相対レプリカ ジオデータベースから削除されません)。
レプリカからのデータセットの削除
各レプリカに含まれるデータセットのリストは、レプリカ ジオデータベースに格納されます。 このリストは [レプリカ プロパティ] ダイアログ ボックスに表示されます。 これらのプロパティを開く方法については、「ジオデータベース レプリカの管理」をご参照ください。
これらのデータセットの 1 つをレプリカから登録解除すると、警告が表示されます。 続行した場合、そのデータセットはレプリカのデータセット リストから削除されます。 次の注意事項もご参照ください。
- テーブル、フィーチャクラス、またはリレーションシップ クラスを登録解除した場合、レプリカに再び追加することはできません。
- トポロジを登録解除した場合、レプリカに再び追加することはできません。 レプリカの同期は維持されますが、トポロジの例外の同期はサポートされません。
スキーマの違いを維持
ジオデータベース レプリケーションは、レプリカ ジオデータベース間の多少のスキーマの違いを許容するように設計されているため、ほとんどの場合、データの同期は引き続きうまく機能します。
ただし、スキーマ変更を一方のレプリカ ジオデータベースに適用し、もう一方のレプリカに適用しない場合には、次のような問題が発生する場合があります。
- 同期しない編集 — データの同期では、両方のレプリカに共通するテーブルおよびフィールドへの変更だけがインポートされます。 相対レプリカ ジオデータベースに存在しないフィールドへの編集は、変更をインポートする際にレプリカ ジオデータベースに適用されません。
- 無効な値 — ドメイン、サブタイプ、およびリレーションシップ クラスのルールに違反する変更が、変更を同期する際に適用される場合があります。
- データの同期エラー - 両方のレプリカ ジオデータベースに対して手動のスキーマ変更を行った場合に、このエラーが発生する場合があります。 たとえば、テーブルにフィールドを追加する場合は、レプリカ ペアの両方のジオデータベースで同じフィールド定義を使用するようにします。 違いが存在する場合 (一方のレプリカ ジオデータベースでは追加したフィールドが文字列であり、もう一方のレプリカ ジオデータベースでは整数であるなど)、データの同期はエラーになります。
- サポートされていない変更 — 一部のスキーマの変更は同期を失敗させる原因になりますが、そのような変更を加えたとしても警告は表示されません。 これらの変更はジオデータベース レプリケーション システムによって検出されません。 たとえば、データベース テーブルでの権限の変更など、データベース レベルでの操作が挙げられます。 複製されたデータの権限が読み取り専用に変更された場合、相対レプリカ ジオデータベースから変更をインポートしようとするとエラーになります。
ベスト プラクティス
一般に、スキーマの変更は避けるべきです。 スキーマの変更は、レプリカ間で一貫性が失われる原因となり、スキーマの変更を適用するための余分なタスクのせいで、パフォーマンスに悪影響がおよびます。 ただし、スキーマの変更を適用しなければならない場合もあります。 次に、スキーマの変更を避けるためのベスト プラクティスを示します。
- 定期的にスキーマを比較する — レプリケーションはフォールト トレランスなので、ほとんどの場合、同期プロセスはスキーマの変更によって中断されません。 ただし、スキーマを定期的に比較して、無計画なスキーマの変更が適用されないようにすると効果的です。
- スキーマの変更が必要な保守作業が完了するまで同期しないでください。
- システム全体にスキーマの変更を適用する — スキーマの変更を適用する必要がある場合は、それらの変更をシステム全体に組織的に適用します。 たとえば、トップ ダウン方式を使用して、親レプリカ ジオデータベースに変更を適用し、子レプリカに反映させます。