Синхронизация и работа с версиями

Доступно с лицензией Standard или Advanced.

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

Ниже описывается, как версии используются в каждом из процессов синхронизации:

Отправка изменений

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

Получение изменений

Когда реплика получает изменения, происходит следующее:

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

Изменения вносятся в версию синхронизации.

Затем версия синхронизации согласуется с версией реплики. Модель поведения на данном этапе определяется в зависимости от типа реплики:

  • Двухсторонние реплики — При работе с двухсторонними репликами в ходе согласования могут возникнуть конфликты. При возникновении конфликтов, для определения способа обработки конфликта используется политика согласования конфликтов. Если конфликты отсутствуют, или все они будут разрешены средствами политики автоматического согласования, то в версии реплики будет закреплена версия синхронизации.
  • Открепленные реплики - при работе с открепленными репликами согласование и закрепление является необязательным, и эти операции не выполняются по умолчанию. Если вы решите не производить согласование и закрепление, то изменения останутся в версии синхронизации. Вы сможете произвести согласование и закрепление вручную позднее. Если вы решите произвести согласование и закрепление, то модель поведения будет такой же, как и для двухсторонних реплик.
  • Односторонние реплики - при работе с односторонними репликами изменения в версии реплики всегда перезаписываются, и в ней никогда не бывает неразрешенных конфликтов. При использовании модели простого типа данные дочерней реплики не могут быть версионными. Если дочерняя версия не является версионной, изменения будут применены непосредственно к базовым таблицам. Изменения также часто переписываются напрямую в случаях, когда дочерняя реплика содержится в файловой базе геоданных.

Версия синхронизации согласована и закреплена.

Как только изменения будут закреплены в версии реплики, версия синхронизации будет удалена. При работе с двухсторонними репликами, пока будет существовать версия синхронизации, будет считаться, что в реплике имеются конфликты. Имея конфликты, реплика сможет получать, но не сможет отправлять изменения.

Версия синхронизации удалена.

Примечание:

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