Поделиться через


Как выполняется репликация

При репликации слиянием с Microsoft SQL Server Compact 3.5 выполняются следующие действия.

  1. Данные публикуются на сервере SQL Server.

  2. Создается подписка на публикацию.

  3. Обновляются данные подписчика.

  4. Выполняется синхронизация данных.

В следующей таблице приведены некоторые термины, используемые в данном разделе.

Понятие

Определение

Статья

Таблица базы данных, для которой разрешена репликация.

Публикация

Набор статей.

Разбиение на секции

Определенный набор строк или столбцов публикации.

Издатель

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

Подписчик

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

Подписка

Запрос копии публикации, которая должна быть доставлена подписчику.

База данных подписки

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

Публикация данных

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

При создании публикации указывается, какие статьи входят в эту публикацию. Хотя публикации SQL Server могут включать и другие объекты базы данных (такие как хранимые процедуры, представления и определенные пользователем функции), репликация SQL Server Compact 3.5 пропускает эти объекты и включает только таблицы, содержащиеся в подписке SQL Server Compact 3.5. Применение фильтрации позволяет указать, какие именно строки и столбцы должны входить в статью. Дополнительные сведения см. в разделе «Репликация» электронной документации SQL Server.

Выполнение подписки на публикации

После определения публикации приложение осуществляет подписку на эту публикацию. Подписку можно осуществить программно с помощью вызова методов, предоставляемых объектом SQL Server Compact 3.5 Replication или классом SqlCeReplication , либо с помощью мастера создания подписки в среде SQL Server Management Studio. После создания подписки начальный моментальный снимок с распространителя применяется к базе данных подписки на подписчике.

Обновление данных подписчика

Пользовательские приложения могут вносить изменения в базу данных подписки. Репликация слиянием позволяет изменять любую базу данных в автономном режиме. Изменения могут вноситься независимо от того, подключено ли устройство к сети. Каждая база данных SQL Server Compact 3.5 использует отслеживание изменений, чтобы сохранять сведения о выполнении инструкции INSERT, UPDATE и DELETE на подписчике SQL Server Compact 3.5. При этом может применяться отслеживание на уровне строк и на уровне столбцов.

Синхронизация данных

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

  1. Извлечение изменений и создание входного файла сообщений

    Агент клиента SQL Server Compact 3.5 извлекает все вставленные, обновленные и удаленные записи из базы данных подписки на подписчике SQL Server Compact 3.5 и отправляет их агенту сервера SQL Server Compact 3.5 по протоколу HTTP. Агент сервера SQL Server Compact 3.5 создает новый входной файл сообщений и сохраняет в этом файле сведения об изменениях, переданные агентом клиента SQL Server Compact 3.5.

  2. Запуск процесса SQL Server Reconciler и сохранение изменений в базе данных публикации

    Когда все запросы будут записаны во входной файл сообщений, агент сервера SQL Server Compact 3.5 запустит процесс SQL Server Reconciler. SQL Server Reconciler загружает поставщика репликации SQL Server Compact 3.5, который считывает входной файл сообщений и уведомляет SQL Server Reconciler об изменениях, которые были внесены в базу данных подписки SQL Server Compact 3.5 и должны быть сохранены в базе данных издателя. В процессе обработки SQL Server Reconciler обнаруживает и разрешает конфликты. Конфликты возникают, если одну и ту же запись изменяют несколько подписчиков или издателей.

    Примечание

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

  3. Создание выходного файла сообщений

    SQL Server Reconciler сообщает поставщику репликации SQL Server Compact 3.5 об изменениях, которые были внесены в базу данных издателя и должны быть сохранены в базе данных подписки на устройстве. Поставщик репликации SQL Server Compact 3.5 сохраняет эти изменения в выходном файле сообщений на сервере IIS.

  4. Чтение выходного файла сообщений и внесение изменений в базу данных подписки SQL Server Compact 3.5.

    Когда процесс SQL Server Reconciler завершается, агент сервера SQL Server Compact 3.5 находит выходной файл сообщений, созданный поставщиком репликации SQL Server Compact 3.5. Этот файл содержит изменения, которые были сделаны в базе данных издателя и теперь должны быть внесены в базу данных подписки на устройстве. Агент сервера SQL Server Compact 3.5 считывает выходной файл сообщений и передает его агенту клиента SQL Server Compact 3.5 на устройстве. Агент клиента SQL Server Compact 3.5 сохраняет изменения, перечисленные в выходном файле сообщений, в базе данных подписки SQL Server Compact 3.5.

    Примечание

    Агент клиента SQL Server Compact 3.5 обрабатывает входные и выходные файлы сообщений в логических блоках по мере считывания или применения изменений к базе данных подписок на устройстве. Это позволяет агенту клиента SQL Server Compact 3.5 не сохранять файл сообщений на устройстве полностью и экономить место на устройстве.

После того как агент клиента SQL Server Compact 3.5 закончит внесение изменений в базу данных подписки на устройстве и все конфликты будут устранены, базы данных подписки и публикации будут синхронизированы, и конвергенция данных будет завершена. Однако, поскольку обновления производятся постоянно, значения данных в базах данных подписчика и издателя могут иметь различия.

Важно!

Для одной и той же базы данных нельзя одновременно выполнять два процесса репликации слиянием.