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


Основные понятия программирования репликации

Область применения: SQL Server Управляемый экземпляр SQL Azure

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

  1. Определить топологию репликации.

  2. Определить функциональные возможности приложения.

  3. Учесть в плане требования безопасности.

  4. Выбрать среду разработки.

  5. Выбрать соответствующий программный интерфейс репликации.

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

Определение топологии репликации

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

Примечание.

В некоторых случаях единственным назначением приложения является развертывание топологии репликации.

Определение топологии репликации зависит от многих факторов, включая следующие:

  • Необходимость обновления реплицированных данных, и кто это должен делать.

  • Требования к распределению данных, касающиеся согласованности, автономности и задержки.

  • Среду репликации, включая бизнес-пользователей, техническую инфраструктуру, сеть и средства обеспечения безопасности, а также характеристики данных.

  • Типы и параметры репликации.

  • Топологии репликации и степень их соответствия типам репликации.

Если вы не знакомы с репликацией Microsoft SQL Server, см. статью "Типы репликации".

Определение функциональных возможностей приложения

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

  • Подготовка средств репликации к работе.

  • Синхронизация подписчиков.

  • Сопровождение топологии репликации.

  • Текущее наблюдение за топологией репликации.

  • Устранение неполадок в работе средств репликации.

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

Функция Пример
Администрирование сервера с помощью объектов управления SQL Server (SMO) Приложение, которое предоставляет возможность администратору подключаться и настраивать базу данных в качестве издателя в топологии репликации.
Доступ к данным с использованием технологии ADO.NET Приложение, которое позволяет пользователю получать доступ программным путем и вносить изменения в реплицированные данные продаж в локальной базе данных подписчика, работая в режиме «вне сети», а затем подключаться и синхронизировать подписку по запросу нажатием одной кнопки.

Планирование средств безопасности

Обеспечение безопасности является важной задачей в любом приложении, поэтому планирование средств безопасности должно быть завершено до написания любого кода. Задачу обеспечения безопасности приложения можно разделить на три основные части: безопасность базы данных, безопасность репликации и написание безопасного кода.

Сведения об обеспечении безопасности приведены в следующих разделах:

Выбор среды разработки

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

  • Управляемый код

    Объектная среда разработки, которая использует преимущества программирования платформа .NET Framework и среды CLR .NET. Управляемый код — это рекомендуемая среда программирования для приложений .NET для разработки и SQL Server. Интерфейсы управляемой репликации позволяют программированию администрирования репликации в объектно-ориентированном режиме без необходимости знать Transact-SQL, а также предоставляют некоторые функции обратного вызова при выполнении агентов репликации, недоступных из скриптов. Управляемый код представляет собой наилучшую среду для разработки многократно используемых компонентов и приложений с пользовательским интерфейсом.

  • Скрипты

    Простые приложения, выполняющие ряд команд в виде хранимых процедур системы репликации в скриптах Transact-SQL или командах в пакетных файлах. Хотя вы можете выполнять скрипты в управляемой среде с помощью управляемого поставщика SQL Server, те же функции можно получить с помощью управляемых интерфейсов репликации, которые также предоставляют функции обратного вызова. Среда скриптовой поддержки является наиболее подходящей для выполнения задач, которые вызываются лишь несколько раз и для которых не требуются функциональные возможности обратного вызова, таких как установка сервера репликации.

  • Машинный код

    Объектно-ориентированная среда разработки, в которой используется прямой доступ к системе или к COM-объектам так, что не происходит управление кодом в среде CLR. Интерфейсы репликации с машинным кодом считаются устаревшими или не поддерживаются. Дополнительные сведения см. в статьях Устаревшие функции репликации SQL Server или Обратная совместимость репликации.

Выбор соответствующего программного интерфейса репликации

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

Интерфейс Среда Использование
Replication Management Objects Concepts Управляемый код Администрирование, текущее наблюдение и синхронизация.
Microsoft.SqlServer.Replication Управляемый код Синхронизация.
Microsoft.SqlServer.Replication.BusinessLogicSupport Управляемый код Создание обработчиков бизнес-логики для интеграции пользовательской логики с процессом синхронизации слиянием.
Хранимые процедуры репликации (Transact-SQL) Скрипты Администрирование и текущее наблюдение.
Replication Agent Executables Concepts Скрипты Синхронизация.

Пример

В Adventure Works данные должны быть опубликованы для 200 представителей по продажам по всему миру. Торговые представители часто находятся в командировках и вынуждены использовать переносные компьютеры или карманные компьютеры для обмена данными с заказчиком и добавления новых заказов. Затем изменения в данных должны быть синхронизированы с издателем, после подключения торговым представителем своего переносного компьютера к сети.

Для данного приложения шаги планирования могут выглядеть следующим образом:

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

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

  3. Должны соблюдаться все рекомендации по безопасности, касающиеся репликации, в том числе использование проверки подлинности Windows и виртуальной частной сети при соединении с издателем. При реализации веб-синхронизации для соединения используйте протокол TLS, ранее называемый SSL. Дополнительные сведения см. в разделе Configure Web Synchronization.

  4. Чтобы воспользоваться функциями платформа .NET Framework, приложение разрабатывается с помощью управляемого языка кода.

  5. Изучение этих требований показывает, что все необходимые функциональные возможности репликации для этого приложения может предоставить управляемый интерфейс объектов RMO.

Этот пример сценария реализован в примере приложения AdventureWorks, которое можно скачать для SQL Server.