Replicas in a geodatabase in Oracle

You can use geodatabase replication to create copies of data across two or more versioned geodatabases so that changes to the data can be synchronized. A synchronization involves one replica sending data changes and the relative replica receiving changes.

Before you create a two-way or one-way replica, you must add a GlobalID column to the datasets to be replicated. This gives the rows in the dataset a unique value that will remain constant across geodatabases. (For details on getting a dataset ready for replication, consult Preparing data for replication.)

After changes have been made in one of the replicas, you can synchronize the geodatabases, bringing the changes made in one geodatabase into its relative geodatabase. When a geodatabase is synchronized with its relative geodatabase, a table is created in the user's schema of the replica geodatabase (the one that is sending the changes to the relative geodatabase) to track the lineages of altered datasets.

Replica tables in ArcGIS Desktop

You cannot see the table used for synchronization in ArcGIS Desktop; it is used behind the scenes and only during synchronization.

However, you can identify if a geodatabase is being used as a replica geodatabase by checking its properties in the Catalog window. Right-click the geodatabase and click Properties. On the General tab, there is a Distributed Geodatabase Status section. If the geodatabase has been replicated or replicated to, the status message states "This is a replica geodatabase".

In ArcMap, you know an MXD file contains one or more layers that have been replicated because most (or even all) of the tools on the Distributed Geodatabase toolbar are active. Also, when you open the Replica Manager, one or more replicas are listed.

Replica tables in an Oracle database

Before datasets can be replicated, they must have a GlobalID column and be registered as fully versioned (not registered with the option to save edits to base). Therefore, in the database, the business tables of any datasets that are included in the replica have a GUID column and delta tables.

Replicas are tracked in the database in the GDB_ITEMS, GDB_ITEMRELATIONSHIPS, and GDB_REPLICALOG ArcSDE geodatabase system tables. The fact that it is a replica is recorded in the GDB_ITEMTYPES system table. See System tables of a geodatabase in Oracle.

The tables are related as follows:

Replica tables in Oracle

Dashed lines indicate implicit relationships between columns.

As mentioned, datasets must have a GlobalID column to be replicated. The following is a versioned feature class, Districts, that has a GlobalID column.

A versioned dataset with a GlobalID column

When synchronization is performed between two geodatabases, the table that is created to track dataset lineages is the SDE_UUID_TEMP$ table. This table can be used by multiple sessions simultaneously. In Oracle, the SDE_UUID_TEMP$ table is created as a global temporary table. The description of this table is below.

SDE_UUID_TEMP$

The SDE_UUID_TEMP$ table is used to discover the lineage of a given object via its GlobalID value.

Field name

Field type

Description

Null?

REGISTRATION_ID

NUMBER(38)

The versioned table's registration ID from the TABLE_REGISTRY table

GLOBALID

NCHAR(38)

The GlobalID for the altered row in the business table of the versioned dataset

The following shows how one of the replicated datasets is related to the SDE_UUID_TEMP$ table.

Synchronizing one replicated dataset

The SDE_UUID_TEMP$ table is not removed when the session exits because the table will likely be reused in another session.

Replica tables in an XML document

If you choose to replicate to an XML document when you create your replica, information about the replica and replicated datasets is enclosed in <GPReplica> tags as shown below.

In this example, the name of the replica is toagency, and it was replicated from geodatabase version 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>

Other dataset definitions

 </GPReplicaDatasets>
  <TransferRelatedObjects>true</TransferRelatedObjects> 
  </GPReplicaDescription>
  <ReconcilePolicy>esriReplicaResolveConflictsNone</ReconcilePolicy> 
</GPReplica>

Related Topics


8/19/2013