Занятие 1. Публикация данных с помощью репликации слиянием
На этом занятии с помощью среды Среда SQL Server Management Studio создается публикация слиянием с целью публикации подмножества таблиц Employee, SalesOrderHeader и SalesOrderDetail в образце базы данных AdventureWorks2012 . Эти таблицы фильтруются с помощью параметризованных фильтров строк, так что каждая подписка содержит уникальную секцию данных. Также в список доступа к публикации добавляется имя входа SQL Server, используемое агентом слияния. Для работы с этим учебником требуется завершить работу с предыдущим учебником, Подготовка сервера для репликации.
Создание публикации и определение статей
Подключитесь к издателю в среде Среда SQL Server Management Studio, а затем раскройте узел сервера.
Раскройте папку Репликация, щелкните правой кнопкой мыши элемент Локальные публикации и выберите пункт Создать публикацию.
Будет запущен мастер настройки публикации.
На странице «База данных публикации» выберите AdventureWorks2012 и нажмите кнопку Далее.
На странице «Тип публикации» выберите Публикация слиянием и нажмите кнопку Далее.
На странице «Типы подписчиков» убедитесь, что выбрана только SQL Server 2008 или более поздняя версия, и нажмите кнопку Далее.
На странице «Статьи» разверните узел Таблицы, выберите SalesOrderHeader и SalesOrderDetail, затем разверните узел Employee, выберите EmployeeID или LoginID и нажмите кнопку Далее.
Совет Дополнительные требуемые столбцы выделяются автоматически. Выберите один из автоматически выбранных столбцов и просмотрите примечание под списком Объекты для публикации, объясняющее причину обязательного наличия столбца.
На странице «Фильтрация строк таблицы» нажмите кнопку Добавить, а затем щелкните Добавить фильтр.
В диалоговом окне Добавление фильтра выберите Сотрудник (HumanResources) в поле Выбор таблицы для фильтрации, щелкните столбец LoginID, нажмите кнопку со стрелкой вправо, чтобы добавить столбец в предложение WHERE фильтра запроса, и измените предложение WHERE следующим образом:
WHERE [LoginID] = HOST_NAME()
Щелкните элемент Строка из этой таблицы будет отправлена только одной подписке и нажмите кнопку ОК.
На странице Фильтрация строк таблицы выберите Сотрудник (кадры), нажмите Добавить, а затем Добавить соединение для расширения выбранного фильтра.
В диалоговом окне Добавление соединения выберите Sales.SalesOrderHeader в Соединяемая таблица, щелкните Создать инструкцию соединения вручную и завершите инструкцию соединения следующим образом:
ON Employee.EmployeeID = SalesOrderHeader.SalesPersonID
В поле Укажите параметры соединения выберите Уникальный ключ, а затем нажмите кнопку ОК.
На странице «Фильтрация строк таблицы» щелкните SalesOrderHeader, нажмите кнопку Добавить, а затем щелкните Добавить соединение для расширения выбранного фильтра.
В диалоговом окне Добавление соединения выберите Sales.SalesOrderDetail в поле Соединяемая таблица.
Нажмите Создать инструкцию соединения вручную.
В поле Столбцы отфильтрованной таблицы выберите BusinessEntityID, затем нажмите кнопку со стрелкой, чтобы скопировать имя столбца в инструкцию соединения.
В поле Инструкция соединения завершите инструкцию соединения следующим образом:
ON Employee.BusinessEntityID = SalesOrderHeader.SalesPersonID
В поле Укажите параметры соединения выберите Уникальный ключ, а затем нажмите кнопку ОК.
На странице Фильтрация строк таблицы выберите SalesOrderHeader (Sales), нажмите Добавить, затем Добавить соединение для расширения выбранного фильтра.
В диалоговом окне Добавление соединения выберите Sales.SalesOrderDetail в поле Соединяемая таблица, нажмите кнопку ОК, а затем кнопку Далее.
Установите флажок Создать моментальный снимок немедленно, снимите флажок Запланировать запуск агента моментальных снимков в следующее время и нажмите кнопку Далее.
На странице «Безопасность агента» щелкните Параметры безопасности, введите <Machine_Name>\repl_snapshot в поле Учетная запись процесса, укажите пароль для этой учетной записи и нажмите кнопку ОК. Нажмите кнопку Готово.
На странице «Завершение работы мастера» введите «AdvWorksSalesOrdersMerge» в поле Имя публикации и нажмите кнопку Готово.
По завершении создания публикации нажмите кнопку Закрыть.
Просмотр состояния создания моментального снимка
Подключитесь к издателю в среде Среда SQL Server Management Studio, а затем раскройте узел сервера и папку Репликация.
В папке «Локальные публикации» щелкните правой кнопкой мыши публикацию AdvWorksSalesOrdersMerge и выберите пункт Просмотр состояния агента моментальных снимков.
Отобразится текущее состояние задания агента моментальных снимков для публикации. Перед тем как перейти к следующему занятию, убедитесь, что задание моментального снимка выполнено успешно.
Добавление имени входа агента слияния в список доступа к публикации
Подключитесь к издателю в среде Среда SQL Server Management Studio, а затем раскройте узел сервера и папку Репликация.
В папке «Локальные публикации» щелкните правой кнопкой мыши публикацию AdvWorksSalesOrdersMerge и выберите пункт Свойства.
Откроется диалоговое окно Свойства публикации.
Выберите страницу Список доступа к публикации и нажмите кнопку Добавить.
В диалоговом окне «Добавление доступа к публикации» выберите <Machine_Name>\repl_merge и нажмите кнопку ОК. Нажмите кнопку ОК.
Следующие шаги
Публикация слиянием успешно создана. Далее будет создана подписка на эту публикацию. См. раздел Занятие 2. Создание подписки на публикацию слиянием.
См. также
Основные понятия
Фильтрация опубликованных данных
Параметризованные фильтры строк
Другие ресурсы
Как настроить публикацию и распространение (программирование репликации на языке Transact-SQL)
Как создать публикацию (программирование репликации на языке Transact-SQL)