Образец Sales Orders для репликации слиянием

Изменения: 14 апреля 2006 г.

Файл Readme содержит подробные сведения по установке и выполнению образца Sales Orders. Кроме того, в этом файле указаны известные проблемы для данного образца.

Сценарий

Данный образец иллюстрирует топологию репликации слиянием для передачи данных мобильным пользователям, а также демонстрирует программные возможности для репликации слиянием в SQL Server 2005. Образец является приложением Windows Forms, использующим стандартные технологии Майкрософт для доступа к данным и репликацию слиянием, и позволяет менеджерам по продажам хранить собственные локальные данные, а также выполнять периодическую синхронизацию с домашним офисом. Этот образец поддерживается подписчиками, работающими под управлением любого выпуска SQL Server 2005. Публикация также поддерживает подписчики SQL Server Compact Edition. Дополнительные сведения об этом образце сценария см. в разделе Sales Orders Sample Scenario.

Языки

  • C#
  • Transact-SQL

Возможности

Образец Sales Orders демонстрирует следующие возможности репликации слиянием:

  • объекты RMO;
  • параметризованный фильтр строк;
  • предварительно вычисляемые секции;
  • запрашиваемые клиентом секционированные снимки;
  • оптимизация производительности на основе типа статей;
  • подписчики с выпусками SQL Server Compact Edition и Express Edition;
  • автоматическое управление диапазонами идентификаторов;
  • обработчики бизнес-логики;
  • веб-синхронизация (дополнительно).

Дополнительные сведения о демонстрируемых в образце возможностях репликации см. в разделе Sales Orders Sample Implementation Details.

Предварительные требования

Прежде чем запустить этот образец, убедитесь, что установлено следующее программное обеспечение.

  • SQL Server 2005 с пакетом обновления 1, включая следующие дополнительные компоненты.
    • Службы SQL Server Database Services (включая репликацию).
    • Компоненты клиентского подключения.
    • Модели программирования.
    • Средства разработки (включая пакет SDK).
    • образец базы данных OLTP AdventureWorks Этот образец базы данных включен в комплект поставки SQL Server 2005, а также доступен на веб-узле SQL Server Developer Center.
    • Образцы компонента SQL Server 2005. Данные образцы входят в комплект SQL Server 2005, а также доступны в центре разработчиков на SQL Server. Дополнительные сведения см. в разделе Установка образцов.
  • Пакет .NET Framework SDK 2.0 или среда Microsoft Visual Studio 2005. Пакет .NET Framework SDK можно получить бесплатно. Дополнительные сведения см. в разделе Установка пакета .NET Framework SDK.
    ms160955.note(ru-ru,SQL.90).gifПримечание.
    Для создания исходного моментального снимка необходимо, чтобы на издателе был применен пакет обновления 1 SQL Server 2005. Чтобы использовать данный образец на издателе SQL Server 2005, на котором не применен пакет обновления 1, необходимо сначала удалить и заново создать ограничение FK_SalesOrderDetail_SalesOrderHeader_SalesOrderID FOREIGN KEY для таблицы SalesOrderHeader без предложения ON DELETE CASCADE.

Требуемые разрешения

Разрешения, требуемые для настройки и запуска образца Sales Orders, основаны на требованиях безопасности репликации и приведены ниже.

  • Чтобы запустить файл InstallSalesOrdersSample.bat, который выполняет конфигурирование репликации, создает публикацию AdvWorksSalesOrders и формирует исходный снимок, учетная запись Windows должна быть членом фиксированной серверной роли sysadmin на издателе.
  • Образец Sales Orders работает с различными компонентами Database Engine и задачами репликации, включая создание базы данных AdventureWorksLocal, создание локальной подписки и запуск агента слияния для инициализации, повторной инициализации или синхронизации подписки. Чтобы успешно запустить исполняемый файл образца (SalesOrders.exe) на подписчике, учетная запись Windows должна иметь, по меньшей мере, разрешение CREATE DATABASE на подписчике.
    ms160955.note(ru-ru,SQL.90).gifПримечание.
    Если подписки и локальная база данных уже существуют, то для запуска приложения учетная запись Windows должна быть, как минимум, членом фиксированной роли базы данных db_owner в базе данных AdventureWorksLocal на подписчике.
  • Чтобы инициализировать подписку и выполнить синхронизацию с издателем, используемая для подключения к издателю (или к веб-серверу при использовании веб-синхронизации) учетная запись должна отвечать следующим требованиям.
    • Наличие действительного имени входа на издатель, связанного с пользователем в базе данных публикации.
    • Иметь действительное имя входа на распространителе, связанное с пользователем в базе данных распространителя (гостевое имя пользователя).
    • Входить в список доступа к публикации (PAL) для публикации AdvWorksSalesOrders.

