Доступно с лицензией Standard или Advanced.
При работе с репликами в автономной среде синхронизация производится путем ручного обмена сообщениями между репликами.
Может быть произведен обмен двух типов сообщений: сообщения об изменении данных и сообщения подтверждения. Сообщения об изменении данных содержат изменения данных, а сообщения подтверждения подтверждают прием сообщений об изменениях данных. Реплики, которые являются отправителями данных, могут отсылать сообщения об изменениях данных, а реплики, которые являются получателями данных, могут отсылать сообщения подтверждения. Более подробно см. автономная синхронизация.
Экспорт сообщений об изменении данных
Изменения данных включают в себя новые изменения данных и неподтвержденные изменения данных. Новыми изменениями считаются вставки, обновления и удаления, произведенные для версии реплики с момента последнего экспорта сообщения изменений данных. Неподтвержденные изменения данных включают в себя экспортированные ранее изменения, для которых вы не получили сообщение о подтверждении приема. Существует две команды, которые доступны для экспорта сообщений изменений данных:
- Экспортировать сообщение об изменении данных (Export Data Changes message) — по умолчанию эта команда производит экспорт всех новых изменений данных и всех неподтвержденных изменений данных. Вы можете выбрать, нужно ли включать новые изменения данных и нужно ли включать неподтвержденные изменения данных. Вы также можете выбрать, нужно ли переключить реплику из режима отправителя (sender) в режим получателя (receiver) при экспорте сообщений. Если вы произведете переключение, то к дельта-файлу будет добавлена отметка, что вызовет переключение связанной реплики из режима получателя в режим отправителя при импорте сообщений.
- Реэкспортировать неподтвержденные сообщения (Re-export Unacknowledged messages) — Данная команда произведет повторный экспорт только неподтвержденных изменений данных в дельта-файл. По умолчанию будут включены все неподтвержденные изменения, но вы можете выбрать опцию включения изменений только из последнего экспорта.
Экспорт сообщений подтверждения
Сообщение подтверждения производит подтверждение получения изменений данных от связанной реплики. Пока связанная реплика не получит подтверждения, она будет повторно отправлять изменения данных. Использование техники регулярной отправки и импорта сообщений подтверждения избавит вас от необходимости повторной отправки изменений. Команда экспорта сообщения подтверждения (export acknowledgment message) может быть использована для отправки сообщений подтверждения.
Импорт сообщений
Команда импортировать сообщение (import message) может импортировать сообщения изменений данных или сообщения подтверждения. Импорт сообщения подтверждения произведет обновление метаданных реплики, так чтобы она знала, какие изменения должны быть включены в следующем экспорте. Импорт сообщения изменения данных произведет внесение изменений данных из связанной реплики, а также обновит метаданные реплики.
Опции согласования
При импорте сообщения изменений данных синхронизация производится между версией синхронизации и версией реплики. В течение этого согласования могут возникнуть конфликты. Перед импортом сообщения вы можете выбрать политику согласования, чтобы определить, как управлять конфликтами.
Более подробно об обзоре конфликтов
Политики согласования включают в себя:
- Вручную. В рамках этой политики при возникновении конфликта операция согласования будет прервана, а реплика будет отмечена как имеющая конфликт. Это дает вам возможность выполнения согласования после этого либо вручную, либо путем запуска определенного пользовательского кода согласования. Как только согласование будет выполнено, и изменения будут закреплены в версии реплики, реплика больше не будет находиться в конфликтном согласовании. Пока реплика находится в конфликтном состоянии, она может принимать, но не может отправлять изменения.
- В пользу базы данных — В этом случае при возникновении конфликта представление данных в базе данных, импортирующей изменения, будет иметь приоритет над изменениями в дельта-файле. Поскольку конфликты будут разрешаться автоматически, то при использовании данной политики реплика никогда не будет находиться в конфликтном состоянии после выполнения синхронизации.
- В пользу импортированных изменений — В этом случае при возникновении конфликта представление данных, определенное импортированными изменениями, будет автоматически иметь приоритет над представлением реплики. Поскольку конфликты будут разрешаться автоматически, то при использовании данной политики реплика никогда не будет находиться в конфликтном состоянии после выполнения синхронизации.
Стандартной политикой является использование представления данных в родительской реплике. Следовательно, при импортировании изменений в дочернюю реплику по умолчанию конфликты будут разрешаться в пользу импортированных изменений. При импортировании изменений в родительскую реплику по умолчанию конфликты будут разрешаться в пользу базы данных.
Заметьте, что опции согласования будут похожи на те, которые предоставляются для синхронизации реплик с подключением по сети.
Определение конфликтов
Вы также можете выбирать для этого согласования опции выявления конфликтов на уровне столбца и на уровне строки.
Более подробно про Согласование версий.