Репликация базы геоданных использует для реплик в многопользовательских базах геоданных версии в процессе синхронизации. Управление версиями используется для определения изменений, которые должны быть отправлены и получены. Исключение - это если вы используете архивирование при отслеживании изменений в односторонней репликации.
Ниже описывается, как версии используются в каждом из процессов синхронизации:
Отправка изменений
Когда реплика отправляет изменения, анализируются версия реплики (определенная при создании реплики) и системные версии. При выполнении данного анализа могут быть отобраны изменения, которые уже были отосланы ранее в ходе синхронизаций или определения того, что некоторые изменения должны быть снова отправлены. При работе с открепленными репликами в файловой базе геоданных анализируется внутренняя таблица, содержащая все изменения. Для односторонней репликации с использованием архивирования архивный класс анализируется для определения, какие изменения отправлять.
Получение изменений
Когда реплика получает изменения, происходит следующее:
Сперва изменения вносятся в версию синхронизации. Версия синхронизации является дочерней версией реплики, предназначенной для временного хранения синхронизированных изменений до тех пор, пока они не будут согласованы и опубликованы в версии реплики. При работе с двухсторонними и односторонними репликами эта версия не может быть создана до момента запуска синхронизации, а при работе с открепленными репликами версия создается во время создания реплики. На рисунке ниже версия реплики может быть либо default, либо с именем.
Затем версия синхронизации согласуется с версией реплики. Модель поведения на данном этапе определяется в зависимости от типа реплики:
- Двухсторонние реплики — При работе с двухсторонними репликами в ходе согласования могут возникнуть конфликты. При возникновении конфликтов для определения управления конфликтами будет использоваться определенная политика согласования. Если конфликтов не возникнет или все они будут разрешены средствами политики автоматического согласования, то в версии реплики будет закреплена версия синхронизации.
- Открепленные реплики - при работе с открепленными репликами согласование и закрепление является необязательным, и эти операции не выполняются по умолчанию. Если вы решите не производить согласование и закрепление, то изменения останутся в версии синхронизации. Вы сможете произвести согласование и закрепление вручную позднее. Если вы решите произвести согласование и закрепление, то модель поведения будет такой же, как и для двухсторонних реплик.
- Односторонние реплики - при работе с односторонними репликами изменения в версии реплики всегда перезаписываются, и в ней никогда не бывает неразрешенных конфликтов. При использовании модели простого типа данные дочерней реплики не могут быть версионными. Если дочерняя версия не является версионной, изменения будут применены непосредственно к базовым таблицам. Изменения также часто переписываются напрямую в случаях, когда дочерняя реплика содержится в файловой базе геоданных.
Как только изменения будут закреплены в версии реплики, версия синхронизации будет удалена. При работе с двухсторонними репликами, пока будет существовать версия синхронизации, будет считаться, что в реплике имеются конфликты. Имея конфликты, реплика сможет получать, но не сможет отправлять изменения.
Примечание:
Рекомендуется выполнять согласование и закрепление реплик под паролем владельца реплики. По умолчанию, версия синхронизации защищенная, и доступ ней имеет только владелец реплики. Если сделать версию открытой, можно согласовывать и сохранять изменения под паролем пользователя или владельца другой реплики. Но отправлять изменения вы должны под учетной записью владельца реплики.