Файл Readme: образец репликации слиянием Sales Orders

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

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

Сценарий

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

Языки

  • C#
  • Transact-SQL

Характеристики

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

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

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

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

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

  • SQL Server 2005 или более поздняя версия, включая следующие дополнительные компоненты.
    • службы компонента SQL Server Database Engine (включая репликацию);
    • Клиентские средства.
    • Образец базы данных OLTP AdventureWorks. Этот образец базы данных доступен на странице Microsoft SQL Server Samples and Community Projects (Образцы кода и проекты сообщества Microsoft SQL Server) веб-узла CodePlex.
    • Образцы SQL Server. Эти образцы доступны на странице Microsoft SQL Server Samples and Community Projects (Образцы кода и проекты сообщества Microsoft SQL Server) веб-узла CodePlex. Дополнительные сведения см. в разделе Вопросы установки образцов кода и образцов баз данных SQL Server.
  • Пакет .NET Framework SDK 2.0 или среда Microsoft Visual Studio 2005. Пакет .NET Framework SDK распространяется бесплатно. Дополнительные сведения см. в разделе Установка документации по .NET Framework.

Необходимые разрешения

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

  • Чтобы запустить файл InstallSalesOrdersSample.bat, который выполняет настройку репликации, создает публикацию AdvWorksSalesOrders и формирует исходный моментальный снимок, учетная запись Windows должна быть членом предопределенной роли сервера sysadmin на издателе.

  • Образец Sales Orders работает с различными компонентами Database Engine и задачами репликации, включая создание базы данных AdventureWorksLocal, создание локальной подписки и запуск агента слияния для инициализации, повторной инициализации или синхронизации подписки. Чтобы успешно запустить исполняемый файл образца (SalesOrders.exe) на подписчике, учетная запись Windows должна иметь, по меньшей мере, разрешение CREATE DATABASE на подписчике.

    ms160955.note(ru-ru,SQL.100).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\100\COM. При использовании веб-синхронизации необходимо также поместить копию сборки BusinessLogic.dll в каталог C:\Program Files\Microsoft SQL Server\100\COM на веб-сервере.

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

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

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

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

  4. Перейдите в каталог установки сценариев образца Sales Order. Путь по умолчанию: C:\Program Files\Microsoft SQL Server\100\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 успешно создал виртуальный каталог или если использование веб-синхронизации не планируется. Дополнительные сведения об использовании этого мастера см. в разделе How to: Configure an IIS Server for Web Synchronization (SQL Server Management Studio).

  8. Перед продолжением убедитесь, что задание агента моментальных снимков для публикации AdvWorksSalesOrders успешно завершено. За состоянием выполнения этого задания можно проследить с помощью монитора репликации. Дополнительные сведения об использовании монитора репликации для просмотра состояния заданий агента моментальных снимков см. в разделе How to: View Information and Perform Tasks for the Agents Associated With a Publication (Replication Monitor) электронной документации по SQL Server.

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

  1. В командной строке перейдите в каталог установки образцов SQL Server. По умолчанию это каталог C:\Program Files\Microsoft SQL Server\100\Samples\.

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

    sn -k SampleKey.snk

    ms160955.note(ru-ru,SQL.100).gifПримечание.
    Если данный ключ уже был создан ранее для использования с другим образцом, этот шаг можно пропустить.

  3. Перейдите в каталог, в котором находится образец решения Sales Orders на языке Microsoft Visual C#. Путь по умолчанию: C:\Program Files\Microsoft SQL Server\100\Samples\Replication\Merge\SalesOrders\CS.

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

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

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

    • замените значение ключа подписчика на имя локального сервера;
    • замените значение ключа издателя на имя сервера, который был предварительно настроен как издатель;
    • замените значение ключа WebSynchronizationUrl, если при соединении с издателем используется веб-синхронизация (необязательно). Это можно сделать во время выполнения приложения.
    • Используйте ключ SyncWhenConnectedInterval для установки интервала между синхронизациями в секундах, при использовании возможности синхронизации при соединении (необязательно).
    ms160955.note(ru-ru,SQL.100).gifПримечание.
    Репликация не поддерживает имя localhost в качестве имени сервера.

  7. Поместите копию сборки BusinessLogic.dll в каталог C:\Program Files\Microsoft SQL Server\100\COM.

  8. При использовании веб-синхронизации необходимо также поместить копию сборки BusinessLogic.dll в каталог C:\Program Files\Microsoft SQL Server\100\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.100).gifПримечание.
    Если во время веб-синхронизации возникает ошибка протокола HTTP, откройте обозреватель Internet Explorer и из меню Сервис выберите Параметры, Соединения и Настройка локальной сети. Убедитесь, что Автоматическое обнаружение настроек отключено.

  3. Запустите приложение SalesOrders.exe из среды Visual Studio 2005 или из командной строки. Когда приложение запускается в первый раз, то создаются база данных подписки и сама подписка. Кроме того, для инициализации подписки запускается агент слияния.

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

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

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

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

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

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

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

    • Выберите параметр повторной инициализации, чтобы повторно инициализировать подписку (необязательно).

    • Выберите пункт Параметры веб-синхронизации, задайте URL-адрес, используя учетные данные проверки подлинности Windows для доступа к веб-серверу через защищенное соединение по протоколу HTTPS (необязательно). Для использования этого параметра необходимо наличие настроенного для веб-синхронизации IIS-сервера.

      ms160955.note(ru-ru,SQL.100).gifПримечание.
      Синхронизация только на передачу или только на загрузку данных при веб-синхронизации не поддерживается. Если веб-синхронизация разрешена, пункт меню Только передача данных отключен.

    • Выберите пункт Получить состояние подписки для просмотра результатов последних сеансов агента слияния (необязательно).

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

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

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

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

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

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

  1. На издателе перейдите в каталог, содержащий сценарии образца Sales Orders. Путь по умолчанию: C:\Program Files\Microsoft SQL Server\100\Samples\Replication\Merge\SalesOrders\Scripts.

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

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

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

  4. На подписчике в базе данных AdventureWorksLocal выполните хранимую процедуру sp_removedbreplication (Transact-SQL).

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

Примечания

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

См. также

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

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

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

Основные понятия программирования репликации
Справочный центр разработчика (репликация)

Справка и информация

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