Réplicas dans une géodatabase dans Oracle
La réplication de géodatabase permet de créer des copies de données dans deux ou plusieurs géodatabases versionnées afin de pouvoir synchroniser les mouvements effectués sur les données. Une synchronisation implique qu'un réplica envoie des mouvements de données et que le réplica associé reçoive ces mouvements.
Avant de créer un réplica monodirectionnel ou bidirectionnel, vous devez ajouter une colonne GlobalID aux jeux de données à répliquer. Cela associe aux enregistrements du jeu de données une valeur unique, conservée dans l'ensemble des géodatabases (Pour plus d'informations sur la préparation d'un jeu de données à répliquer, reportez-vous à la rubrique Préparation des données à répliquer.)
Après la modification de l'un des réplicas, vous pouvez synchroniser les géodatabases pour reporter les mises à jour d'une géodatabase dans sa géodatabase relative. Lors de la synchronisation d'une géodatabase avec sa géodatabase relative, une table est créée dans la structure de l'utilisateur de la géodatabase de réplica (utilisateur à l'origine de la transmission de changements à la géodatabase relative) pour le suivi des généalogies de jeux de données modifiés.
Tables de réplica dans ArcGIS for Desktop
La table utilisée pour la synchronisation dans ArcGIS for Desktop ne peut pas être affichée ; elle est utilisée en coulisse et uniquement pendant la synchronisation.
Vous pouvez toutefois identifier si une géodatabase est utilisée comme géodatabase de réplica à partir de ses propriétés dans la fenêtre Catalogue. Cliquez avec le bouton droit de la souris sur la géodatabase et sélectionnez Propriétés. L'onglet Général comporte une section Statut de la géodatabase répartie. Si la géodatabase a fait l'objet d'une réplication, le message de statut affiche "Il s'agit d'une géodatabase de réplica".
Dans ArcMap, un fichier MXD contient une ou plusieurs couches répliquées lorsque la plupart (ou même l'ensemble) des outils de la barre d'outils Géodatabase répartie sont actifs. Par ailleurs, le Gestionnaire de réplicas affiche un ou plusieurs réplicas.
Tables de réplica dans une base de données Oracle
Avant leur réplication, les jeux de données doivent disposer d'une colonne GlobalID et être inscrits comme entièrement versionnés (non inscrits avec l'option d'enregistrement des modifications dans la base). Par conséquent, les jeux de données inclus dans le réplica disposent de tables métier comportant une colonne GUID des tables de deltas dans la base de données.
Les réplicas font l'objet d'un suivi dans la base de données, dans les tables système de géodatabase GDB_ITEMS, GDB_ITEMRELATIONSHIPS et GDB_REPLICALOG. Le fait qu'il s'agit d'un réplica est enregistré dans la table système GDB_ITEMTYPES. Reportez-vous à la rubrique Tables système d'une géodatabase dans Oracle.
Les tables sont reliées de la façon suivante :
Les lignes pointillées indiquent les relations implicites entre colonnes.
Comme indiqué, les jeux de données doivent comporter une colonne GlobalID pour pouvoir être répliqués. Voici l'exemple d'une classe d'entités versionnée appelée Districts et comportant une colonne GlobalID.
Lorsque la synchronisation est effectuée entre deux géodatabases, la table SDE_UUID_TEMP$ est créée pour le suivi des généalogies de jeu de données. Cette table peut être utilisée par plusieurs sessions simultanées. Dans Oracle, la table SDE_UUID_TEMP$ est créée comme table temporaire globale. La description de cette table figure ci-dessous.
La table SDE_UUID_TEMP$ permet d'afficher la généalogie d'un objet donné à partir de sa valeur GlobalID.
Nom du champ |
Type de champ |
Description |
Nul ? |
---|---|---|---|
REGISTRATION_ID |
NUMBER(38) |
ID d'inscription de la table versionnée dans la table TABLE_REGISTRY |
|
GLOBALID |
NCHAR(38) |
GlobalID pour l'enregistrement modifié dans la table métier du jeu de données versionné |
L'exemple ci-dessous montre la relation entre l'un des jeux de données répliqués et la table SDE_UUID_TEMP$.
La table SDE_UUID_TEMP$ n'est pas supprimée lors de la fermeture de session car elle sera certainement réutilisée dans une autre session.
Tables de réplica dans un document XML
Si vous choisissez d'effectuer la réplication vers un document XML lors de la création du réplica, les données correspondantes et les jeux de données répliqués figurent entre balises <GPReplica> comme illustré ci-dessous.
Dans cet exemple, le nom du réplica est toagency et la réplication a été effectuée à partir de la version de géodatabase 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>
Autres définitions de jeu de données
</GPReplicaDatasets>
<TransferRelatedObjects>true</TransferRelatedObjects>
</GPReplicaDescription>
<ReconcilePolicy>esriReplicaResolveConflictsNone</ReconcilePolicy>
</GPReplica>