Построение и настройка образца

Для построения образца проекта и настройки топологии репликации необходимо сделать следующее.

  • На издателе запустите сценарий установки репликации.
  • (Необязательно) Настройте сервер IIS для поддержки веб-синхронизации при репликации слиянием. Если этого не сделать, возможности веб-синхронизации в этом образце будут недоступны.
  • На подписчике измените настройки в файле app.config образца.
  • На подписчике постройте образец с помощью Visual Studio 2005 или .NET Framework 2.0 SDK.
  • На подписчике поместите копию сборки BusinessLogic.dll в каталог «C:\Program Files\Microsoft SQL Server\90\COM». При использовании веб-синхронизации необходимо также поместить копию сборки BusinessLogic.dll в каталог «C:\Program Files\Microsoft SQL Server\90\COM на веб-сервере».

Настройка образца Sales Orders на издателе

  1. Убедитесь, что образец базы данных AdventureWorks установлен, и база данных подключена. Если база данных не подключена, см. раздел Установка образцов баз данных и примеров AdventureWorks электронной документации по SQL Server.

  2. Убедитесь в том, что установлены образцы компонента SQL Server Database Engine.

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

  3. Убедитесь, что запущен агент SQL Server. Просмотреть состояние этой службы и запустить ее можно при помощи Обозревателя объектов среды SQL Server Management Studio.

  4. Перейдите в каталог установки образцов сценариев Sales Order. По умолчанию это каталог «C:\Program Files\Microsoft SQL Server\90\Samples\Replication\Merge\SalesOrders\Scripts».

  5. (Необязательно) Настройте протокол SSL на издателе или на сервере, использующем веб-синхронизацию. Протокол SSL необходим для связи между сервером IIS и всеми подписчиками. Чтобы настроить протокол SSL, необходимо указать сертификат IIS сервера, который будет использован.

  6. Запустите файл InstallSalesOrdersSample.bat и по запросу введите имя входа (в формате «ДОМЕН\имя_входа» с учетом регистра) и пароль для учетной записи Windows, под которой будет запущено задание агента моментальных снимков. После этого будет запущен файл sqlcmd.exe для выполнения SQL-сценария CreateAdvWorksSalesOrdersPublication.sql, который сделает следующее:

    • проверяет, была ли настроена репликация на локальном сервере (если она не была настроена, то локальный сервер настраивается как издатель с локальным распространителем, использующим базу данных распространителя);
    • удаляет и повторно создает хранимые процедуры и определенные пользователем функции, используемые для доступа к данным на клиенте;
    • удаляет и повторно создает публикацию AdvWorksSalesOrders;
    • добавляет статьи к публикации;
    • регистрирует обработчик бизнес-логики на распространителе;
    • запускает агент моментальных снимков для формирования исходного моментального снимка.

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

  7. (Необязательно) Запустите мастер настройки веб-синхронизации для настройки IIS сервера для поддержки веб-синхронизации. Пропустите этот шаг, если файл InstallSalesOrdersSample.bat успешно создал виртуальный каталог или если использование веб-синхронизации не планируется. Дополнительные сведения об использовании этого мастера см. в разделе Как настроить сервер IIS для веб-синхронизации.

  8. Перед продолжением убедитесь, что задание агента моментальных снимков для публикации AdvWorksSalesOrders успешно завершено. Состояние выполнения этого задания может быть просмотрено в мониторе репликации. Дополнительные сведения об использовании монитора репликации для просмотра состояний работы заданий агента моментальных снимков см. в разделе Как просмотреть сведения и выполнить задачи для агентов, связанных с публикацией (монитор репликации) электронной документации по SQL Server.

