Реплики в базе геоданных в Oracle

Репликацию базы геоданных можно использовать для создания копий данных по двум или более версионным базам геоданных, так чтобы эти изменения данных можно было синхронизировать. Процесс синхронизации включает в себя процессы отправки изменений данных одной репликой и прием изменений связанной с ней другой репликой.

Перед тем как вы создадите двухстороннюю или одностороннюю реплику, необходимо добавить столбец GlobalID в наборы данных, которые должны быть реплицированы. Это обеспечит строкам в наборе данных уникальные значения, которые являются постоянными в базе геоданных. (Подробные сведения по подготовке набора данных к репликации см. в разделе Подготовка данных для репликации.)

После внесения изменений, которые были сделаны в одной из реплик, вы можете синхронизировать базы геоданных, произведя изменения, совершенные в одной базе геоданных, в связанной базе геоданных. Когда база геоданных синхронизирована со связанной базой геоданных, в пользовательской схеме создается таблица реплики базы геоданных (которая отправляет изменения в связанную базу данных) для отслеживания происхождения измененных наборов данных.

Таблицы реплик в ArcGIS for Desktop

Вы не можете видеть таблицы, использующиеся для синхронизации, в ArcGIS for Desktop; они используются в фоновом режиме и только во время синхронизации.

Однако вы можете определить, что база геоданных используется как реплика базы геоданных, проверив ее свойства в окне Каталог (Catalog). Щелкните правой кнопкой базу геоданных и выберите Свойства (Properties). На закладке Общие (General) находится секция Статус распределенной базы геоданных (Distributed Geodatabase Status). Если база геоданных была реплицирована или является репликой, то в статусной строке будет отображаться сообщение "Это реплика базы геоданных" ("This is a replica geodatabase").

В ArcMap имеется MXD-файл, который содержит один или несколько слоев, которые реплицируются, так как активны большинство (или даже все) инструменты из набора инструментов Распределенная база геоданных (Distributed Geodatabase). Также, если вы откроете менеджер реплик, то увидите одну или несколько реплик.

Таблицы реплик в базе данных Oracle

Чтобы наборы данных можно было реплицировать, они должны иметь столбец GlobalID и должны быть зарегистрированы как полностью версионные (не зарегистрированы с настройкой сохранять изменения в базе). Поэтому в базе данных бизнес-таблицы любых наборов данных, которые включены в реплику, имеют столбец GUID и дельта-таблицы.

Реплики отслеживаются в базе данных в системных таблицах базы геоданных GDB_ITEMS, GDB_ITEMRELATIONSHIPS и GDB_REPLICALOG. Тот факт, что это реплика, записывается в системную таблицу GDB_ITEMTYPES. См. разделы Системные таблицы базы геоданных в Oracle.

Таблицы связаны показанным ниже образом:

Таблицы реплик в Oracle

Штриховые линии определяют неявные отношения между столбцами.

Как было сказано ранее, наборы данных должны иметь столбцы Глобальных идентификаторов GlobalID, чтобы быть реплицированными. Далее показан версионный класс объектов Districts, у которого есть столбец GlobalID.

Версионный набор данных со столбцом GlobalID

После выполнения синхронизации между двумя базами геоданных, для отслеживания согласования наборов данных создается таблица SDE_UUID_TEMP$. Данная таблица может быть использована в нескольких сеансах одновременно. В Oracle, таблица SDE_UUID_TEMP$ создается как глобальная временная таблица. Описание данной таблицы представлено ниже.

SDE_UUID_TEMP$

Таблица SDE_UUID_TEMP$ используется, чтобы определить происхождение заданного объекта, используя его значение GlobalID.

Имя поля

Тип поля

Описание

Null?

REGISTRATION_ID

NUMBER(38)

Регистрационный идентификатор (registration ID) версионной таблицы из таблицы TABLE_REGISTRY

GLOBALID

NCHAR(38)

Глобальный идентификатор GlobalID для измененной строки в бизнес-таблице версионного набора данных

Далее показано, как один из реплицированных наборов данных связан с таблицей 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>

Связанные темы

9/11/2013