Краткий обзор синхронизации автономных реплик

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

Для реплик в автономной среде синхронизация достигается путем ручного обмена сообщениями между репликами.

Обзорная схема автономной синхронизации
Автономная синхронизация требует ручной процесс обмена сообщениями между репликами для передачи данных.

Можно обмениваться двумя типами сообщений:

  • Сообщения об изменении данных
  • Сообщения подтверждения

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

Экспорт сообщений об изменении данных

Изменения данных включают новые изменения данных и неподтвержденные изменения данных. Новые изменения - это вставки, обновления и удаления, примененные к версии реплики с момента экспорта последнего сообщения об изменении данных. К неподтвержденным изменениям данных относятся ранее экспортированные изменения, в отношении которых вы не получили подтверждения. Для экспорта сообщений об изменении данных доступны две команды:

  • Сообщение об экспорте изменений данных - по умолчанию вы можете экспортировать все новые изменения данных и все неподтвержденные изменения данных. Вы можете включить новые изменения данных, неподтвержденные изменения данных, и то, и другое, или ни то, ни другое. Вы также можете переключить реплику с отправителя на получателя при экспорте. Если вы переключаетесь, в дельта-файл добавляется отметка, которая заставляет связанную реплику переключаться с получателя на отправителя при импорте.
  • Реэкспорт неподтвержденных сообщений - вы можете реэкспортировать только файл неподтвержденных сообщений об изменении данных. По умолчанию включены все неподтвержденные изменения, но вы можете включить только изменения из самого последнего экспорта.

Экспорт сообщения подтверждения

Сообщение подтверждения подтверждает получение изменений данных от связанной реплики. Если связанная реплика не получит подтверждения, она повторно отправит изменения данных. Принятие практики регулярной отправки и импорта сообщений подтверждения избавляет вас от необходимости повторно отправлять изменения. Инструмент Экспорт сообщения подтверждения может использоваться для экспорта сообщений подтверждения.

Импорт сообщений

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

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

Опции согласования

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

Более подробно об обзоре конфликтов

Ниже приведены политики согласования:

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

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

Параметры согласования аналогичны тем, которые предлагаются для синхронизации подключенных реплик.

Определить конфликты

Вы также можете выбирать для этой операции согласования опции выявления конфликтов на уровне столбца и на уровне строки.

Более подробно о том, как согласовать версию.