Replikate in einer Geodatabase in Oracle

Die Replikation von Geodatabases ermöglicht ihnen, Kopien von Daten in mehreren versionierten Geodatabases zu erstellen, sodass die Änderungen an den Daten synchronisiert werden können. Bei einer Synchronisierung werden von einem Replikat Änderungen an den Daten übertragen und vom relativen Replikat Änderungen empfangen.

Bevor Sie ein unidirektionales oder bidirektionales Replikat erstellen, müssen Sie den zu replizierenden Datasets eine Spalte namens "GlobalID" hinzufügen. Die Zeilen im Dataset erhalten hierdurch einen Einzelwert, der in allen Geodatabases gleich bleibt. (Informationen zur Vorbereitung eines Datasets auf die Replikation finden Sie unter Vorbereiten von Daten für die Replikation.)

Nachdem Änderungen in einem der Replikate vorgenommen wurden, können Sie die Geodatabases synchronisieren und so die Änderungen in der einen Geodatabase in die relative Geodatabase einfügen. Wenn eine Geodatabase mit der relativen Geodatabase synchronisiert wird, wird im Benutzerschema der Replikat-Geodatabase (die Änderungen an die relative Geodatabase sendet) eine Tabelle erstellt, um die Lineages geänderter Datasets zu verfolgen.

Replikattabellen in ArcGIS Desktop

Die für die Synchronisierung verwendete Tabelle wird in ArcGIS Desktop nicht angezeigt, sondern nur im Hintergrund und nur für die Synchronisierung verwendet.

Sie können jedoch ermitteln, ob eine Geodatabase als Replikat-Geodatabase verwendet wird, indem Sie deren Eigenschaften im Fenster "Katalog" überprüfen. Klicken Sie mit der rechten Maustaste auf die Geodatabase, und klicken Sie dann auf Eigenschaften. Auf der Registerkarte "Allgemein" gibt es einen Abschnitt namens "Status der verteilten Geodatabase". Wenn die Geodatabase repliziert wurde oder sie Ziel einer Replikation war, lautet die Statusmeldung "Dies eine Replikat-Geodatabase ist".

In ArcMap enthält eine MXD-Datei einen oder mehrere Layer, die repliziert wurden, da die meisten (oder sogar alle) Werkzeuge auf der Werkzeugleiste "Verteilte Geodatabase" aktiv sind. Auch wenn Sie den Replikat-Manager öffnen, werden ein oder mehrere Replikate aufgeführt.

Replikattabellen in einer Oracle-Datenbank

Bevor Datasets repliziert werden können, müssen sie eine Spalte namens "GlobalID" enthalten und als vollständig versioniert (nicht mit der Option zum Speichern von Änderungen in der Basisversion) registriert sein. Daher weisen die Business-Tabellen aller Datasets, die im Replikat enthalten sind, in der Datenbank eine Spalte "GUID" und Deltatabellen auf.

Replikate werden in der Datenbank in den Systemtabellen GDB_ITEMS, GDB_ITEMRELATIONSHIPS und GDB_REPLICALOG der ArcSDE-Geodatabase verfolgt. Die Informationen, dass es sich um ein Replikat handelt, wird in der Systemtabelle GDB_ITEMTYPES aufgezeichnet. Weitere Informationen finden Sie unter Systemtabellen einer Geodatabase in Oracle.

Die Tabellen sind wie folgt miteinander verbunden:

Replikattabellen in Oracle

Die gestrichelten Linien geben implizite Beziehungen zwischen Spalten an.

Wie bereits erwähnt, müssen Datasets eine GlobalID-Spalte enthalten, die repliziert wird. Folgendes ist eine versionierte Feature-Class, "Districts", die eine GlobalID-Spalte aufweist.

Ein versioniertes Dataset mit einer GlobalID-Spalte

Wenn die Synchronisierung zwischen zwei Geodatabases ausgeführt wird, ist die Tabelle, die erstellt wird, um Dataset-Lineages zu verfolgen, die SDE_UUID_TEMP$-Tabelle. Diese Tabelle kann von mehreren Sitzungen gleichzeitig verwendet werden. In Oracle wird die SDE_UUID_TEMP$-Tabelle als globale temporäre Tabelle erstellt. Die Beschreibung dieser Tabelle finden Sie unten.

SDE_UUID_TEMP$

Die SDE_UUID_TEMP$-Tabelle wird verwendet, um die Lineage eines bestimmten Objekts über seinen GlobalID-Wert zu ermitteln.

Feldname

Feldtyp

Beschreibung

Null?

REGISTRATION_ID

NUMBER(38)

Die Registrierungs-ID der versionierten Tabelle aus der Tabelle TABLE_REGISTRY

GLOBALID

NCHAR(38)

Die GlobalID für die geänderte Zeile in der Business-Tabelle des versionierten Datasets

Im Folgenden wird gezeigt, wie eines der replizierten Datasets sich auf die SDE_UUID_TEMP$-Tabelle bezieht.

Synchronisieren eines replizierten Datasets

Die SDE_UUID_TEMP$-Tabelle wird nicht entfernt, wenn die Sitzung beendet wird, da die Tabelle wahrscheinlich in einer anderen Sitzung wiederverwendet wird.

Replikattabellen in einem XML-Dokument

Wenn Sie beim Erstellen des Replikats als Ziel ein XML-Dokument auswählen, werden die Informationen zum Replikat und zu den replizierte Datasets in <GPReplica>-Tags eingeschlossen, wie unten dargestellt.

In diesem Beispiel lautet der Name des Replikats toagency, und es wurde aus der Geodatabase-Version PHASE1 repliziert.

<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>

Andere Dataset-Definitionen

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

Verwandte Themen


7/10/2012