Построение и настройка образца Sales Orders на подписчике

  1. Используя командную строку, перейдите в установочный каталог образцов SQL Server 2005. По умолчанию это каталог «C:\Program Files\Microsoft SQL Server\90\Samples».

  2. В командной строке .NET Framework или Microsoft Visual Studio 2005 выполните следующие команды:

    sn -k SampleKey.snk

    ms160955.note(ru-ru,SQL.90).gifПримечание.
    Если данный ключ уже был создан ранее для использования с другим образцом, этот шаг можно пропустить.
  3. Перейдите в каталог, в котором находится образец решения Sales Orders на языке Microsoft Visual C#. Каталог по умолчанию — «C:\Program Files\Microsoft SQL Server\90\Samples\Replication\Merge\SalesOrders\CS».

  4. Откройте файл решения SalesOrders.sln в среде Visual Studio 2005.

  5. Постройте проект.

  6. В выходной папке проекта отредактируйте файл SalesOrders.exe.config, изменив:

    • замените значение ключа подписчика на имя локального сервера;
    • замените значение ключа издателя на имя сервера, который был предварительно настроен как издатель;
    • (необязательно) замените значение ключа WebSynchronizationUrl, если при соединении с издателем используется веб-синхронизация. Это может быть выполнено во время выполнения приложения;
    • (необязательно) используйте ключ SyncWhenConnectedInterval для установки интервала между синхронизациями в секундах, при использовании возможности синхронизации при соединении.
    ms160955.note(ru-ru,SQL.90).gifПримечание.
    Репликации не поддерживают имя localhost в качестве имени сервера.
  7. На подписчике поместите копию сборки BusinessLogic.dll в каталог «C:\Program Files\Microsoft SQL Server\90\COM».

  8. (Дополнительно) При использовании веб-синхронизации необходимо также поместить копию сборки BusinessLogic.dll в каталог «C:\Program Files\Microsoft SQL Server\90\COM» на веб-сервере.

Выполнение образца

Запуск образца «Sales Orders» и синхронизация данных

  1. Убедитесь, что удаленные соединения разрешены на издателе и на подписчике (TCP/IP или именованные каналы) и что запущена служба «SQL Server, агент».

  2. (Необязательно) На подписчике проверьте соединение веб-синхронизации, подключившись к веб-серверу в режиме диагностики и следуя инструкциям подраздела «Настройка сертификатов клиентов на подписчике» в разделе How to: Configure Web Synchronization for Merge Replication (Replication Transact-SQL Programming).

    ms160955.note(ru-ru,SQL.90).gifПримечание.
    Если во время веб-синхронизации возникает ошибка протокола HTTP, откройте обозреватель Internet Explorer и из меню Сервис выберите Параметры, Соединения и Настройка локальной сети. Убедитесь, что Автоматическое обнаружение настроек отключено.
  3. Запустите приложение SalesOrders.exe из среды Visual Studio 2005 или командной строки. Когда приложение запускается в первый раз, то создаются база данных подписки и сама подписка. Кроме того, для инициализации подписки запускается агент слияния.

  4. После инициализации данных подписки будет загружена форма Заказы на продажу, отображающая список существующих заказов, которые принадлежат менеджеру по продажам «adventure-works\garrett1».

  5. Используя форму Заказы на продажу, можно выполнять следующие действия с данными о продажах.

    • Изменять сведения о заказе на продажу.
    • Добавлять новый объект в заказ на продажу.
    • Удалять объекты из заказа на продажу.
    • Изменять количество объектов в заказе на продажу.
  6. Выберите метод синхронизации для подписок из меню Синхронизация.

  7. (Необязательно) Установите флажок Синхронизация при подключении для автоматической синхронизации подписки. Установите интервал синхронизации для фоновой синхронизации, используя ключ SyncWhenConnectedInterval в файле app.config.

    ms160955.note(ru-ru,SQL.90).gifПримечание.
    Функция Синхронизация при подключении недоступна при запуске на платформе Microsoft . Дополнительные сведения см. в разделе Sales Orders Sample Implementation Details.

