Oracle のジオデータベースに格納されているレプリカ
ジオデータベース レプリケーションを使用すると、2 つ以上のバージョン対応ジオデータベース間でデータの複製を作成できます。これにより、異なるジオデータベース間でデータへの変更を同期させることが可能になります。同期は、あるレプリカがデータ変更を送信し、相対レプリカがデータ変更を受信するという仕組みで実行されます。
双方向または一方向のレプリカを作成する前に、複製されるデータセットに GlobalID 列を追加する必要があります。この操作により、データセット内の行に、レプリケーションに参加するジオデータベース全体で常に一定となる一意の値が付与されます。(レプリケーションのためのデータセットの準備の詳細については、「レプリケーションのためのデータの準備」をご参照ください。)
レプリカの 1 つに変更が行われた後で、ジオデータベースを同期させることで、あるジオデータベースに対する変更を関連するジオデータベースにも反映できます。ジオデータベースがその関連ジオデータベースと同期すると、レプリカ ジオデータベース(関連ジオデータベースに変更を送信しているジオデータベース)のユーザのスキーマ内にテーブルが作成されて、変更内容を追跡します。
ArcGIS for Desktop のレプリカ テーブル
同期に使用されるテーブルは、ArcGIS for Desktop には表示されません。このテーブルは同期中にだけ、内部で自動的に使用されます。
ただし、カタログ ウィンドウでジオデータベースのプロパティをチェックすることで、ジオデータベースがレプリカ ジオデータベースとして使用中かどうか確認できます。ジオデータベースを右クリックし、[プロパティ] をクリックします。[一般] タブに [分散ジオデータベースの状態] セクションがあります。ジオデータベースが複製元または複製先となっている場合は、「これはレプリカ ジオデータベースです。」 というステータス メッセージが示されます。
ArcMap では、レプリカに参加する 1 つ以上のレイヤが MXD ファイルに含まれている場合は、[分散ジオデータベース] ツールバーのほとんど(すべての場合もあり)のツールがアクティブになります。また、レプリカ マネージャを開くと、1 つ以上のレプリカが表示されます。
Oracle データベースでのレプリカ テーブル
データセットを複製する前に、データセットに GlobalID 列を追加して、バージョン対応登録する必要があります(ベース テーブル移行オプションを使用しないで登録)。このため、データベースでは、レプリカに含まれるすべてのデータセットのビジネス テーブルに、GUID 列および差分テーブルが含まれます。
レプリカは、GDB_ITEMS、GDB_ITEMRELATIONSHIPS、および GDB_REPLICALOG ジオデータベース システム テーブルのデータベースで管理されます。これがレプリカであることは、GDB_ITEMTYPES システム テーブルに記録されます。「Oracle に格納されたジオデータベースのシステム テーブル」をご参照ください。
これらのテーブルは次のように関連しています。
破線はテーブル間の暗黙的なリレーションシップを示しています。
すでに記載したとおり、データセットに複製対象の GlobalID 列が含まれている必要があります。次に示すのはバージョン対応フィーチャクラスの Districts で、このクラスには Global ID 列があります。
2 つのジオデータベース間で同期が実行される際、データセットの変更内容を追跡するために作成されるテーブルが SDE_UUID_TEMP$ テーブルです。このテーブルは複数のセッションで同時に使用できます。Oracle では、SDE_UUID_TEMP$ テーブルはグローバル一時テーブルとして作成されます。このテーブルの説明を次に示します。
SDE_UUID_TEMP$ テーブルは、対象のオブジェクトの系統をその GlobalID 値によって検出するために使用されます。
フィールド名 |
フィールド タイプ |
説明 |
NULL? |
---|---|---|---|
REGISTRATION_ID |
NUMBER(38) |
TABLE_REGISTRY テーブルから取得した、バージョン対応登録テーブルの登録 ID |
|
GLOBALID |
NCHAR(38) |
バージョン対応データセットのビジネス テーブルにおける変更された行の GlobalID |
次の図は、複製されたデータセットの 1 つが SDE_UUID_TEMP$ テーブルにどのように関連しているかを示しています。
セッションが終了しても SDE_UUID_TEMP$ テーブルは削除されません。別のセッションで再利用される可能性が高いためです。
XML ドキュメントのレプリカ テーブル
レプリカを作成するときに XML ドキュメントへの複製を選択すると、レプリカと複製されたデータセットに関する情報が次のように <GPReplica> タグに含まれます。
この例では、レプリカの名前は toagency で、これはジオデータベース バージョン PHASE1 から複製されたものです。
<GPReplica xsi:type="esri:GPReplica">
<Name>manager.toagency</Name>
<ID>-1</ID>
<ReplicaVersion>sde.PHASE1</ReplicaVersion>
<CreationDate>2007-04-23T12:13:07</CreationDate>
<GUID>AFC2DA1A-B751-4096-82DE-7AC9E601A563</GUID>
<Role>esriReplicaRoleChild</Role>
<AccessType>esriReplicaChildReadOnly</AccessType>
<MyGenerationNumber>0</MyGenerationNumber>
<SibGenerationNumber>0</SibGenerationNumber>
<SibMyGenerationNumber>0</SibMyGenerationNumber>
<ReplicaState>esriReplicaStateWaitingForData</ReplicaState>
<SibConnectionString>SERVER=liljoe;INSTANCE=5151;VERSION=sde.PHASE1;AUTHENTICATION_MODE=DBMS;ProgID=esriDataSourcesGDB.SdeWorkspaceFactory.1</SibConnectionString>
<GPReplicaDescription xsi:type="esri:GPReplicaDescription">
<ModelType>esriModelTypeFullGeodatabase</ModelType>
<SingleGeneration>false</SingleGeneration>
<SpatialRelation>esriSpatialRelIntersects</SpatialRelation>
<QueryGeometry xsi:type="esri:EnvelopeN">
<XMin>-5543912.2421665</XMin>
<YMin>3741401.908035</YMin>
<XMax>-5538272.6904335</XMax>
<YMax>3743452.058665</YMax>
<SpatialReference xsi:type="esri:ProjectedCoordinateSystem">
<WKT>PROJCS["Asia_South_Albers_Equal_Area_Conic", GEOGCS["GCS_WGS_1984", DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]], PRIMEM["Greenwich",0.0], UNIT["Degree",0.0174532925199433]], PROJECTION["Albers"], PARAMETER["False_Easting",0.0], PARAMETER["False_Northing",0.0], PARAMETER["Central_Meridian",125.0], PARAMETER["Standard_Parallel_1",7.0], PARAMETER["Standard_Parallel_2",-32.0], PARAMETER["Latitude_Of_Origin",-15.0], UNIT["Meter",1.0]], VERTCS["Ha_Tien_1960", VDATUM["Ha_Tien_1960"], PARAMETER["Vertical_Shift",0.0], PARAMETER["Direction",1.0], UNIT["Meter",1.0]]</WKT>
<XOrigin>-21663300</XOrigin>
<YOrigin>-10280500</YOrigin>
<XYScale>207890747.363998</XYScale>
<ZOrigin>0</ZOrigin>
<ZScale>1</ZScale>
<MOrigin>-100000</MOrigin>
<MScale>10000</MScale>
<XYTolerance>0.001</XYTolerance>
<ZTolerance>2</ZTolerance>
<MTolerance>0.001</MTolerance>
<HighPrecision>true</HighPrecision>
</SpatialReference>
</QueryGeometry>
<GPReplicaDatasets xsi:type="esri:ArrayOfGPReplicaDataset">
<GPReplicaDataset xsi:type="esri:GPReplicaDataset">
<DatasetName>projects.editor.roads</DatasetName>
<DatasetType>esriDTFeatureClass</DatasetType>
<RowsType>esriRowsTypeFilter</RowsType>
<IsPrivate>false</IsPrivate>
<UseGeometry>true</UseGeometry>
</GPReplicaDataset>
その他のデータセットの定義
</GPReplicaDatasets>
<TransferRelatedObjects>true</TransferRelatedObjects>
</GPReplicaDescription>
<ReconcilePolicy>esriReplicaResolveConflictsNone</ReconcilePolicy>
</GPReplica>