Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: SQL Server Управляемый экземпляр SQL Azure
Перед разработкой приложения с использованием функций репликации, следуйте следующим общим шагам планирования:
Определить топологию репликации.
Определить функциональные возможности приложения.
Учесть в плане требования безопасности.
Выбрать среду разработки.
Выбрать соответствующий программный интерфейс репликации.
Остальная часть этой статьи описывает эти шаги более подробно. Чтобы лучше проиллюстрировать процесс планирования, приводится пример.
Определение топологии репликации
Первый шаг программной реализации средств репликации состоит в определении топологии репликации для конкретного приложения. Если вы пишете приложение, использующее существующую топологию репликации, например, клиентское приложение, которое обращается к данным существующего абонента, переходите к следующему этапу.
Примечание.
В некоторых случаях развертывание топологии репликации является единственной целью приложения.
Определение топологии репликации зависит от многих факторов, включая следующие:
Нужно ли обновлять реплицированные данные и кем?
Требования к распределению данных, касающиеся согласованности, автономности и задержки.
Среду репликации, включая бизнес-пользователей, техническую инфраструктуру, сеть и средства обеспечения безопасности, а также характеристики данных.
Типы и параметры репликации.
Топологии репликации и степень их соответствия типам репликации.
Если вы новичок в репликации Microsoft SQL Server, см. раздел «Типы репликации».
Определение функциональности приложений
После определения топологии репликации определитесь, какие функциональности предлагает ваше приложение. Эти функциональные возможности могут начинаться со скрипта, с помощью которого синхронизируется подписка, и заканчиваться приложением с пользовательским интерфейсом для настройки репликации. Репликацией поддерживаются следующие общие задачи программирования:
Подготовка средств репликации к работе.
Синхронизация подписчиков.
Сопровождение топологии репликации.
Текущее наблюдение за топологией репликации.
Устранение неполадок в работе средств репликации.
Также часто расширяют приложение, объединяя функции репликации с другими функциями, предоставляемыми SQL Server. В следующей таблице выделяются некоторые расширенные функциональные возможности, которые могут быть предоставлены в конкретном приложении репликации.
| Функция | Пример |
|---|---|
| Администрирование сервера с помощью объектов управления SQL Server (SMO) | Приложение, которое предоставляет возможность администратору подключаться и настраивать базу данных в качестве издателя в топологии репликации. |
| Доступ к данным с использованием технологии ADO.NET | Приложение, позволяющее пользователям программно получать доступ и изменять реплицированные данные продаж в локальной базе данных абонентов в офлайн, а затем подключать и синхронизировать pull подписку с помощью кнопки. |
Планирование безопасности
Безопасность важна в любом приложении, и нужно планировать её до написания кода. Задачу обеспечения безопасности приложения можно разделить на три основные части: безопасность базы данных, безопасность репликации и написание безопасного кода.
Следующие статьи предоставляют информацию о безопасности:
Выбор среды разработки
При разработке приложения для репликации рассмотрите эти три основных среды разработки. Каждая среда разработки предоставляет доступ к одним и тем же функциональным возможностям репликации, за некоторыми исключениями. Вы можете разрабатывать приложения для репликации в каждой из следующих сред.
Управляемый код
Объектно-ориентированная среда разработки, использующая преимущества программирования .NET Framework и среды исполнения общего языка .NET (CLR). Управляемый код — это рекомендуемая среда программирования для приложений .NET для разработки и SQL Server. Управляемые интерфейсы репликации позволяют программировать администрирование репликации в объектно-ориентированном виде без необходимости знать Transact-SQL. Также он предоставляет некоторые функции обратного вызова при запуске агентов репликации, которые недоступны в скриптах. Управляемый код представляет собой наилучшую среду для разработки многократно используемых компонентов и приложений с пользовательским интерфейсом.
Скрипты
Простые приложения, выполняющие ряд команд в виде хранимых процедур системы репликации в скриптах Transact-SQL или командах в пакетных файлах. Хотя скрипты можно запускать в управляемой среде, используя управляемый провайдер SQL Server in-process, ту же функциональность можно получить с помощью управляемых репликационных интерфейсов, которые также обеспечивают функции обратного вызова. Скриптирование — лучшая среда для выполнения задач, которые выполняются всего несколько раз и не требуются функции обратного вызова, например, установка сервера репликации.
Машинный код
Объектно-ориентированная среда разработки, использующая прямой доступ к объектам системы или COM, при этом код не управляется CLR. Интерфейсы репликации с машинным кодом считаются устаревшими или не поддерживаются. Дополнительные сведения см. в статьях Устаревшие функции репликации SQL Server или Обратная совместимость репликации.
Выберите подходящий интерфейс репликационного программирования
Конечный шаг планирования предусматривает выбор соответствующего программного интерфейса репликации, который реализует необходимые функциональные возможности репликации для выбранной среды разработки. В следующей таблице показаны доступные интерфейсы программирования репликации.
| Интерфейс | Среда | Использование |
|---|---|---|
| Концепции объектов управления репликацией | Управляемый код | Администрирование, текущее наблюдение и синхронизация. |
| Microsoft.SqlServer.Replication | Управляемый код | Синхронизация. |
| Microsoft.SqlServer.Replication.BusinessLogicSupport | Управляемый код | Создание обработчиков бизнес-логики для интеграции пользовательской логики с процессом синхронизации слиянием. |
| Хранимые процедуры репликации (Transact-SQL) | Скрипты | Администрирование и текущее наблюдение. |
| Основные понятия исполняемых модулей агента репликации | Скрипты | Синхронизация. |
Пример
В Adventure Works данные должны быть опубликованы для 200 представителей по продажам по всему миру. Торговые представители часто путешествуют и им необходимо использовать ноутбуки или персональные цифровые помощники (КПК) для изменения данных клиентов и добавления новых заказов. Торговые представители должны синхронизировать изменения с Publisher при подключении ноутбука к сети.
Для данного приложения шаги планирования могут выглядеть следующим образом:
Топология репликации для этого приложения уже существует. Однако вам нужно создать новую pull-подписку у клиента. Используйте параметризованные фильтры в публикации для репликации уникального набора данных каждому торговому представителю.
Кроме типичного доступа к данным, необходимого для приложения в системе продаж, это приложение должно предоставлять менеджеру по продажам возможность в любое время синхронизировать подписку по запросу путем нажатия одной кнопки. Поскольку торговый представитель устанавливает и запускает приложение, он также должен иметь возможность настроить подписку и применить начальный снимок клиенту. Опционально приложение использует инфраструктуру Windows для обнаружения беспроводной связи, чтобы автоматически синхронизировать подписку при обнаружении соединения.
Соблюдайте все правила безопасности для репликации, включая использование аутентификации Windows и виртуальной приватной сети (VPN) при подключении к Publisher. Если вы реализуете веб-синхронизацию, используйте соединение Transport Layer Security (TLS), ранее известное как Secure Sockets Layer (SSL). Дополнительные сведения см. в разделе Configure Web Synchronization.
Чтобы воспользоваться возможностями .NET Framework, разрабатывайте приложение с помощью управляемого языка кода.
Изучение этих требований показывает, что все необходимые функциональные возможности репликации для этого приложения может предоставить управляемый интерфейс объектов RMO.
Вы можете скачать пример приложения AdventureWorks, реализующий этот пример, с SQL Server.