Как выполняется репликация
При репликации слиянием с Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) выполняются следующие действия.
- Данные публикуются на сервере SQL Server.
- Создается подписка на публикацию.
- Обновляются данные подписчика.
- Выполняется синхронизация данных.
В следующей таблице приведены некоторые термины, используемые в данном разделе.
Понятие | Определение |
---|---|
Статья |
Таблица базы данных, для которой разрешена репликация. |
Публикация |
Набор статей. |
Разбиение на секции |
Определенный набор строк или столбцов публикации |
Издатель |
База данных, предоставляющая возможность использования публикации путем репликации. |
Подписчик |
База данных, которая получает реплицированные данные и может передавать издателю сведения об изменении данных. |
Подписка |
Запрос копии публикации, которая должна быть доставлена подписчику. |
База данных подписки |
База данных, которая получает статьи, опубликованные издателем. |
Публикация данных
При публикации указывается, какие данные должны быть опубликованы. Как правило, публикации настраиваются с учетом потребностей различных пользователей или групп пользователей. В некоторых случаях всем пользователям необходимы одни и те же данные. Например, каждому работнику компании может потребоваться копия списка сотрудников данной компании. В других случаях различным группам пользователей необходимы различные данные. Например, торговые агенты и сотрудники службы поддержки могут запрашивать разные сведения. Кроме того, отдельным сотрудникам могут быть необходимы данные, отфильтрованные в соответствии с их потребностями. Например, торговым агентам могут быть нужны данные только о собственных заказчиках.
При создании публикации указывается, какие статьи входят в эту публикацию. Хотя публикации SQL Server могут включать и другие объекты базы данных (такие как хранимые процедуры, представления и определенные пользователем функции), репликация SQL Server Compact Edition игнорирует эти объекты и включает только таблицы, содержащиеся в подписке SQL Server Compact Edition. Применение фильтрации позволяет указать, какие именно строки и столбцы должны входить в статью. Дополнительные сведения см. в разделе "Репликация" электронной документации SQL Server.
Выполнение подписки на публикации
После определения публикации приложение осуществляет подписку на эту публикацию. Подписка может выполняться программным путем (посредством вызова методов, предоставляемых объектом SQL Server Compact Edition Replication или классом SqlCeReplication либо с помощью мастера создания подписки в SQL Server Management Studio. После создания подписки начальный моментальный снимок с распространителя применяется к базе данных подписки на подписчике.
Обновление данных подписчика
Пользовательские приложения могут вносить изменения в базу данных подписки. Репликация слиянием позволяет изменять любую базу данных в автономном режиме. Изменения могут вноситься независимо от того, подключено ли устройство к сети. Каждая база данных SQL Server Compact Edition использует отслеживание изменений, чтобы сохранять сведения о выполнении инструкции INSERT, UPDATE и DELETE на подписчике SQL Server Compact Edition. При этом может применяться отслеживание на уровне строк и на уровне столбцов.
Внимание. Отслеживание на уровне столбцов поддерживается только при синхронизации с издателем SQL Server 2005. При репликации с SQL Server 2000 поддерживается только отслеживание на уровне строк.
Синхронизация данных
В большинстве сценариев подключение устройств к сети носит периодический характер. Пока устройство подключено к сети, приложения могут синхронизировать изменения, внесенные в базу данных подписчика, с изменениями, внесенными в базу данных издателя. Приложение начинает синхронизацию посредством вызова методов синхронизации, предоставляемых объектом Replication или классом SqlCeReplication. Синхронизация включает четыре этапа.
Извлечение изменений и создание входного файла сообщений
Агент клиента SQL Server Compact Edition извлекает все вставленные, обновленные и удаленные записи из базы данных подписки на подписчике SQL Server Compact Edition и отправляет их агенту сервера SQL Server Compact Edition по протоколу HTTP. Агент сервера SQL Server Compact Edition создает новый входной файл сообщений и сохраняет в этом файле сведения об изменениях, переданные агентом клиента SQL Server Compact Edition.Запуск процесса SQL Server Reconciler и сохранение изменений в базе данных публикации
Когда все запросы будут записаны во входной файл сообщений, агент сервера SQL Server Compact Edition запустит процесс SQL Server Reconciler. SQL Server Reconciler загружает поставщика репликации SQL Server Compact Edition, который считывает входной файл сообщений и уведомляет SQL Server Reconciler об изменениях, которые были внесены в базу данных подписки SQL Server Compact Edition и должны быть сохранены в базе данных издателя. В процессе обработки SQL Server Reconciler обнаруживает и разрешает конфликты. Конфликты возникают, если одну и ту же запись изменяют несколько подписчиков или издателей.
Примечание. SQL Server Reconciler разрешает конфликты с помощью механизмов разрешения конфликтов. В качестве простого метода разрешения конфликтов приложения SQL Server Compact Edition могут воспользоваться механизмом разрешения конфликтов, предоставляемым SQL Server. Для реализации более сложных методов разработчик может создать собственный механизм разрешения конфликтов. Дополнительные сведения см. в разделе Обнаружение и разрешение конфликтов репликации.Создание выходного файла сообщений
SQL Server Reconciler сообщает поставщику репликации SQL Server Compact Edition об изменениях, которые были внесены в базу данных издателя и должны быть сохранены в базе данных подписки на устройстве. Поставщик репликации SQL Server Compact Edition сохраняет эти изменения в выходном файле сообщений на сервере IIS.Чтение выходного файла сообщений и внесение изменений в базу данных подписки SQL Server Compact Edition.
Когда процесс SQL Server Reconciler завершается, агент сервера SQL Server Compact Edition находит выходной файл сообщений, созданный поставщиком репликации SQL Server Compact Edition. Этот файл содержит изменения, которые были сделаны в базе данных издателя и теперь должны быть внесены в базу данных подписки на устройстве. Агент сервера SQL Server Compact Edition считывает выходной файл сообщений и передает его агенту клиента SQL Server Compact Edition на устройстве. Агент клиента SQL Server Compact Edition сохраняет изменения, перечисленные в выходном файле сообщений, в базе данных подписки SQL Server Compact Edition.
Примечание. Агент клиента SQL Server Compact Edition обрабатывает входные и выходные файлы сообщений логическими блоками в соответствии с тем, как он считывает сведения об изменениях или вносит изменения в базу данных подписки на устройстве. Это позволяет агенту клиента SQL Server Compact Edition не сохранять файл сообщений на устройстве полностью и экономить место на устройстве.
После того как агент клиента SQL Server Compact Edition закончит внесение изменений в базу данных подписки на устройстве и все конфликты будут устранены , базы данных подписки и публикации будут синхронизированы, и конвергенция данных будет завершена. Однако, поскольку обновления производятся постоянно, значения данных в базах данных подписчика и издателя могут иметь различия.
Важно! |
---|
Для одной и той же базы данных нельзя одновременно выполнять два процесса репликации слиянием. |