Использование дополнительных параметров синхронизации для образца «Sales Orders»

  1. В списке Дополнительно меню Синхронизация выберите один из следующих вариантов.

    • (Необязательно) Выберите параметр повторной инициализации, чтобы повторно инициализировать подписку.
    • (Необязательно) Выберите Параметры веб-синхронизации, задайте URL-адрес, используя учетные данные проверки подлинности Windows для доступа к веб-серверу через защищенное соединение по протоколу HTTPS. Для использования этого параметра необходимо наличие уже настроенного для веб-синхронизации сервера IIS.
      ms160955.note(ru-ru,SQL.90).gifПримечание.
      Синхронизация только на прием или только на передачу данных не поддерживается при использовании веб-синхронизации. Если веб-синхронизация разрешена, пункт Только передача данных отключен.
    • (Необязательно) Выберите пункт Получение состояния о подписке для просмотра результатов о последних сессиях агента слияния.

Удаление образца

Используйте следующую процедуру для удаления образца «Sales Orders».

Удаление только подписок

  1. На всех подписчиках выполните следующий сценарий Transact-SQL, чтобы удалить подписки по запросу.

    -- This batch is executed at the Subscriber to remove 
    -- the Sales Orders sample subscription.
    DECLARE @publisher AS sysname;
    
    -- change this value to the name of the Publisher server.
    SET @publisher = N'PUBSERVER'; 
    
    USE [AdventureWorksLocal]
    EXEC sp_dropmergepullsubscription 
      @publisher = @publisher, 
      @publisher_db = N'AdventureWorks',
      @publication = N'AdvWorksSalesOrders';
    GO
    
  2. На издателе выполните следующий сценарий Transact-SQL, чтобы отменить регистрацию подписки по запросу.

    -- This batch is executed at the Publisher to remove 
    -- the Sales Orders sample subscription.
    DECLARE @subscriber AS sysname;
    
    -- change this value to the name of the Subscriber server.
    SET @subscriber = N'SUBSERVER'; 
    
    USE [AdventureWorks]
    EXEC sp_dropmergesubscription 
      @publication = N'AdvWorksSalesOrders', 
      @subscriber = @subscriber, 
      @subscriber_db = N'AdventureWorksLocal';
    GO
    

Удаление образца «Sales Orders»

  1. Зайдите на издателе в каталог размещения образцов сценариев «Sales Orders». По умолчанию это каталог «C:\Program Files\Microsoft SQL Server\90\Samples\Replication\Merge\SalesOrders\Scripts».

  2. Выполните пакетный файл RemoveSalesOrdersSample.bat.

  3. В ответ на вопрос введите «Y» и нажмите клавишу ВВОД, чтобы удалить на издателе все объекты репликации. Удалите все объекты репликации в базе данных подписки, а затем публикацию и распространение на издателе.

    ms160955.note(ru-ru,SQL.90).gifВажно!
    При использовании этого сценария вся инфраструктура репликации будет удалена. Если созданы другие публикации, которые используют этого издателя или распространителя, не выполняйте SQL-сценарий DropAdvWorksSalesOrdersPublication.sql. Вместо этого удалите AdvWorksSalesOrders вручную. Дополнительные сведения см. в разделах Как удалить публикацию (среда SQL Server Management Studio) или How to: Delete a Publication (Replication Transact-SQL Programming) электронной документации по SQL Server.
  4. На подписчике в базе данных AdventureWorksLocal выполните хранимую процедуру Хранимая процедура sp_removedbreplication (Transact-SQL).

  5. Измените контекст базы данных на master и выполните инструкцию DROP DATABASE AdventureWorksLocal.

Примечания

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

См. также

Основные понятия

Образцы репликации

Другие ресурсы

Planning for Replication Programming
Справочный центр разработчика репликации

Справка и поддержка

Получение помощи по SQL Server 2005

Журнал изменений

Версия Журнал

14 апреля 2006 г.

Измененное содержимое
  • Системные требования повышены до SQL Server 2005 с пакетом обновления 1.
  • Добавлено примечание о выполнении образца на издателе SQL Server 2005.

5 декабря 2005 г.

Измененное содержимое
  • Обновлены сведения об этапах развертывания.
  • Обновлено создание ключа и развертывание данных для отражения изменений образцов.