SQL.RU
 client/server technologies
 Главная | Документация | Статьи | Книги | Форум | Блоги | Опросы | Гостевая | Рассылка | Работа | Поиск | FAQ |

Репликация баз данных SQL Server 2000

ПУБЛИКАЦИИ  

Глава из учебника: "Администрирование MS SQL Server 2000 (+CD). 2-е изд. Экзамен №228"
Авторы рассылки благодарят издательский дом ПИТЕР за предоставленные к публикации материалы.

Аннотация издательства

Книга посвящена сопровождению СУБД Microsoft SQL Server 2000. Здесь рассмотрены планирование, установка, обновление и администрирование SQL Server 2000. Подробно обсуждаются логическая и физическая структура баз данных, процессы восстановления и резервного копирования, управление доступом и разрешениями в SQL Server 2000, реализация и автоматизация административных задач. Освещаются вопросы мониторинга производительности и активности, а также проблемы выбора типа и модели репликации. Отдельная глава посвящена обеспечению повышенной доступности баз данных. Учебный курс адресован профессионалам, занимающимся развертыванием и сопровождением SQL Server 2000, а также тем, кто хочет подготовиться к сдаче экзамена №70-228 «Installing, Configuring, and Administering Microsoft SQL Server 2000 Enterprise Edition» по программам сертификации MCSA (Microsoft Certified Systems Administrators) и MCSE (Microsoft Certified Systems Engineer). Издание состоит из 16 глав, приложения и предметного указателя. Прилагаемый к книге компакт-диск содержит 120-дневную пробную версию Microsoft SQL Server 2000 Enterprise Edition, а также словарь терминов, учебные и справочные материалы.

СОДЕРЖАНИЕ

Г Л А В А 1 5 - Репликация баз данных

В этой главе

Здесь рассказывается о репликации БД SQL Server. Вы узнаете о типах и о моделях репликации, а также о проблемах настройки эффективного и безопасного процесса репликации.
Вы научитесь использовать утилиту SQL Server Enterprise Manager для организации репликации, создания публикаций и конфигурирования подписчиков. Наконец, вы сможете вести мониторинг репликации, а также конфигурировать свойства распространителей и агентов репликации.

Прежде всего

Для изучения материалов этой главы вам потребуются:

  • компьютер, соответствующий минимальным аппаратным требованиям, перечисленным в главе 2;

  • ОС Microsoft Windows 2000 Server, установленная на разделе диска с файловой системой NTFS;

  • компьютер с сетевым именем SelfPacedCPU, сконфигурированный как контроллер домена SelfPacedSQL.MSFT;

  • один установленный по умолчанию и по крайней мере один именованный экземпляр SQL Server 2000 на одном компьютере.

[В начало]

Занятие 1. Обзор репликации

SQL Server 2000 предоставляет разнообразные решения репликации, позволяющие распространять данные и хранимые процедуры между серверами вашей рабочей среды. На этом занятии вы узнаете, зачем нужно дублирование информации, а также познакомитесь с терминологией репликации. Также вы познакомитесь с каждым из существующих типов и с моделями репликации. Наконец, вы узнаете о различных средствах реализации решений по репликации БД.
Изучив материал этого занятия, вы сможете:

  • использовать терминологию репликации;

  • описать характерные особенности каждого из типов репликации;

  • выбрать подходящую модель и средства репликации.

Продолжительность занятия - около 15 минут

[В начало]

Процесс репликации

Репликация (replication) - это процесс автоматического распределения копий данных и объектов БД между экземплярами SQL Server с одновременной синхронизацией всей распространяемой информации.

Почему необходимо реплицировать данные

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

  • Снижение сетевого трафика между удаленными офисами. Например, чтобы пользователи из нью/йоркского отделения компании не запрашивали данные с лондонского сервера по каналу с ограниченной пропускной способностью, можно реплицировать эти данные на нью/йоркский сервер (в тот момент, когда не будет сильной нагрузки, отрицательно отражающейся на пропускной способности канала связи) и обращаться к ним локально.

  • Отделение OLTP/операций от функций средств поддержки принятия решений. Чтобы пользователи системы поддержки принятия решений не выполняли запросы на занятом OLTP/сервере, данные для запроса можно реплицировать на выделенный сервер поддержки принятия решений.

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

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

  • Расширение системы за пределы ЛВС. Данные, для доступа к которым используется Интернет, могут быть реплицированы на различные серверы в разных географических регионах для равномерного распределения нагрузки между серверами.

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

[В начало]

Типы репликации

SQL Server 2000 поддерживает три типа репликации (replication types) - моментальных снимков, транзакций и сведением. Репликация моментальных снимков (snapshot replication) - это периодическая репликация целостного набора данных, зафиксированного по состоянию на определенный момент времени, с локального сервера на удаленные. Лучше использовать этот тип репликации в БД, где количество реплицируемых данных невелико, а источник данных статичен. Вы можете предоставлять удаленным серверам ограниченную возможность обновления реплицированных данных. Репликация транзакций (transactional replication) - это репликация начального моментального снимка данных на удаленные серверы, а также репликация отдельных транзакций, работающих на локальном сервере и выполняющих последовательные изменения данных в начальном моментальном снимке.
Эти реплицированные транзакции выполняются над реплицируемыми данными на каждом удаленном сервере для синхронизации данных на удаленном сервере с данными локального сервера. Вы можете использовать этот тип репликации, если вам необходимо постоянное обновление данных на удаленных серверах. Вы можете предоставлять удаленным серверам ограниченную возможность обновления реплицированных данных. Репликация сведением (merge replication)- это репликация начального моментального снимка данных на удаленные серверы, а также репликация изменений, происходящих на каком/либо удаленном сервере, обратно на локальный сервер с целью синхронизации, разрешения конфликтов и повторной репликации на удаленные серверы. Вы можете использовать репликацию сведением в случае, когда многочисленным изменениям подвергаются одни и те же данные, либо когда удаленные независимые компьютеры работают автономно, например, как в случае автономного пользователя.

[В начало]

Терминология репликации

Средства репликации SQL Server используют терминологию издательской деятельности для названий процессов и компонентов репликации. Сервер, реплицирующий сохраненную информацию на другие серверы, называется издателем (publisher). Реплицируемая информация состоит из одной или нескольких публикаций (publications). Каждая публикация представляет собой логически согласованный набор данных отдельной БД и состоит из одной или нескольких статей (articles). Статья может быть одним или несколькими объектами следующего типа:

  • часть или целая таблица (с фильтрацией по столбцам и/или по строкам);

  • хранимая процедура или определение представления;

  • выполнение хранимой процедуры;

  • представление;

  • индексированное представление;

  • пользовательская функция.

В процессе репликации каждый издатель взаимодействует с распространителем (distributor). Последний сохраняет публикуемые БД, историю событий и метаданные. Роль распространителя зависит от типа репликации. При этом распространитель может быть локальным (тот же экземпляр SQL Server) или удаленным (отдельный экземпляр SQL Server).
Серверы, получающие реплицируемую информацию, называются подписчиками (subscribers). Они получают избранные публикации - подписки (subscriptions) - от одного или нескольких издателей. В зависимости от типа репликации, подписчикам может быть разрешено изменять реплицируемую информацию, а также реплицировать измененную информацию обратно издателю. Подписчики могут быть авторизованы, или могут быть анонимными (анонимная подписка используется при публикации данных в Интернете).
Для больших публикаций использование анонимных серверов может повысить производительность системы.
Агенты репликации (replication agents) автоматизируют процесс репликации. Как правило, агент репликации - это задание службы SQL Server Agent, сконфигурированное администратором для выполнения специфических задач по расписанию. По умолчанию в среде Windows NT 4.0/2000 агенты репликации выполняются в контексте безопасности доменной учетной записи службы SQL Server Agent. В Windows 98/Me они выполняются в контексте безопасности зарегистрированного в системе пользователя. Существует некоторое число агентов репликации для различных задач репликации. Каждый агент сконфигурирован так для запуска по определенному расписанию. Различные типы репликации используют один или несколько таких агентов.

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

  • Агент Distribution передает моментальный снимок данных и по следующие изменения от распространителя подписчикам. Этот агент используется при репликации моментальных снимков и репликации транзакций. По умолчанию для всех подписок на отдельную публикацию используется один агент Distribution. Такой агент называется разделяемым (shared). Однако вы можете настроить систему так, чтобы у каждого подписчика был личный, независимый (independent), агент Distribution.

  • Агент Log Reader перемещает транзакции, помеченные для репликации, из журнала транзакций с сервера/издателя на сервер/распространитель. Этот агент используется при репликации транзакций. Каждая из помеченных для репликации БД будет иметь один агент Log Reader, запускающийся на распространителе и подключающийся к издателю.

  • Агент Queue Reader вносит в публикацию изменения, сделанные подписчиками в автономном режиме. Репликация мгновенных снимков и репликация транзакций используют этот агент в случае, если разрешена очередь обновлений. Агент запускается на распространителе, и существует только один экземпляр такого агента, обслуживающий всех издателей и публикации для конкретного распространителя.

  • Агент Merge передает моментальный снимок данных от распространителя подписчикам. Он также перемещает и контролирует изменения в реплицируемых данных между издателем и подписчиками. Этот агент дезактивирует подписки, информация которых не обновлялась в течение максимального срока хранения публикации (по умолчанию - 14 дней). Этот агент используется в случае репликации сведением. Каждая подписка на объединенную публикацию имеет свой объединяющий агент, который синхронизирует данные между сервером, публикующим данные, и серверами/подписчиками.

  • Агент History Clean Up удаляет журнал событий агента из БД распространения, и используется для управления размером этой БД. Все типы репликации используют этот агент. По умолчанию он запускается каждые 10 минут.

  • Агент Distribution Clean Up удаляет реплицированные транзакции из БД распространения, и отключает неактивных подписчиков, данные которых не обновлялись в течение максимального периода хранения распространяемых данных (по умолчанию - 72 часа). Если разрешены анонимные подписки, реплицированные транзакции не удаляются до истечения максимального периода хранения. Репликация моментальных снимков и репликация транзакций используют этот агент. По умолчанию он запускается каждые 10 минут.

  • Агент Expired Subscription Clean Up выявляет и удаляет подписки с истекшим сроком хранения. Все типы репликации используют этот агент. По умолчанию он запускается один раз в день.

  • Агент Reinitialize Subscriptions Having Data Validation Failures повторно инициализирует все подписки, имеющие ошибки при проверке согласованности данных. По умолчанию этот агент запускается вручную.

  • Агент Replication Agents Checkup являет неактивных агентов репликации и заносит соответствующие записи в журнал приложений Windows. По умолчанию он запускается каждые 10 минут.

Примечание: Агенты Snapshot, Distribution и Merge можно встраивать в приложения с помощью элементов управления ActiveX.

[В начало]

Обзор типов репликации

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

Репликация моментальных снимков

При репликации моментальных снимков агент Snapshot периодически (по заданному расписанию) копирует все помеченные для репликации данные с сервера/издателя в папку моментальных снимков распространителя. Агент Distribution периодически копирует все данные из папки моментальных снимков на каждый сервер/подписчик и, используя эти данные, полностью обновляет на нем публикацию. Агент Snapshot выполняется на распространителе, а агент Distribution может выполняться как на распространителе, так и на каждом сервере/подписчике. Оба агента записывают информацию журналов событий и журнала ошибок в БД распространения (рис. 15/1).
Репликация моментальных снимков наиболее подходит для работы с не слишком интенсивно изменяемыми данными, для небольших публикаций, которые могут обновляться полностью без существенного увеличения нагрузки на сеть, а также для данных, которые не нужно постоянно поддерживать в актуальном состоянии (допустим, архивные данные об объемах продаж).
При репликации моментальных снимков подписчикам можно разрешить обновлять реплицированную информацию немедленно (Immediate Updating) и/или в порядке очереди (Queued Updating). Возможность обновления подписки (Updatable Subscription) полезна, когда подписчикам требуется изредка изменять последнюю. Если же подписку изменяют часто, лучше использовать репликацию сведением. Кроме того, в случае с обновляемыми подписками все обновления являются частью транзакции. Это означает, что обновление либо целиком подтверждается, либо откатывается, если происходит конфликт. При репликации сведением конфликты разрешаются построчно.


Рис. 15_1. Процесс репликации моментальных снимков

Если используется немедленное обновление подписки, при любой попытке подписчика обновить реплицированные данные он сам или издатель инициируют транзакцию с двухэтапным подтверждением (two/phase commit, 2PC). 2PC/транзакция включает этап подготовки и этап подтверждения, и выполняется под управлением службы MS DTC, запущенной на подписчике и выступающей в качестве диспетчера транзакций. На подготовительном этапе MS DTC координирует действия служб SQL Server, запущенных на издателе и подписчике и играющих роль диспетчеров ресурсов, чтобы гарантировать успешное выполнение транзакции в обеих БД. На этапе подтверждения MS DTC получает от диспетчеров ресурсов уведомления об успешной подготовке, затем диспетчерам передается команда подтверждения и транзакция подтверждается на сервере/издателе и сервере/подписчике. Если на издателе имеется конфликт (конфликтующее обновление еще не было тиражировано на сервер/подписчик), транзакция, инициированная подписчиком, завершается неудачно. 2PC/транзакция гарантирует отсутствие конфликтов, поскольку издатель выявляет все конфликты до подтверждения транзакции.
Если используется очередь обновлений (Queued Updating), сделанные подписчиком изменения помещаются в очередь и периодически передаются издателю. Изменения могут быть выполнены при отсутствии соединения с издателем. Изменения, которые находятся в очереди, пересылаются на данный сервер, когда устанавливается соединение. Очередь может храниться либо в БД SQL Server, либо вы можете выбрать использование Microsoft Message Queuing, если работаете в среде Windows 2000. Подробнее об использовании Microsoft Message Queuing - в разделе "Queued Updating Components" справочной системы SQL Server Books Online. Так как обновления происходят не в реальном времени, то конфликты могут происходить, если другой подписчик или издатель изменили одни и те же данные. Конфликты разрешаются с использованием стратегии разрешения конфликтов, определяемой в момент создания публикации.
Если используются оба варианта обновления подписок, очередь обновлений выступает в качестве страховки на случай отказа немедленного обновления (например, из/за сбоев в работе сети). Это полезно, когда между издателем и подписчиком существует постоянное соединение, но при этом вы хотите убедиться, что подписчики могут совершать обновления в случае, если соединение разорвано.

[В начало]

Репликация транзакций

При репликации транзакций агент Snapshot создает исходный моментальный снимокданных, помеченных для репликации, и копирует его с сервера/издателя в папку моментальных снимков распространителя. Агент Distribution направляет полученный снимок каждому подписчику. Агент Log Reader следит за изменениями данных, участвующих в репликации, и фиксирует каждое изменение журнала транзакций в БД распространения на сервере/распространителе. Агент Distribution отправляет каждое изменение всем подписчикам в первоначальном порядке выполнения этих изменений. Если хранимая процедура используется для обновления большого количества записей, можно реплицировать эту процедуру, а не каждую обновленную строку. Все три этих агента репликации заносят информацию о событиях и ошибках в БД распространения. На рис. 15/2 показан процесс репликации транзакций.


Рис. 15_2. Процесс репликации транзакций

Агент Distribution может работать постоянно, чтобы минимизировать задержку в обновлении данных между издателем и подписчиками, или может выполняться по заданному расписанию. Подписчики при наличии сетевого соединения с издателем могут получать изменения почти в реальном времени. После того как все подписчики получат реплицированные транзакции, агент Distribution Clean Up удаляет эти транзакции из БД распространения. Если по окончании заданного периода хранения (по умолчанию - 72 часа) подписчик не получил реплицируемые транзакции, те удаляются из БД распространения и подписка дезактивируется. Это позволяет предотвратить чрезмерное увеличение размера БД распространения. Дезактивированная подписка может быть повторно активирована, и тогда подписчику с целью обновления его данных передается новый моментальный снимок.
Кроме того, репликацию транзакций, по аналогии со снимочной репликацией, можно настроить для поддержки обновляемых подписок.

[В начало]

Репликация сведением

При репликации сведением агент Snapshot передает начальный моментальный снимок данных, участвующих в репликации, от издателя в папку моментальных копий распространителя. Агент Merge направляет полученный снимок каждому подписчику. Также он анализирует и объединяет изменения реплицируемых данных, выполняемые издателем и подписчиками. Если при объединении изменений происходит конфликт на издателе, агент Merge разрешает его, используя указанный администратором способ. Вы можете выбрать одно из существующих средств обнаружения конфликтов или создавать свое собственное.
Оба агента заносят информацию о событиях и ошибках в БД распространения (это единственная функция БД распространения в случае репликации сведением). Процесс репликации сведением показан на рис. 15/3.


Рис. 15_3. Процесс репликации сведением

Чтобы различать записи отдельных копий реплицируемой таблицы и выявлять конфликты между записями, агент Merge использует специальный уникальный столбец реплицируемых таблиц. Если такого столбца нет, агент Snapshot добавляет его при создании публикации. Кроме того, при создании публикации агент Snapshot создает на издателе триггеры.
Они ведут мониторинг реплицированных записей и заносят информацию об изменениях в системные таблицы сведения. Агент Merge также создает идентичные триггеры на каждом сервере/подписчике, когда передает ему начальный моментальный снимок.
Агент Snapshot может работать постоянно, чтобы минимизировать задержку в обновлении данных между издателем и подписчиками, или может выполняться по заданному расписанию. Подписчики при наличии сетевого соединения с издателем могут получать изменения почти в реальном времени. Если по окончании заданного периода хранения (по умолчанию - 14 дней) подписчик не получил реплицируемые транзакции, подписка дезактивируется. Дезактивированная подписка может быть повторно активирована, и тогда подписчику с целью обновления его данных передается новый моментальный снимок.

[В начало]

Выбор модели репликации

Существует несколько моделей репликации (replication topologies), которые вы можете ис- пользовать в соответствии с вашими задачами репликации. Если вы используете реплика- цию моментальных снимков или репликацию транзакций, вам часто придется использовать удаленного распространителя. Он может предоставлять службы ре пликации одновременно нескольким издателям и подписчикам. Если объем реплицируемых данных невелик, рас- пространителя и издателей нередко размещают на одном и том же компьютере. Вместо репликации данных нескольким подписчикам через подключение, имеющее низкую пропускную способность или высокую стоимость использования, можно опуб- ликовать данные на удаленном подписчике, который распространит их другим подпис- чикам в своей области. Такой подписчик называется переиздающим (publishing subscriber, republisher).
В случае репликации сведением центральный подписчик часто используется для объединения информации, поступающей от нескольких региональных издателей. Для этой модели необходимо горизонтальное разбиение данных, чтобы избежать возможных кон фликтов, и обычно используется специальный столбец для идентификации данных, поступивших из отдельных регионов. Такая модель центрального подписчика также может использоваться при репликации моментальных снимков и при репликации транзакций. Кроме того, так как репликация сведением накладывает ограничения на использование БД распространения, издатель и распространитель часто размещаются на одном и том же компьютере.

[В начало]

Выбор средств для организации репликации

Консоль SQL Server Enterprise Manager - основное средство организации и мониторинга репликации. Контейнер Replication дерева консоли SQL Server Enterprise Mana ger содержит средства, необходимые для организации и администрирования публикаций и подписки. Узел Replication Monitor контейнера Replication используется для доступа к агентам репликации и управления их работой. Replication Monitor также позволяет определить оповещения о событиях репликации.
Кроме того, вы можете организовывать, вести мониторинг и администрировать процесс репликации, используя некоторые другие методы.

  • Элементы управления ActiveX применяются в пользовательских приложениях, написанных на Visual Basic или Visual C++. Они позволяют программно управлять работой агентов Shaphot, Merge и Distribution. Например, в приложении может присутствовать кнопка Synchronize, запускающая агент Merge для сведения и синхронизации данных.

  • SQL/DMO используется для создания пользовательских приложений, позволяющих конфигурировать, организовывать и обслуживать среду репликации.

  • Replication Distributor Interface обеспечивает возможность репликации данных из гетерогенных источников данных (например Access или Oracle).

  • Хранимые процедуры используются главным образом для создания сценариев репликации на нескольких серверах, основываясь на конфигурации репликации, заданной средствами SQL Server Enterprise Manager.

  • Windows Synchronization Manager - эта утилита из состава Win dows 2000, находящаяся в группе программ Accessories. На ком пью терах с Internet Explorer 5.0 ее можно вызвать из меню Tools браузера Internet Explorer 5.0. Это средство для управления и синхронизации публикаций SQL Server и других приложений (например Web/страницы и электронной почты).

  • Active Directory Services - вы можете поместить объекты репликации в каталог Active Directory, разрешая пользователям искать и подписываться на публикации (если у этих пользователей имеются соответствующие права).

[В начало]

Резюме

Вы можете использовать репликацию для передачи данных на несколько разных узлов и автоматически синхронизировать данные между всеми этими узлами. Существует три основных типа репликации, используемые для выполнения задач репликации: репликация моментальных снимков, репликация транзакций и сведением. Для автоматизации процесса репликации используются агенты репликации, выполняющие определенные задачи в соответствии с установленным расписанием. Консоль SQL Server Enterprise Manager - основное средство организации, мониторинга и администрирования репликации. Элементы управления ActiveX также часто встраиваются в пользовательские приложения для управления процессом ре пликации.

[В начало]

Занятие 2. Планирование репликации

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

  • спланировать защиту процесса репликации;

  • описать возможности фильтрации данных;

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

Продолжительность занятия - около 15 минут

[В начало]

Планирование защиты репликации

Защита процесса репликации реализована на нескольких уровнях. Прежде всего, только члены роли сервера sysadmin, могут конфигурировать и администрировать распространителей, издателей и подписчиков, включая конфигурирование БД для репликации. На уровне БД только члены роли сервера sysadmin и фиксированной роли db_owner опубликованной БД могут создавать и конфигурировать публикации и подписки. Только члены роли сервера sysadmin и фиксированной роли replmonitor БД распространения могут отслеживать активность процесса репликации.
Если используется удаленный распространитель, можно организовать защищенное соединение между ним и издателем. При соединении используется учетная запись distributor_admin SQL Server (следует использовать смешанный режим проверки подлинности). На удаленном распространителе издателя можно сконфигурировать в качестве доверенного (пароль для доступа не нужен) или ненадежного (для доступа требуется пароль). Рекомендуется использовать второй вариант.
Примечание Пароль учетной записи distributor_admin следует изменять только на вкладке Distributor диалогового окна Publisher And Distributor Properties, доступного в Enterprise Manager, или с помощью системной хранимой процедуры sp_change distri bu tor_pass word. На компьютерах с Windows NT 4.0/2000 расположение по умолчанию папки моментальных снимков, используемой для репликации, - C:\Program Files\Microsoft SQL Server\Mssql\Repldata на распро странителе; система также делает эту папку скрытым административным ресурсом, например \\SelfPacedCPU\C$\Program Files\Mic ro soft SQL Server\Mssql\Repldata. В средах Windows 98/Me папка располагается там же, однако общий ресурс не создается. У всех агентов Snapshot должен быть полный доступ к папке моментальных снимков, а у агентов Distribution и Merge - доступ для чтения. По умолчанию в средах Windows NT 4.0/2000 эти агенты выполняются в контексте защиты доменной учетной записи службы SQL Server Agent. Агенты репликации могут обращаться к скрытому административному ресурсу, только если доменная учетная запись состоит в локальной группе Administrators сервера/распространителя. Если это не так, или в репликации участвуют компьютеры с Windows 98/Me, вам следует создать для папки моментальных снимков общий ресурс и назначить доменным учетным записям, в контексте которых будут выполняться агенты, необходимые права доступа к этому ресурсу.
Каждая публикация содержит список учетных записей, обладающих доступом к ней, называемый также списком доступа к публикации (publication access list, PAL). По умолчанию в PAL новых публикаций добавляются члены роли сервера sysadmin (включая доменную учетную запись службы SQL Server Agent) и учетная запись пользователя, создавшего публикацию (например учетная запись члена роли db_ow ner). В сложных средах репликации вам, возможно, потребуется добавить в PAL дополнительных пользователей.
Чтобы репликация выполнялась без ошибок, необходимо назначить следующие разрешения:

  • агенту Snapshot - разрешения доступа к БД публикаций на издателе и к БД распространения на распространителе, и, как уже упоминалось в разделе "Репликация транзакций" этой главы, разрешения доступа к папке моментальных снимков;

  • агенту Log Reader - разрешения доступа к БД публикаций на издателе и к БД распространения на распространителе;

  • агенту Distribution - разрешения доступа к БД распространения на распространителе и БД подписки на подписчике, и, как уже упоминалось в разделе "Репликация транзакций" этой главы, разрешения доступа к папке моментальных снимков;

  • агенту Merge - разрешения доступа к БД публикаций на издателе, БД распространения на распространителе и БД подписки на подписчике, и, как уже упоминалось в разделе "Репликация транзакций" этой главы, разрешения доступа к папке моментальных снимков.

[В начало]

Фильтрация публикуемых данных

Фильтрация публикуемых данных используется в целях защиты информации и повышения производительности системы. Фильтровать данные можно по горизонтали (выбирая определенные записи) или по вертикали (выбирая определенные столбцы). Например, можно исключить из репликации столбцы, содержащие важную информацию или двоичные данные изображений. Можно также оставить только записи с информацией о продажах, от- носящейся к нужному региону. Фильтры могут быть статическими или динамическими.
Статические фильтры вводят ограничения на публикацию определенных строк или столбцов, и все подписчики получают одинаковые данные (за исключением трансформируемой подписки). Все типы репликации могут использовать статические фильтры. Чтобы опубликовать отдельные наборы данных для разных подписчиков при помощи статических фильтров, следует либо создать отдельные публикации, либо использовать трансформируемую подписку (transformable subscription). Горизонтальный фильтр может значительно снизить производительность репликации транзакций, поскольку просматриваются все записи журнала транзакций БД публикаций.
С помощью динамических фильтров можно предоставлять разным подписчикам разные наборы данных, основываясь на функциях SQL Server (имя пользователя, имя узла и т. д.). Фильтры соединения (join filters) используются для поддержания ссылочной целостности между двумя таблицами, участвующими в репликации (например для отношения "первичный ключ/внешний ключ"). Динамические фильтры и фильтры соединения используются только для репликации сведением. Когда вы используете динамические фильтры, динамические моментальные снимки позволяют генерировать отдельные снимки данных для подписчиков разных типов. Это может значительно повысить производительность при внесении начальной копии в БД, однако при этом требуется дополнительное пространство для папки моментальных снимков и дополнительное время для создание начального моментального снимка.
При репликации моментальных снимков и репликации транзакций трансформируемые подписки с нестандартными фильтрами позволяют динамически предоставлять разные наборы данных отдельным подписчикам. Трансформируемые подписки используют возможности DTS для изменения и преобразования реплицируемых данных, основываясь на потребностях отдельных подписчиков. Тем не менее обновляемые и трансформируемые подписки несовместимы.

[В начало]

Параметры создания начальных моментальных снимков

По умолчанию файлы начальных моментальных снимков копируются в папку Repl data распространителя. Однако вы можете хранить оригиналы или копии файлов мгновенных копий в другом месте, например на сетевом диске или на компакт/диске. Файлы моментальных снимков, сохраненные в резервном каталоге, могут быть сжаты (для сжатия используется формат Microsoft CAB), чтобы файлы могли уместиться на съемном носителе информации или для ускорения передачи данных при использовании соединения с низкой скоростью передачи данных. На сжатие файлов моментальных снимков потребуется дополнительное время.
По умолчанию либо агент Distribution, либо агент Merge вносят моментальный снимок в БД подписки. Если объем данных в публикации достаточно велик, считывание исходной мгновенной копии вручную с компакт/диска или другого запоминающего устройства (например с ленты) может выполняться быстрее, чем пересылка файла по сети.
Вы можете не сохранять файлы моментальных снимков после ре пликации, поскольку они занимают значительный объем пространства на жестком диске. Файлы моментальных снимков автоматически сохраняются в памяти, если вы специально указали это или разрешили анонимную подписку на публикацию. Если же вы не выбрали ни один из этих вариантов публикации, тогда SQL Server будет удалять мгновенные копии данных после того, как все подписчики получили и установили исходную мгновенную копию. Если новый подписчик попытается синхронизовать данные, ему следует ждать следующего момента, когда будет автоматически сгенерирован моментальный снимок, или администратору следует вручную запустить агент Snapshot.

[В начало]

Резюме

Только члены роли сервера sysadmin имеют доступ ко всем настройкам репликации. Они, а также члены фиксированной роли БД db_owner, могут создавать публикации и подписки, и конфигурировать их. У агента Snapshot должен быть полный доступ к папке моментальных снимков, у агентов Distribution и Merge - доступ для чтения (кроме случаев, когда администратор вносит начальный моментальный снимок в БД вручную). Кроме того, агентам репликации следует назначить соответствующие разрешения доступа к БД публикаций, распространения и подписки. Публикуемые данные можно фильтровать по горизонтали и вертикали для повышения производительности, и при необходимости преобразовывать их в соответствии с требованиями отдельных подписчиков. Помимо статических фильтров, для филь трации данных используются динамические фильтры и подписки с преобразованием данных. Начальный моментальный снимок можно скопировать в резервную локальную папку (например на компакт/диск), при этом выполняется сжатие данных с использованием формата файлов Microsoft CAB.

[В начало]

Занятие 3. Реализация репликации

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

  • настроить свойства распространителя и издателя;

  • организовать репликацию моментальных снимков, репликацию транзакций и сведением;

  • создать принудительную подписку, подписку по запросу и анонимную подписку.

Продолжительность занятия - около 45 минут

[В начало]

Настройка свойств распространителя и издателя

Настроить свойства распространителя и издателя можно при помощи мастера Confi gure Publishing And Distribution Wizard. Кроме того, их свойства можно конфигурировать в процессе создания публикации средствами мастера Create And Manage Publi ca tions Wizard. Чтобы запустить мастер Configure Publishing And Distribution Wizard, в меню Tools выберите Wizards, раскройте в диалоговом окне Select Wizard узел Replica tion и дважды щелкните Configure Publishing And Distribution Wizard. Можно также щелкнуть контейнер Replication правой кнопкой и выбрать Configure Publishing, Subscribers, And Dist ribution. Откроется окно Welcome To The Configure Publishing And Distribution Wizard (рис. 15/4).


Рис. 15_4. Запуск мастера Configure Publishing And Distribution Wizard

Щелкните Next, чтобы сделать локальный сервер распространителем или выбрать распространителя для уже сконфигурированного издателя. Откроется окно Select Distributor (рис. 15/5).
По умолчанию предлагается сделать распространителем локальный сервер, а также создать БД распространения и журнал транзакций. Если вы хотите выбрать удаленный сервер, он уже должен быть сконфигурирован в качестве распространителя. Кроме того, для выбора удаленного сервера его следует предварительно зарегистрировать в SQL Server Enterprise Manager. У вас также должны иметься соответствующие права доступа к удаленному распространителю.


Рис. 15_5. Выбор распространителя

Если в качестве распространителя выбран локальный сервер, откроется окно Specify Snapshot Folder, где можно указать размещение папки моментальных снимков. Размещение этой папки на экземпляре SQL Server по умолчанию - C:\Program Files\Mic rosoft SQL Ser ver\Mssql\ReplData (рис. 15/6).


Рис. 15_6. Выбор папки моментальных снимков

Заметьте: указанная в поле Snapshot Folder папка по умолчанию использует административный ресурс C$. У агента Snapshot должен быть полный доступ к этой папке, а у агентов Distribution и Merge - доступ для чтения. Чтобы использовать в качестве папки моментальных снимков специальный общий ресурс на каком/либо узле сети, создайте этот ресурс с помощью Windows Explorer или щелкните кнопку Snapshot Folder (…). Когда откроется окно Browse For Folder, щелкните каталог Repldata правой кнопкой (или другой выбранный вами каталог) и выберите Properties. В окне Repldata Properties перейдите на вкладку Sharing. Установите переключатель в положение Share This Folder и щелкните Permissions. В диалоговом окне Permissions For Repldata удалите Everyone и добавьте доменную учетную запись службы SQL Server Agent, предоставив ей полный доступ (Full Control) к папке (рис. 15/7).


Рис. 15_7. Создание общего ресурса для папки моментальных снимков и назначение разрешений доступа

На рис. 15/7 показан общий ресурс Repldata, а также доменная учетная запись службы SQL Server Agent, которой предоставлен полный доступ к этому ресурсу. Если к папке будут обращаться другие пользователи (допустим, пользователи Windows 98/Me, участвующие в репликации сведением), им можно предоставить доступ для чтения, разрешив загрузку файлов моментальных снимков.
В окне Customize The Configuration можно изменять свойства ра спространителя или принять параметры по умолчанию (рис. 15/8).


Рис. 15_8. Выбор параметров распространителя по умолчанию

Редактировать параметры настройки распространителя следует, если необходимо изменить расположение по умолчанию БД распро странения и журнала транзакций, разрешить дополнительным издателям использовать данного распространителя (по умолчанию с ним взаимодействует только локальный сервер), добавить новые БД ра спространения или изменить список текущих подписчиков (по умолчанию на публикацию подписаны все зарегистрированные серверы). В большинстве рабочих сред БД распространения и журнал транзакций рекомендуется размещать в RAID/массиве уровня 1 или 10 или на отдельным диске.
Если вы решили изменить конфигурацию распространителя, откроется окно Provide Distribution Database Information. Здесь можно изменить имя БД распространения, а также расположение файлов данных и журнала транзакций (рис. 15/9).


Рис. 15_9. Изменение свойств БД распространения

Заметьте: БД распространения должна располагаться на локальном диске. В окне Enable Publishers можно добавить дополнительных издателей. (рис. 15/10).


Рис. 15_10. Добавление дополнительных издателей

Если издатель на распространителе отключен, он не может взаимодействовать с распространителем. По умолчанию использовать распространителя может только локальный экземпляр SQL Server. Чтобы просмотреть параметры издателя (рис. 15/11), щелкните в группе Registered Servers кнопку (…) напротив нужного сервера.
Каждый издатель может использовать собственную папку моментальных снимков.
Для всех агентов репликации вместо доменной учетной записи службы SQL Server Agent можно указать регистрационную запись SQL Server. Кроме того, если издатель и распространитель находятся на разных компьютерах, для установки соединения рекомендуется использовать пароль.


Рис. 15_11. Настройка параметров издателя

В окне Enable Publication Databases можно выбрать реплицируемые БД (рис. 15/12).


Рис. 15_12. Выбор реплицируемых БД

Члены роли сервера sysadmin могут также выбирать реплицируемую БД при создании публикации. Но, если создавать публикацию будет член роли db_owner, члену роли сервера sysadmin следует выбрать реплицируемую БД заранее. Чтобы выбрать БД для репликации моментальных снимков или транзакций, в столбце Trans группы Databases пометьте флажок напротив нужной БД. Чтобы выбрать БД для репликации сведением, пометьте флажок в столбце Merge.
В окне Enable Subscribers можно указать подписчиков на публикации данного издателя (рис. 15/13).
По умолчанию на публикации подписаны все зарегистрированные серверы. Щелкните кнопку (…), чтобы открыть окно Subscriber Properties, где на вкладке General выберите учет- ную запись подписчика и задайте график синхронизации по умолчанию (рис. 15/14). Для подключения к подписчику все агенты репликации по умолчанию используют доменную учетную запись службы SQL Server Agent. Можно также выбрать регистраци- онную запись SQL Server.
На вкладке Schedules можно изменить расписание работы агентов Distri bution и Merge, заданное по умолчанию (рис. 15/15).


Рис. 15_13. Выбор подписчиков

Рис. 15_14. Общие свойства подписчика

Рис. 15_15. Расписания по умолчанию агентов Distribution и Merge

Заметьте: по умолчанию все новые агенты Distribution выполняются постоянно, а агенты Merge запускаются каждый час. Эти параметры можно изменить. Кроме того, расписание агентов по умолчанию можно переопределить при создании новой подписки.
В последнем окне мастера Completing The Configure Publishing And Distribution Wizard можно просмотреть все выбранные параметры, перед тем как создать БД распространения и сконфигурировать распространителя и издателя (рис. 15/16).


Рис. 15_16. Просмотр свойств распространителей и издателей

По завершении работы с мастером Configure Publishing And Dist ribution Wizard от- кроется окно SQL Server Enterprise Manager с сообщением о том, что в дерево консоли добавлен контейнер Replication Monitor. Подробнее об использовании Replication Monitor - в занятии 4 этой главы.

[В начало]

Упражнение 1. Настройка распространителя

В этом упражнении вы с помощью мастера Configure Publishing And Distri bution Wizard, доступного в SQL Server Enterprise Manager, создадите и настроите сервер/распространитель.
Чтобы создать и сконфигурировать сервер_распространитель

  1. Убедитесь, что вы зарегистрировались на контроллере домена SelfPacedSQL.MSFT под учетной записью Administrator.

  2. Раскройте меню Start\Programs\Microsoft SQL Server и выберите Enterprise Manager.
    В корне консоли SQL Server Enterprise Manager отобразятся деревья Microsoft SQL Server и Event Viewer (Local).

  3. В дереве консоли последовательно раскройте контейнеры Microsoft SQL Servers, SQL Server Group и экземпляра по умолчанию.

  4. Щелкните Replication правой кнопкой и выберите Configure Publishing, Subscribers, And Distribution.
    Запустится мастер Welcome To The Configure Publishing And Distribution Wizard.

  5. Щелкните Next.
    Откроется окно Select Distributor.

  6. Убедитесь, что в качестве распространителя выбран SelfPacedCPU, и щелкните Next.
    Откроется окно Specify Snapshot Folder.

  7. Щелкните (…) рядом с полем Snapshot Folder.
    Откроется окно Browse For Folder, в котором будет выбрана папка Repldata.

  8. Щелкните папку Repldata правой кнопкой и выберите Sharing.
    Откроется окно Repldata Properties.

  9. Установите переключатель в положение Share This Folder.

  10. Щелкните Permissions.
    Откроется окно Permissions For Repldata.

  11. Щелкните Remove, чтобы удалить группу Everyone из списка Name, затем щелкните Add.
    Откроется окно Select Users, Computers, Or Groups.

  12. В списке Name дважды щелкните SQLService, затем щелкните OK. В группе элементов управления Permissions пометьте флажок Full Control.

  13. Щелкните OK, чтобы закрыть окно Permissions For Repldata.

  14. Щелкните OK, чтобы закрыть окно Repldata Properties.

  15. Щелкните OK, чтобы закрыть окно Browse For Folder.

  16. В поле Snapshot Folder вместо значения по умолчанию введите \\SelfPaced CPU\ Repl data и щелкните Next.
    Откроется окно SQL Server Enterprise Manager, где выдается сообщение, что путь \\ SelfpacedCPU\Repldata невозможно проверить, а также спрашивается, хотите ли вы использовать этот путь.

  17. Щелкните Yes.
    Откроется окно Customize The Configuration.

  18. Убедитесь, что выбран параметр No, Use The Following Default Settings, просмотрите параметры распространителя, затем щелкните Next.
    Откроется окно Completing The Configure Publishing And Dist ribution Wizard.

  19. Щелкните Finish, чтобы сделать сервер SelfPacedCPU распространителем. Откроется окно SQL Server Enterprise Manager, где отображаются изменения в конфи- гурации этого сервера.

  20. В окне SQL Server Enterprise Manager с сообщением об успешной настройке SelfPacedCPU в качестве распространителя щелкните OK.
    Откроется окно SQL Server Enterprise Manager с информацией о том, что в дерево кон- соли добавлен Replication Monitor.

  21. Щелкните Close. Закройте SQL Server Enterprise Manager.

[В начало]

Создание публикаций

Если вы создаете публикацию впервые, рекомендуем воспользоваться мастером Create Publication Wizard. Чтобы запустить его, в меню Tools выберите Wizards, раскройте в окне Select Wizard узел Rep lication и дважды щелкните Create Publication Wizard. Можно также раскрыть в дереве консоли контейнер Replication, щелкнуть контейнер Publications правой кнопкой и выбрать New Publication. Откроется первое окно мастера Welcome To The Create Publication Wizard (рис. 15/17).


Рис. 15_17. Первое окно мастера Create Publication Wizard

Для отображения дополнительных параметров настройки можно пометить флажок Show Advanced Options In This Wizard. Это позволит вам создавать обновляемые подписки и трансформируемые подписки.
В окне Choose Publication Database выберите БД с данными и объектами, которые требуется опубликовать (рис. 15/18).


Рис. 15_18. Выбор БД публикаций


Рис. 15_19. Выбор типа публикации

Если мастер Create Publication Wizard запущен членом роли сервера sysadmin, отображаются все пользовательские БД и автоматически разрешается репликация любой выбранной БД. Если же мастер Create Publication Wizard запущен членом роли db_owner, будет разрешена репликация только ранее выбранных БД, владельцем которых является db_owner. В окне Select Publication Type выберите тип публикации (рис. 15/19).
Можно создать публикацию снимка, транзакционную публикацию и публикацию сведением.

[В начало]

Создание публикации снимка

Если вы установили переключатель Snapshot Publication и пометили флажок Show Advanced Options In This Wizard, откроется окно Up datable Subscriptions. Здесь можно разрешить немедленное обновление (Immediate Updating) и/или очередь обновлений (Queued Updating) (рис. 15/20).


Рис. 15_20. Выбор параметров обновления подписки

Заметьте: если помечен флажок Queued Updating, обновления по умолчанию помещаются в БД SQL Server. Переключиться на использование службы Microsoft Message Queuing можно только после создания публикации.
Если вы решили не создавать обновляемую подписку, откроется окно Transform Published Data, позволяющее создать трансформируемую подписку (рис. 15/21). Это окно открывается, только если помечен флажок Show Advanced Options In This Wizard (рис. 15/17).


Рис. 15_21. Создание трансформируемой подписки

В окне Specify Subscriber Types следует указать типы подписчиков, подписываемых на данную публикацию (рис. 15/22).
Если вы указали, что публикация поддерживает подписки от SQL Server 7.0 и от гетерогенных источников данных, мастер не будет отображать недопустимые для этих подписчиков параметры. Например, не поддерживается репликация представлений на серверы/подписчики SQL Server 7.0.


Рис. 15_22. Указание типа подписчиков

Примечание Если вы выбирали подписчиков SQL Server 2000, но не включили какие/либо новые функции, на публикацию также смогут подписаться экземпляры SQL Ser ver 7.0 и гетерогенные источники данных.
В окне Specify Articles выберите статьи, входящие в состав публикации (рис. 15/23).


Рис. 15_23. Выбор статей для публикации

Можно выбирать таблицы, хранимые процедуры и представления. В зависимости от выбранных ранее параметров, в списке могут отображаться не все указанные типы объектов. Например, если вы решили создать трансформируемую подписку, можно будет опубликовать только таблицы. Чтобы задать глобальные свойства публикуемых таблиц, хранимых процедур или представлений из состава определенной статьи, щелкните Article Defaults; задать свойства отдельных объектов можно, щелкнув кнопку (…). По умолчанию реплицируемые статьи имеют в БД подписки то же имя, что и в БД публикации. Кроме того, если в БД подписки существует объект с тем же самым именем, он по умолчанию удаляется и затем создается заново. Можно также реплицировать дополнительные объекты (например триггеры) или исключить из репликации индексы (по умолчанию они ре плицируются). Щелкните Article Defaults, чтобы открыть окно Default Article Type. Затем дважды щелкните Table Articles, в окне Default Table Article Properties перейдите на вкладку Snapshot и задайте свойства таблиц статьи по умолчанию (рис. 15/24).


Рис. 15_24. Конфигурирование параметров таблиц статьи по умолчанию

Затем в окне Article Issues, в зависимости от выбранных вами статей для публикации и типа разрешенных подписок, может появиться сообщение о проблемах использования столбцов с типами данных uniqueidentifier и timestamp, а также столбца IDENTITY. Конкретный текст сообщения будет зависеть от выбранного типа репликации и архитектуры БД публикаций. Подробнее об этом - в разделе "Article Issues" справочной системы SQL Server Books Online. Возможно, вы также получите сообщение о том, что некоторые таблицы, объекты и представления ссылаются на объекты, не включенные в публикацию. Если объект БД ссылается на другие объекты БД, их следует также опубликовать или создать вручную на сервере/подписчике (рис. 15/25).


Рис. 15_25. Объекты статьи

Заметьте: на рис. 15/25 поля IDENTITY реплицируются. По умолчанию будут реплицироваться значения соответствующих полей, но не само свойство IDENTITY. В окне Select Publication Name And Description введите описательное имя публикации, в поле Publication Description - краткое описание публикации, и укажите, следует ли зарегистрировать публикацию в каталоге Active Directory. Если экземпляр SQL Server не зареги стрирован в каталоге Active Directory, флажок List this publication in the Active Directory будет выделен серым цветом (рис. 15/26).


Рис. 15_26. Задание имени публикации и ее регистрация в Active Directory

В окне Customize The Properties Of The Publication можно указать, что вам требуется определить фильтры данных, разрешить анонимную подписку и настроить расписание работы агента Snapshot (рис. 15/27). По умолчанию агент Snapshot автоматически запускается сразу после создания публикации, затем - каждую неделю.


Рис. 15_27. Указание необходимости настройки свойств публикации

Если вы решили настроить свойства публикации, откроется окно Filter Data, где можно определить вертикальные и/или горизонтальные фильтры для статей публикации (рис. 15/28).


Рис. 15_28. Указание направления фильтрации данных

Если выбрана фильтрация по вертикали, откроется окно Filter Table Columns, где можно исключать отдельные столбцы из любой публикуемой таблицы (рис. 15/29).


Рис. 15_29. Фильтрация столбцов таблицы

По умолчанию публикуются все столбцы. Чтобы исключить отдельный столбец, выберите статью и затем снимите флажок столбца.
Если выбрана фильтрация по горизонтали, откроется окно Filter Table Rows (рис. 15/30), где можно ограничить число реплицируемых записей. Для этого выберите нужную статью и щелкните кнопку (…), чтобы открыть окно Specify Filter (рис. 15/31). По умолчанию публикуются все строки.


Рис. 15_30. Фильтрация строк таблицы


Рис. 15_31. Создание горизонтального фильтра

Для фильтрации публикуемых строк выбранной статьи в диалоговом окне Specify Filter задайте условие фильтра, используя оператор WHERE. В окне Allow Anonymous Subscriptions можно разрешить анонимную подписку (рис. 15/32). Данная возможность доступна, только если помечен флажок Show Advanced Options In This Wizard (рис. 15/17). Обычно разрешают анонимную подписку на интернет/публикации и публикации с большим числом подписчиков.
Если выбрана фильтрация и по горизонтали, и по вертикали, откроются оба окна - Filter Table Columns и Filter Table Rows. В окне Set Snapshot Agent Schedule можно принять расписание работы агента Snapshot по умолчанию или щелкнуть Change и определить собственное расписание. По умолчанию агент Snapshot обычно выполняется каждую ночь (для публикаций, поддерживающих анонимную подписку, - еженедельно). Если поддерживаются анонимные подписчики, можно также немедленно создать начальный моментальный снимок. В противном случае снимок обычно генерируют при создании первой подписки (рис. 15/33).
Просмотрите выбранные параметры публикации в окне Completing The Create Publication Wizard и щелкните Finish (рис. 15/34).


Рис. 15_32. Разрешение анонимной подписки


Рис. 15_33. Определение расписания работы агента Shapshot


Рис. 15_34. Окно Completing the Create Publication Wizard

[В начало]

Создание транзакционной публикации

Создание транзакционной публикации во многом схоже с созданием публикации снимка.

[В начало]

Упражнение 2. Создание транзакционной публикации

В этом упражнении вы с помощью мастера Create Publication Wizard, доступного в SQL Server Enterprise Manager, создадите транзакционную публикацию.
Чтобы создать транзакционную публикацию

  1. В дереве консоли SQL Server Enterprise Manager последовательно раскройте контейнеры сервера по умолчанию и Replication.

  2. Щелкните Publications правой кнопкой и выберите New Publication.
    Откроется окно Welcome To The Create Publication Wizard.

  3. Пометьте флажок Show Advanced Options In This Wizard и щелкните Next.
    Откроется окно Choose Publication Database.

  4. В списке Databases выберите Pubs и щелкните Next.
    Откроется окно Select Publication Type.

  5. Щелкните Transactional Publication - Data Is Usually Updated At The Publisher, And Changes Are Sent Incrementally To Subscribers. Updates To Subscribers Preserve Transac tional Consistency And Atomicity, затем щелкните Next.
    Откроется окно Updatable Subscriptions.

  6. Пометьте флажки Immediate Updating - Changes Are Immediately Applied At The Publisher Using A Two/Phase Commit Approach And Microsoft Distributed Transaction Coordinator (MS DTC) и Queued Updating - Changes Are Queued At The Subscriber Until They Can Be Applied At The Publisher, затем щелкните Next. Откроется окно Specify Subscriber Types.

  7. Убедитесь, что помечен только флажок Servers Running SQL Server 2000, и щелкните Next.
    Откроется окно Specify Articles.

  8. Найдите поле Tables в столбце Object Type и пометьте соответствующий флажок Publish All в этой строке.

  9. Найдите поле Stored Procedures в столбце Object Type и пометьте соответствующий флажок Publish All в этой строке.
    Обратите внимание, что таблицы без первичных ключей не будут опубликованы.

  10. Щелкните Next.
    Откроется окно Article Issues.

  11. Щелкните Next.
    Откроется окно Select Publication Name And Description.

  12. В поле Publication Name введите PubsSales и щелкните Next.
    Откроется окно Customize The Properties Of The Publication.

  13. Убедитесь, что помечен флажок No, Create The Publication As Specified, просмотрите свойства публикации и щелкните Next.
    Откроется окно Completing The Create Publication Wizard.

  14. Щелкните Finish, чтобы создать публикацию.
    Обратите внимание, что при этом открывается окно SQL Server Enterprise Manager, показывая результат изменений для созданной публикации.

  15. Когда появится окно сообщения SQL Server Enterprise Manager, извещающее, что публикация была успешно создана, щелкните Close.

  16. Не закрывайте SQL Server Enterprise Manager.

[В начало]

Настройка репликации сведением

Если в окне Select Publication Type мастера Create Publication Wizard выбрана публикация сведением (рис. 15/19), открывается окно мастера Specify Subscriber Types. В дополнение к типам подписчиков, поддерживаемых другими видами публикаций, публикация сведением также поддерживает подписчиков, использующих устройства с SQL Server CE (рис. 15/35).


Рис. 15_35. Выбор подписчиков, использующих SQL Server CE

Примечание: Если разрешена поддержка устройств с SQL Server CE, автоматически включается поддержка анонимных подписчиков и отключить ее нельзя.

В окне Specify Articles (рис. 15/23) вы можете изменить режим разрешения конфликтов для публикации сведением. Щелкните Article De faults, чтобы открыть окно Default Article Type, и затем - Table Articles, чтобы открыть окно Default Table Article Properties (рис. 15/36).


Рис. 15_36. Выбор режима разрешения конфликтов

По умолчанию на вкладке General выбраны такие параметры, что, если при сведении данных из нескольких источников выполняется несколько операций обновления одного поля, это считается кон фликтом. Можно изменить настройки по умолчанию, и указать, что конфликтом считаются изменения любого поля конкретной строки. Так, например, если один подписчик изменяет телефонный номер определенного поставщика, а другой подписчик - его имя, по умолчанию это не считается конфликтом.
Перейдите на вкладку Resolver, чтобы разрешить подписчикам интерактивно устранять конфликты, возникающие в процессе синхронизации по запросу. Если флажок на этой вкладке снят (рис. 15/37), подписчики не могут использовать Windows Synchronization Manager.


Рис. 15_37. Включение возможности интерактивного разрешения конфликтов

На вкладке Merging Changes можно добавить дополнительный уровень разрешений (рис. 15/38).


Рис. 15_38. Указание необходимости наличия у агента Merge дополнительных разрешений

Можно потребовать, чтобы учетная запись агента Merge в дополнение к разрешениям доступа к БД публикаций также обладала разрешениями на выполнение команд INSERT, UPDATE и DELETE. Это используется, чтобы ограничить возможные изменения, вноси- мые подписчиком. Информация о разрешениях хранится в моментальном снимке. Если после создания снимка разрешения изменятся, следует создать новый моментальный снимок. Кроме того, по умолчанию обновление нескольких полей одной записи осуществляется одним оператором UPDATE.
В дополнение к изменению параметров устранения конфликтов слияния по умолчанию, можно также изменять параметры разрешения конфликтов для отдельных статей. Для этого щелкните в окне Specify Articles кнопку (…) напротив имени статьи, и в окне Table Article Properties перейдите на вкладку Resolver (рис. 15/39).


Рис. 15_39. Изменение параметров устранения конфликтов для отдельной статьи

По умолчанию конфликты разрешаются с использованием системы оценки приоритета. По умолчанию все подписчики имеют одинаковый приоритет (однако разным под- писчикам можно назначать разные приоритеты), и первое изменение, выполненное при синхронизации данных, имеет преимущество в случае устранения конфликта.
Вместо средства устранения конфликтов по умолчанию можно выбрать одно из настраиваемых средств, поставляемых c SQL Server 2000, или создать собственные хранимые процедуры и COM/объекты. Настраиваемые средства из состава SQL Server 2000 могут разрешать конфликты различными способами, например сохранять самое первое изменение данных, самое последнее изменение, наибольшее, наименьшее или среднее значение. Подробнее об этом - в разделе "Microsoft Resolver Descriptions" справочной системы SQL Server Books Online.
Кроме того, на вкладке Identity Range для любой статьи со столбцом IDENTITY вы можете указать, что SQL Server должен автоматически присваивать каждому под писчику диапазон значений. Это позволяет подписчикам добавлять новые записи, используя свойство IDENTITY, и гарантирует отсутствие идентичных значений поля IDENTITY (рис. 15/40).


Рис. 15_40. Определение диапазона значений поля IDENTITY для подписчиков

Следующие два окна, Article Issues и Select Publication Name and Description, аналогичны окнам, выводимым при настройке транзакционной публикации и публикации снимка (рис. 15/25, 15/26).
Если вы решили настроить свойства публикации, откроется окно Filter Data, где можно определить вертикальные и/или горизонтальные фильтры для статей публикации (рис. 15/41).


Рис. 15_41. Фильтрация данных публикации по вертикали и/или по горизонтали

При фильтрации данных по вертикали открывается окно Filter Table Columns (рис. 15/28). Репликация сведением позволяет использовать динамические и статические фильтры, включить которые можно в окне Enable Dynamic Filters (рис. 15/42).
В окне Generate Filters Automatically можно включить автоматиче ское создание статических или динамических горизонтальных филь тров (рис. 15/43).
При этом используется таблица со столбцом параметров, по которым следует фильтровать данные. Например, на рис. 15/43 исходный фильтр основан на столбце LastName таблицы Employees и имени зарегистрированного в системе пользователя. Затем, в окне Filter Table Rows, SQL Server использует этот начальный фильтр, чтобы создать предполагаемые фильтры (используя фильтры соединения) для связанных таблиц с целью ограничения реплицируемых данных, основываясь на имени пользователя (рис. 15/44).


Рис. 15_42. Выбор динамических фильтров


Рис. 15_43. Автоматическая генерация фильтров


Рис. 15_44. Автоматически сгенерированные фильтры

В окне Validate Subscriber Information SQL Server по умолчанию проверяет достоверность сведений о подписчике, используемых в динамическом фильтре, это автоматически происходит при каждом подключении агента Merge. Окно Validate Sub scriber Information SQL Server выводится только в том случае, если определены динамические фильтры (рис. 15/45).


Рис. 15_45. Автоматическая проверка информации динамических фильтров

Эта возможность позволяет гарантировать согласованность разбиения информации при сведении данных. Если выбраны параметры фильтров, показанные на рис. 15/45, при регистрации под другим именем пользователя подписчик не сможет синхронизировать данные. Это - рекомендованные параметры фильтрации.
В окне Optimize Synchronization можно повысить производительность синхронизации, сохранив дополнительную информацию на сервере/издателе (рис. 15/46).


Рис. 15_46. Оптимизация производительности синхронизации

Чтобы оптимизировать процесс синхронизации при репликации сведением, установите переключатель в положение Yes, Minimize The Amount Of Data. Это позволяет минимизировать сетевой трафик для выяснения того, относится ли изменение, внесенное издателем, к набору данных, который требуется свести с данными подписчика. Такая возможность очень полезна при использовании сетевых подключений с низкой пропускной способностью, но требует дополнительного пространства для хранения информации на сервере/издателе. Следующие два окна, Allow Anonymous Subscriptions и Set Snapshot Agent Schedule, аналогичны окнам, выводимым при настройке транзакционной публикации и публикации снимка (рис. 15/32 и 15/33). Окно Allow Anonymous Subscriptions не выводится, если флажок Show Advanced Options In This Wizard (рис. 15/17) снят. По умолчанию для публикаций сведением в окне Set Snapshot Agent Schedule немедленно создается начальный мгновенный снимок. Затем открывается окно Completing The Create Publication Wizard (рис. 15/34).

Примечание: При использовании динамических фильтров после создания обычного моментального снимка можно создавать динамиче ские снимки. Для этого щелкните значок публикации правой кнопкой и выберите Create Dynamic Snapshot Job.

[В начало]

Упражнение 3. Создание публикации сведением

В этом упражнении вы с помощью мастера Create Publication Wizard, доступного в SQL Server Enterprise Manager, создадите публикацию сведением.
Чтобы создать публикацию сведением

  1. В дереве консоли SQL Server Enterprise Manager последовательно раскройте контейнеры сервера по умолчанию и Replication.

  2. Щелкните Publications правой кнопкой и выберите New Publication.
    Откроется окно Welcome To The Create Publication Wizard.

  3. Пометьте флажок Show Advanced Options In This Wizard и щелкните Next.
    Откроется окно Choose Publication Database.

  4. В списке Databases выберите Northwind и щелкните Next.
    Откроется окно Select Publication Type.

  5. Установите переключатель в положение Merge Publication - Data Can Be Updated At The Publisher Or Any Subscriber. Changes Are Merged Periodically At The Publisher. This Supports Mobile, Occasionally Connected Subscribers и щелкните Next.
    Откроется окно Specify Subscriber Types.

  6. Проверьте, что помечен только один флажок Servers Running SQL Server 2000, и щелкните Next.
    Откроется окно Specify Articles.

  7. Выберите Article Defaults.
    Откроется окно Default Article Type.

  8. Убедитесь, что переключатель находится в положении Table Articles, и щелкните OK.
    Откроется окно Default Table Article Properties.

  9. Перейдите на вкладку Resolver.

  10. Пометьте флажок Select the Allow Subscribers To Resolve Conflicts Interactively During On/Demand Synchronization и щелкните OK.
    Снова откроется окно Specify Articles.

  11. Найдите поле Tables в столбце Object Type и пометьте флажок Publish All в соответствующей строке.

  12. Щелкните Next.
    Откроется окно Article Issues.

  13. Щелкните Next.
    Откроется окно Select Publication Name And Description.

  14. В поле Publication Name введите NorthwindSales, затем щелкните Next.
    Откроется окно Customize The Properties Of The Publication.

  15. Установите переключатель в положение Yes, I Will Define Data Filters, Enable Anonymous Subscriptions, Or Customize Other Properties и щелкните Next.
    Откроется окно Filter Data.

  16. Пометьте флажок Horizontally, By Filtering The Rows Of Published Data и щелкните Next.
    Откроется окно Enable Dynamic Filters.

  17. Убедитесь, что переключатель находится в положении No, Use Static Filters, и щелкните Next.
    Откроется окно Generate Filters Automatically.

  18. Чтобы создать пользовательскую функцию для фильтра, раскройте меню Start\Pro grams\ Microsoft SQL Server и выберите Query Analyzer.
    Откроется окно Connect To SQL Server.

  19. Убедитесь, что переключатель находится в положении Use Windows Authentication, и щелкните OK, чтобы установить соединение с экземпляром по умолчанию на SelfPacedCPU.

  20. В панели инструментов щелкните Load SQL Script.
    Откроется окно Open Query File.

  21. Откройте файл UDF.sql из папки C:\SelfPacedSQL\CH_15.
    Сценарий создает пользовательскую функцию, возвращающую строки таблицы, отфильтрованные по номеру недели.

  22. В панели инструментов щелкните Execute Query.

  23. После успешного выполнения сценария закройте Query Analyzer, чтобы вернуться к мастеру создания публикаций.

  24. В списке Table To Filter выберите [dbo].[Orders] для оператора SELECT, используемого в фильтре. Для этого введите dbo.udf_wknum(orderdate) between 1 and 12 и щелкните Next.
    Откроется окно SQL Server Enterprise Manager, где отображается состояние процесса генерации фильтров для публикации. После того как фильтры будут созданы, откроется окно Filter Table Rows.

  25. Щелкните Next.
    Откроется окно Optimize Synchronization.

  26. Щелкните Yes, Minimize The Amount Of Data, затем - Next.
    Откроется окно Allow Anonymous Subscriptions.

  27. Убедитесь, что переключатель находится в положении No, Allow Only Named Subscriptions, и щелкните Next.
    Откроется окно Set Snapshot Agent Schedule.

  28. Убедитесь в том, что флажок Create The First Snapshot Immediately помечен, и щелкните Next.
    Откроется окно Completing The Create Publication Wizard.

  29. Просмотрите свойства, установленные для публикации при помощи мастера, затем щелкните Finish, чтобы создать публикацию.
    Откроется окно SQL Server Enterprise Manager, где отображается состояние процесса создания публикации.

  30. Когда появится второе окно сообщения SQL Server Enterprise Manager, извещающее об успешном создании публикации, щелкните Close.

  31. Не закрывайте SQL Server Enterprise Manager.

[В начало]

Настройка принудительных подписок

Создав публикацию, можно средствами Push Subscription Wizard настроить на издателе принудительную подписку на нее. Принудительные подписки (push subscriptions) централизованно инициируются и управляются издателем. Чтобы запустить мастер, в меню Tools выберите Wizards, а затем в окне Select Wizard раскройте узел Replication и дважды щелкните Create Push Subscription Wizard. Можно также щелкнуть значок нужной публикации правой кнопкой и выбрать Push New Subscription. Откроется окно Welcome To The Push Subscription Wizard (рис. 15/47).


Рис. 15_47. Начало работы с мастером Push Subscription Wizard

Если в этом окне пометить флажок Show Advanced Options In This Wizard, при дальнейшей работе с мастером вы сможете задать параметры обновляемой подписки, а также сконфигурировать соответствующий агент репликации для работы на подписчике, а не на распространителе.
В окне Choose Subscribers выберите подписчиков, которым будет распространяться публикация (рис. 15/48). Можно выбрать один или несколько серверов/подписчиков. Подписчик должен быть включен в процесс репликации. Если мастер Push Subscription Wizard запущен членом роли сервера sysadmin, зарегистрированный экземпляр можно включить в процесс репликации "на лету". Если мастер запущен членом роли db_owner, дополнительных подписчиков подключить нельзя.


Рис. 15_48. Выбор серверов_подписчиков

В окне Choose Destination Database выберите конечную БД для репликации (рис. 15/49).


Рис. 15_49. Выбор конечной БД

По умолчанию имя конечной БД (также называемой БД подписки) соответствует имени БД публикаций. Конечная БД должна существовать на подписчике до его инициализации. Щелкните Browse Or Create, чтобы проверить наличие или создать БД подписок.
Далее, в зависимости от типа публикации, в окне Set Distribution Agent Location укажите место выполнения агента Distribution (рис. 15/50) или в окне Set Merge Agent Location (рис. 15/51) - место выполнения агента Merge. По умолчанию агент Merge запускается на издателе и использует его ресурсы. Но можно выбрать и другой вариант, когда агент выполняется на подписчике и использует локальные ресурсы (если подписчик - компьютер с Windows NT 4.0/2000). Если флажок Show Advanced Options In This Wizard (рис. 15/47) снят, указать место выполнения агента будет невозможно.
Затем в окне Set Distribution Agent (рис. 15/52) задайте расписание работы агента Distribution или в окне Set Merge Agent Schedule (рис. 15/53) - расписание работы агента Merge.
Заметьте: по умолчанию агенты Distribution выполняются постоянно, а агенты Merge запускаются каждый час.


Рис. 15_50. Выбор места выполнения агента Distribution


Рис. 15_51. Выбор места выполнения агента Merge


Рис. 15_52. Настройка расписания работы агента Distribution


Рис. 15_53. Настройка расписания работы агента Merge

Затем в окне Initialize Subscription укажите, где и когда инициализировать подписку. На рис. 15/54 показано, как инициализировать подписку средствами агента Distribution, а на рис. 15/55 - средствами агента Merge.


Рис. 15_54. Инициализация подписки средствами агента Distribution


Рис. 15_55. Инициализация подписки средствами агента Merge

Чтобы агент Snapshot создал моментальный снимок немедленно (если тот еще не со- здан) и затем инициализировал подписку (не ожидая следующего запуска по расписанию), установите переключатель в положение Yes, Initialize The Schema And Data и пометьте флажок Start The Snapshot Agent To Begin The Initialization Process Imme diately. Этот флажок не отображается, пока не будут созданы файлы моментальных снимков. Помните, что файлы моментальных снимков должны быть созданы до того, как агент Distribution или агент Merge сможет инициализировать подписку. Если вы создаете файлы мгновенных копий вручную (используя компакт/диск или другой носитель), укажите, что у подписчика уже имеются схема и данные, установив переключатель No, The Subscriber Already Has The Schema And Data.
Если вы создаете подписку на транзакционную публикацию или публикацию снимка, поддерживающую обновление данных, задайте в окне Updatable Subscriptions тип обновляемой подписки. Доступные в этом окне параметры зависят от типа обновляемых подписок, включенных в публикацию (рис. 15/56).


Рис. 15_56. Определение типа обновляемой подписки

Если вы создаете подписку на транзакционную публикацию или публикацию снимка, поддерживающую трансформацию данных, в окне Specify DTS Package укажите используемый данной подпиской пакет DTS. Заметьте: пакет DTS должен размещаться либо на ра спространителе, либо на подписчике (рис. 15/57).


Рис. 15_57. Указание пакета DTS, используемого подпиской

В окне Set Subscription Priority задайте приоритет подписок, если вы создаете подписку на публикацию сведением (рис. 15/58).


Рис. 15_58. Установка приоритета подписок с целью разрешения конфликтов

По умолчанию переключатель Use The Publisher As A Proxy For The Subscriber When Resolving Conflicts установлен. Такой приоритет подписки по умолчанию устанавливает нулевой приоритет для всех подписчиков. Издатель объединяет изменения, выполненные подписчиком, и присваивает их авторство (действуя как "заместитель" подписчика). Подписка без назначенного приоритета называется локальной (local subscription). Вы можете самостоятельно установить приоритет подписки, установив переключатель Use The Following Priority Between Zero (Lowest) And 99.99 (Highest), To Resolve The Conflict. Подписка с установленным приоритетом называется глобальной (glo bal subscription). В данном случае изменения, выполненные подписчиком, объединяются с данными изда- теля; при этом приоритет каждого подписчика, выполнившего изменения, сохраняется в составе метаданных для этого изменения. Это гарантирует, что на изменение, выполненное подписчиком с более высоким приоритетом, не накладывается изменение, внесенное подписчиком с более низким приоритетом.
Далее открывается окно Start Required Services, где агент SQL Server проверяет, что на распространяющем данные сервере запущены все необходимые службы (рис. 15/59).


Рис. 15_59. Выбор запускаемых служб

Служба SQL Server Agent требуется во всех случаях. Служба MSDTC требуется для обновляемых подписок (если используется служба Microsoft Message Queuing, служба MSDTC не нужна).
Если нужная служба не запущена, SQL Server Agent по умолчанию запустит ее, когда мастер завершит работу. Если вы хотите запускать службу вручную, не помечайте соответствующий флажок.В окне Completing The Push Subscription Wizard просмотрите заданные параметры подписок и щелкните Finish, чтобы создать принудительную подписку (рис. 15/60).


Рис. 15_60. Завершение работы с мастером Push Subscription Wizard

[В начало]

Упражнение 4. Создание принудительных подписок

В этом упражнении вы создадите принудительную подписку средствами мастера Create Push Subscription Wizard, доступного в SQL Server Enterprise Mana ger. Чтобы создать принудительную подписку

  1. В дереве консоли SQL Server Enterprise Manager последовательно раскройте контейнеры экземпляра по умолчанию, Replication и Publications.

  2. Правой кнопкой щелкните PubsSales:pubs и выберите Push New Subscription. Откроется окно Welcome To The Push Subscription Wizard.

  3. Пометьте флажок Show Advanced Options In This Wizard и щелкните Next. Откроется окно Choose Subscribers.

  4. В поле Subscribers выберите SelfPacedCPU\MyNamedInstance и щелкните Next.
    Откроется окно Choose Destination Database.

  5. Щелкните Browse Or Create.
    Откроется окно Browse Databases On 'SelfPacedCPU\MyNamed Instance'.

  6. Щелкните Create New.
    Откроется окно Database Properties.

  7. В поле Name введите PubsPush и щелкните OK.

  8. Проверьте, что в диалоговом окне Browse Databases On 'SelfPaced CPU\MyNamed- Instance' выбрана БД PubsPush, и щелкните OK.

  9. В окне Choose Destination Database щелкните Next.
    Откроется окно Set Distribution Agent Location.

  10. Проверьте, что переключатель находится в положении Run The Agent At The Distributor, и щелкните Next.
    Откроется окно Set Distribution Agent Schedule.

  11. Проверьте, что переключатель находится в положении Conti nuous ly - Provides Minimal Latency Between When An Action Occurs At The Publisher And Is Propagated To The Subscriber, и щелкните Next.

  12. Откроется окно Initialize Subscription.
    Проверьте, что переключатель находится в положении Yes, Initiali ze The Schema And Data.

  13. Пометьте флажок Start The Snapshot Agent To Begin The Initia lization Process Immediately и щелкните Next.
    Откроется окно Updatable Subscriptions.

  14. Установите переключатель в положение Immediate Updating With Queued Updating As A Standby In Case Of Failure и щелкните Next.
    Откроется окно Start Required Services. Обратите внимание, что должна быть запущена служба SQL Server Agent на сервере Self PacedCPU, а также служба MS DTC на обоих экземплярах SQL Server. Эти службы будут опрашиваться.

  15. Проверьте, что в табличном элементе управления этого окна помечены флажками все перечисленные службы, и щелкните Next.
    Откроется окно Completing The Push Subscription Wizard.

  16. Просмотрите установленные вами свойства подписки и щелкните Finish.
    Обратите внимание, что открывается окно сообщения SQL Server Enterprise Mana ger, где отображается текущее состояние процесса создания подписки.

  17. После успешного создания подписки открывается второе окно сообщения SQL Server Enterprise Manager. Щелкните Close.

  18. Не закрывайте SQL Server Enterprise Manager.

[В начало]

Конфигурирование подписок по запросу

Чтобы создать подписку по запросу (pull subscription), следует запу стить на подписчике мастер Pull Subscription Wizard. Подписка по запросу инициируются сервером/подписчиком в соответствии с заданным расписанием. Подписчик копирует реплицируемые данные с сервера/издателя. В этом процессе репликации используются ресурсы сервера/подписчика. При подписке по запросу на публикацию сведением данные передаются обратно издателю. Чтобы запустить мастер Pull Subscription Wizard, в меню Tools выберите Wizards, раскройте Rep lication в диалоговом окне Select Wizard и дважды щелкните Create Pull Subscription Wizard. Можно также щелкнуть Subscrip tions правой кнопкой и выбрать New Pull Subscription. На рис. 15/61 показано первое окно мастера Welcome To The Pull Subscription Wizard.
Заметьте: пометив флажок Show Advanced Options In This Wizard, вы сможете настроить параметры обновляемых подписок.


Рис. 15_61. Запуск мастера Pull Subscription Wizard

Далее в окне Look For Publications вы можете выполнить поиск публикаций на серверах, зарегистрированных в SQL Server Enterprise Manager. Вы также можете искать публикации в каталоге Active Directory, где публикуют свои БД серверы SQL Server 2000, зареги стрированные в Active Directory (рис. 15/62).


Рис. 15_62. Выбор места поиска публикации

Если вы выбрали поиск публикаций в БД Active Directory, вы можете ввести информацию о публикации в окне Specify Publication без регистрации сервера в SQL Server Enterprise Manager. Это полезно, если вы не имеете достаточных прав для регистрации сервера, публикующего данные, но при этом имеете необходимую информацию о публикации и необходимые права для подписки на эту публикацию (рис. 15/63). Если вы не располагаете необходимой информацией о публикации, которую хотите найти, щелкните Browse.
В диалоговом окне Find SQL Server Publications можно искать публикации SQL Server по именам или другим критериям (рис. 15/64).


Рис. 15_63. Использование Active Directory для подписки на публикацию


Рис. 15_64. Размещение публикации в БД Active Directory

Если вы выбрали поиск публикации, зарегистрированной в SQL Server Enterprise Manager, то в окне Choose Publication выберите пу бликацию, на которую хотите подписаться (рис. 15/65). Используя PAL публикаций, мастер выведет список публикаций, доступных пользователю, учетная запись которого использовалась при подключении к экземпляру SQL Server, а также список публикаций, доступных анонимным подписчикам.
Выбрав публикацию в окне Choose Destination Database, выберите БД, в которой вы собираетесь создать подписку. Эта БД должна быть размещена на сервере, где находятся реплицируемые данные. Выберите уже существующую БД из списка или создайте новую, щелкнув кнопку New (рис. 15/66).
Далее, если нужно разрешить анонимную подписку, пометьте соответствующий флажок в окне Allow Anonymous Subscription. Если подписка анонимна, издатель не сохраняет какую/либо информацию о подписчиках (рис. 15/67).


Рис. 15_65. Поиск зарегистрированных серверов для данной публикации


Рис. 15_66. Выбор конечной БД


Рис. 15_67. Создание анонимной подписки

Если вы выбрали публикацию, для которой разрешены обновляемые подписки, укажите тип таких подписок в окне Updatable Subsc riptions (рис. 15/68). Если вы выбрали один из типов 2PC, в окне Specify Updating Subscription Login укажите учетную запись, которая будет использоваться подписчиком для подключения к издателю. Выбранные вами типы подписок используют учетную запись определенного связанного сервера (или удаленного сервера) или учетную запись SQL Server (рис. 15/69).


Рис. 15_68. Выбор типа обновляемой подписки


Рис. 15_69. Определение учетной записи для обновляемой подписки

Далее в окне Initialize Subscription вы можете выбрать немедленную инициализацию подписки или указать, что у подписчика уже имеются файлы моментальных снимков. Это делается так же, как и в случае принудительной подписки (рис. 15/54 и 15/55). В окне Snapshot Delivery укажите, где находятся файлы моментальных снимков (рис. 15/70). Занятие 3 Реализация репликации 531


Рис. 15_70. Выбор размещения файлов моментальных снимков

Вы можете использовать для публикации папку моментальных снимков, выбранную по умолчанию, или другую (например компакт/диск или FTP/адрес). Агент репликации, созданный для подписки (это либо агент Distribution, либо агент, выполняющий слияние данных) должен иметь разрешения на чтение файлов моментальных снимков.
Затем в окне Set Merge Agent Schedule (рис. 15/71) задайте расписание работы агента Merge или в окне Set Distribution Agent Schedule - расписание работы агента Distribution. Вы можете выбрать непрерывную работу агента или же запускать его только по требованию.
Запуск по требованию позволяет подписчику использовать SQL Server Enterprise Manager или Windows Synchronization Manager для синхронизации подписки.


Рис. 15_71. Настройка расписания работы агента

Примечание Для создания подписки по требованию у доменной учетной записи службы SQL Server Agent должен быть полный доступ к разделу HKLM\Software\Micro soft\ Mic ro soft SQL Server\80\Replica tion\Subscriptions реестра.
Если подписка на публикацию сведением уже существует, откроется окно Set Subscription Priority Page. Все элементы этого окна аналогичны окну, открывающемуся при создании принудительной подписки (рис. 15/58).
В окне Start Required Services отображаются службы, которые необходимо запустить для этой подписки. Если в окне Set Merge Agent Schedule переключатель находится в поло- жении On Demand Only, окно Start Required Services не отображается. Служба SQL Server Agent всегда будет одной из выбранных служб. Если тип обновляемой подписки - 2PC, также будет выбрана служба MS DTC (рис. 15/72).


Рис. 15_72. Выбор запускаемых служб

В окне Completing The Pull Subscription Wizard просмотрите вы бранные параметры подписки и щелкните Finish, чтобы создать подписку по запросу.

[В начало]

Упражнение 5. Создание подписки по запросу

В этом упражнении вы создадите подписку на реплицируемые данные, в которой процесс репликации инициируется сервером, принимающим данные, с помощью мастера Create Pull Subscription Wizard в SQL Server Enterprise Manager.
Чтобы создать подписку по запросу

  1. В меню Start выберите Run.

  2. В поле Open введите Regedt32 и щелкните OK.
    Откроется Registry Editor.

  3. Раскройте HKEY_LOCAL_MACHINE, затем - каталоги Software, Microsoft, Mic ro soft SQL Server, 80, Replication и Subscriptions.

  4. В меню Security выберите Permissions.
    Откроется окно Permissions For Subscriptions.

  5. Щелкните Add.
    Откроется окно Select Users, Computers Or Groups.

  6. Дважды щелкните SQLService, затем - OK.
    Учетная запись пользователя домена SQLService добавлена в список Name.

  7. В списке Name выберите SQLService, затем пометьте флажок Full Control в группе элементов управления Permissions.

  8. Щелкните OK, чтобы закрыть окно Permissions for Subscriptions.

  9. Закройте Registry Editor.

  10. В дереве консоли SQL Server Enterprise Manager раскройте Self Paced CPU\My Named Instance, затем - контейнер Replication для экземпляра сервера MyNamed Instance.

  11. Правой кнопкой щелкните Subscriptions и выберите New Pull Subs cription.
    Откроется окно Welcome To The Pull Subscription Wizard.

  12. Пометьте флажок Show Advanced Options In This Wizard и щелкните Next.
    Откроется окно Look For Publications.

  13. Убедитесь, что переключатель находится в положении Look At Publications From Registered Servers и щелкните Next.
    Откроется окно Choose Publication.

  14. Раскройте SelfPacedCPU, щелкните NorthwindSales:Northwind, затем - Next. Откроется окно Choose Destination Database.

  15. Щелкните New.
    Откроется окно Database Properties.

  16. В поле Name введите NWindPull и щелкните OK.
    БД NWindPull создана с использованием параметров по умолчанию.

  17. Убедитесь, что в окне Choose Destination Database выбрана база NwindPull, и щелкните Next.
    Откроется окно Initialize Subscription.

  18. Убедитесь, что переключатель находится в положении Yes, Initialize The Schema And Data.

  19. Пометьте флажок Start The Merge Agent To Initialize The Subs crip tion Immediately и щелкните Next.
    Откроется окно Snapshot Delivery.

  20. Убедитесь, что переключатель находится в положении Use Snaps hot Files From The Default Snapshot Folder For This Publication, и щелкните Next.
    Откроется окно Set Merge Agent Schedule.

  21. Установите переключатель в положение On Demand Only - You Can Synchronize This Subscription Using SQL Server Enterprise Manager Or The Windows Synchro ni za tion Manager и щелкните Next.
    Откроется окно Set Subscription Priority.

  22. Убедитесь, что переключатель находится в положении Use The Publisher As A Proxy For The Subscriber When Resolving Conflicts, и щелкните Next.
    Откроется окно Completing The Pull Subscription Wizard.

  23. Просмотрите выбранные параметры подписки по запросу и щелкните Finish. Обратите внимание, что открывается окно сообщения SQL Server Enterprise Mana ger, где отображается состояние процесса создания подписки по запросу.

  24. Когда подписка будет успешно создана, щелкните OK.

  25. Не закрывайте SQL Server Enterprise Manager.

[В начало]

Резюме

При выполнении вашей задачи репликации сначала нужно выбрать распространитель и подключенные серверы, публикующие данные, а также БД подписки и серверы/подписчики. Вы можете использовать мастер Configure Publishing And Distribution Wizard для настройки параметров задач репликации. Чтобы создавать публикации моментальных снимков, публикации транзакций и публикации, использующие слияние данных, используйте мастер Create Publication Wizard. Конфигурируйте серверы/подписчики, используя мастер Push Subsc ription Wizard или Pull Subscription Wizard.

[В начало]

Занятие 4. Мониторинг и администрирование репликации

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

  • вести мониторинг задач репликации с помощью Replication Monitor;

  • настраивать оповещения о событиях репликации;

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

Продолжительность занятия - около 30 минут

[В начало]

Мониторинг репликации средствами Replication Monitor

Если ваш экземпляр SQL Server сконфигурирован в качестве распространителя и вы - член фиксированной роли сервера sysadmin или роли replmonitor БД распространения, в дереве консоли SQL Server Enterprise Manager вам будет доступен контейнер Replication Monitor. Он отображает список всех издателей, взаимодействующих с данным распространителем, а также текущее состояние всех агентов репликации. Контейнер Replication Monitor можно использовать для настройки и мониторинга оповещений о событиях репликации. Кроме того, в этом контейнере можно останавливать и запускать агентов репликации и повторно инициализировать подписки. Контейнер Replication Monitor можно также сделать центральным узлом, который будет использоваться для мониторинга и администрирования нескольких распространителей (для этого щелкните в дереве консоли контейнер Microsoft SQL Servers правой кнопкой и выберите Show Replication Monitor Group).
Чтобы запустить Replication Monitor, раскройте в дереве консоли Enterprise Mana ger контейнер нужного экземпляра SQL Server, являющегося распространителем, и затем - контейнер Replication Mo nitor. При первом раскрытии этого контейнера появится сообщение SQL Server Enterprise Manager о том, что в целях экономии ресурсов распространителя автоматическое обновление информации Rep li cation Monitor по умолчанию отключено (рис. 15/73).


Рис. 15_73. Конфигурирование параметров обновления информации Replication Monitor

На этапе тестирования можно установить переключатель в положение Yes, Auto matically Refresh Replication Monitor By Polling The Distributor, чтобы Replication Monitor автоматически обновлял отображаемую информацию. Если автоматическое обновление разрешено, можно щелкнуть Set Refresh Rate и задать его частоту (частота обновления по умолчанию - 10 сек). Однако в производственной среде переключатель следует установить в положение No, I Will Manually Refresh Replication Monitor, чтобы не создавать дополнительную нагрузку на распространитель.

[В начало]

Публикации

Раскрыв контейнер Replication Monitor, можно просматривать состояние различных компонентов репликации (рис. 15/74). Заметьте: отображаются все издатели, авторизованные для использования данного распространителя. В правой панели отображается состояние агента Snapshot и других агентов, используемых выбранной публикацией. Также отображается последняя выполненная операция. Чтобы просмотреть журнал какого/либо агента репликации, используемого пу бликацией, щелкните значок нужного агента правой кнопкой и выберите Agent History, (рис.15/75).


Рис. 15_74. Использование Replication Monitor


Рис. 15_75. Просмотр журнала агента репликации, используемого публикацией

[В начало]

Агенты

Сведения о репликации можно также просматривать, основываясь на нужном типе агента. Последовательно раскройте контейнеры Replication Monitor и Agents и выберите нужный тип агента репликации. Например, чтобы просмотреть состояние всех агентов Snapshot, щелкните контейнер Snapshot Agents (рис. 15/76).
Заметьте: на рис. 15/76 все агенты Snapshot успешно создали моментальные снимки. В случае проблем с репликацией публикации проверьте состояние агента Snashot и убедитесь, что он создал начальный моментальный снимок.


Рис. 15_76. Просмотр состояния всех агентов, создающих моментальный снимок

[В начало]

Оповещения

В контейнере Replication Alerts можно настраивать оповещения о событиях репликации (рис. 15/77). В SQL Server 2000 имеется восемь стандартных оповещений ре пликации. Чтобы воспользоваться один из них, оповещение следует активировать и определить операторов, уведомляемых о срабатывании оповещения. Для этого щелкните в правой панели контейнера Replication Alerts значок нужного оповещения правой кнопкой, выберите Properties и открывшемся окне активируйте предупреждение и определите операторов.


Рис. 15_77. Настройка предупреждений о событиях репликации

[В начало]

Упражнение 6. Мониторинг репликации

В этом упражнении вы с помощью консоли SQL Server Enterprise Manager будете наблюдать за публикациями и подписками.
Чтобы наблюдать за публикациями и подписками при помощи SQL Server Enterprise Manager

  1. В дереве консоли SQL Server Enterprise Manager раскройте контейнер Replication Monitor.
    Откроется диалоговое окно SQL Server Enterprise Manager.

  2. Установите переключатель в положение Yes, Automatically Refresh Replication Monitor By Polling The Distributor и щелкните OK.

  3. Последовательно раскройте контейнеры Agents и Snapshot Agents.

  4. Просмотрев столбец Status в правой панели, убедитесь, что для каждой публикации создан моментальный снимок.

  5. В правой панели щелкните значок NorthwindSales правой кнопкой и выберите Agent History.
    Откроется окно Snapshot Agent History.

  6. Щелкните Session Details. Откроется окно Latest History Of Snapshot Agent. В списке перечислены действия, предпринятые для создания файлов моментальных снимков.

  7. Щелкните Close.

  8. В диалоговом окне Snapshot Agent History щелкните Agent Profile. Откроется окно Snapshot Agent Profiles.

  9. Щелкните View Details.
    Откроется окно Replication Agent Profile Details. Просмотрите параметры агента Snapshot.

  10. Щелкните Close.

  11. В диалоговом окне Snapshot Agent Profiles щелкните OK.

  12. В дереве консоли последовательно раскройте контейнеры Repli cation Monitor, Publishers, SelfPacedCPU и PubSales:pubs.
    В правой панели отображается состояние всех агентов репликации. Заметьте: запущен только агент Snapshot, поскольку реплицируемых или находящихся в очереди транзакций нет.

  13. В меню Tools выберите SQL Query Analyzer.

  14. В панели инструментов щелкните Load SQL Script. Откроется окно Open Query File.

  15. Откройте файл PubsUpdate.sql из папки C:\SelfPacedSQL\CH_15.
    Сценарий содержит оператор UPDATE, который меняет фамилию автора, Johnson White, на Johnson Black.

  16. В панели задач щелкните Execute Query.

  17. Переключитесь в SQL Server Enterprise Manager.

  18. В правой панели обратите внимание на агенты Log Reader и Dist ribution (под названием SelfPacedCPU\MyNamedInstance:Pubs Push). Приблизительно через 10 секунд оба агента запустятся и обновят БД PubsPush на сервере SelfPaced CPU\My Named Instance. Каждый агент покажет, что передана одна транзакция, состоящая из двух команд. Еще через 10 секунд оба агента покажут, что на текущий момент реплицируемых транзакций нет.

  19. Не закрывайте окно SQL Server Enterprise Manager и SQL Query Analyzer.

[В начало]

Просмотр и изменение свойств распространителя

Чтобы просмотреть и изменить свойства распространителя, в дереве консоли SQL Server Enterprise Manager щелкните контейнер Replication Monitor правой кнопкой и выберите Distributor Properties (рис. 15/78).


Рис. 15_78. Просмотр и изменение свойств распространителя

На вкладке Distributor можно просмотреть и изменить свойства распространителя, включая профили для новых агентов репликации. Вкладка Publishers позволяет включать и отключать издателей, вкладка Publication Databases — БД публикаций, а вкладка Subscribers — подписчиков. Чтобы задать период хранения транзакций и журнала событий, щелкните Properties на вкладке Distributor. На рис. 15/79 показано окно Distribution Database Properties.


Рис. 15_79. Просмотр и изменение периодов хранения транзакций и журнала событий

Заметьте: максимальный период хранения транзакций по умолчанию составляет 72 часа, период хранения журнала событий репликации — 48 часов. Эти настройки помогают определить размер БД распространения. Например, если подписчик транзакционной публикации не смог вовремя получить реплицируемые транзакции, они будут храниться в БД ра спространения в течение 72 часов. В БД распространения должно быть достаточно свободного места для хранения всех реплицированных транзакций, которые не смогли получить подписчики. По истечении максимального срока хранения подписчику придется повторно инициализировать подписку. Это потребует создания и пересылки нового снимка данных и негативно скажется на производительности.

[В начало]

Просмотр и изменение свойств публикаций

Чтобы просмотреть и изменить свойства публикации, щелкните ее значок в правой панели контейнера Replication Monitor или в контейнере Publications опубликованной БД.
Щелкните публикацию правой кнопкой и выберите Properties. Если на публикацию имеются подписки, появится сообщение SQL Server Enterprise Manager о том, что большинство свойства изменить нельзя (рис. 15/80). Чтобы изменять их, следует удалить все подписки на публикацию. Щелкните OK, чтобы закрыть окно сообщения SQL Server Enterprise Manager.


Рис. 15_80. Сообщение о наличии подписок на редактируемую публикацию

Откроется окно Publication Properties с выбранной вкладкой General. У каждой публикации есть множество свойств, которые можно просматривать и изменять (рис. 15/81).


Рис. 15_81. Просмотр и изменение свойств публикации

Заметьте: по умолчанию срок истечения подписки на публикацию сведением — 14 дней. В некоторых средах вам потребуется сконфигурировать подписки с неограниченным сроком действия.

[В начало]

Просмотр и изменение профилей агентов репликации

У каждого агента репликации есть профиль, определяющий параметры выполнения задач, включая время ожидания и размер пакета bcp. При настройке сервера/распространителя создается набор профилей по умолчанию для всех типов агентов репликации; в дальнейшем этот набор можно изменять как одно из свойств распространителя. Чтобы изменить профиль существующего агента репликации, в контейнере Agents щелкните нужный значок правой кнопкой и выберите Agent Profiles. Откроется окно Distribution Agent Profiles (рис. 15/82).


Рис. 15_82. Просмотр и изменение профиля агента репликации

На рис. 15/82 приведен профиль агента Distribution. Заметьте: используется профиль по умолчанию, и доступно три дополнительных профиля агента. При использовании одного из них агент будет продолжать работу, несмотря на ошибки из/за несогласованности данных. По умолчанию при возникновении таких ошибок агент прерывает синхронизацию данных. В некоторых средах такую модель поведения по умолчанию потребуется переопределить. В профиле агента можно указать, что необходимо вести краткий журнал событий в целях выявления и устранения ошибок. Можно также настроить профиль для работы с Windows Synchronization Manager и использования пакетов меньшего размера. Чтобы просмотреть параметры профиля, щелкните View Details. Откроется окно Replication Agent Profile Details (рис. 15/83).


Рис. 15_83. Просмотр и изменение параметров профиля агента

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

[В начало]

Просмотр и изменение свойств подписок

Чтобы просмотреть и изменить свойства подписки на публикацию, щелкните в контейнере Publications публикацию правой кнопкой, выберите Properties и в диалоговом окне Publication Properties перейдите на вкладку Subscriptions . Здесь отображаются все текущие подписки на публикацию (рис. 15/84).


Рис. 15_84. Просмотр подписок

Чтобы просмотреть свойства подписки, щелкните ее значок в контейнере Sub scription правой кнопкой и выберите Properties. Откроется окно Subscription Pro per ties (рис. 15/85).


Рис. 15_85. Просмотр основных свойств подписки

Перейдите на вкладку Synchronization, чтобы просмотреть или изменить сервер, на котором будет выполняться агент. Если на публикацию подписаны компьютеры с Windows NT 4.0/2000, в целях уменьшения нагрузки на распространитель агент можно запускать на подписчиках (рис. 15/86).


Рис. 15_86. Выбор сервера для агента репликации

Чтобы просмотреть состояние подписки на сервере/подписчике, раскройте в дереве консоли Enterprise Manager контейнер Replication и щелкните Subscriptions (рис. 15/87).


Рис. 15_87. Просмотр состояния подписки на сервере_подписчике

В правой панели отображаются все подписки и их текущее состояние.

[В начало]

Просмотр и устранение конфликтов репликации сведением

Чтобы просмотреть и устранить на распространителе конфликт ре пликации сведением, щелкните в контейнере Replication дерева консоли Enterprise Manager нужный значок правой кнопкой и выберите View Conflicts. Откроется окно Microsoft Replica tion Conflict Viewer (рис. 15/88).


Рис. 15_88. Просмотр конфликтов репликации

В окне отображаются все имеющиеся конфликты. Чтобы устранить конфликт, щелкните View (рис. 15/89).


Рис. 15_89. Окно Microsoft Replication Conflict Viewer

Для устранения конфликта можно оставить «победителя», предложенного SQL Server, выбрать «проигравшего» или отредактировать конфликтующие сведения. Кроме того, можно отложить разрешение конфликта или зарегистрировать подробности устранения в журнале для последующего просмотра.

[В начало]

Использование Windows Synchronization Manager

Чтобы запустить Windows Synchronization Manager на подписчике, раскройте меню Start\Programs\Accessories и выберите Synchronize. Откроется окно Items To Synchro nize (рис. 15/90).


Рис. 15_90. Окно Windows Synchronization Manager

Заметьте: Windows Synchronization Manager позволяет синхронизировать разные объекты. Выберите подписку на публикацию и щелкните Synchronize, чтобы немедленно синхронизовать все помеченные флажками объекты. Если для публикации разрешено интерактивное разрешение конфликтов, вам будет предложено устранить все конфликты, которые могут возникнуть в процессе синхронизации. Щелкните Setup, чтобы открыть окно Synchronization Settings и настроить параметры синхронизации каждого объекта. Синхронизация может выполняться при входе в систему, завершении сеанса работы с ней, в периоды простоя процессора, а также по расписанию (рис. 15/91).


Рис. 15_91. Настройка параметров синхронизации

Выберите подписку на публикацию и щелкните Properties, чтобы сконфигурировать свойства подписки. Откроется окно SQL Server Subscription Properties с выбранной вкладкой General (рис. 15/92). Подписку можно синхронизировать с текущим издателем по умолчанию или выбрать для синхронизации другого издателя. Это полезно, когда текущий издатель по умолчанию временно работает в автономном режиме, а также в случае проблем с сетевым соединением. Чтобы сделать издателем по умолчанию другой сервер, пометьте флажок Make This Publisher The Default Synchro nization Partner. Кнопки Reinitialize Subscription и Remove Subscription позволяют повторно инициализировать или удалить подписку соответственно.


Рис. 15_92. Выбор издателя по умолчанию

На вкладке Subscriber можно изменить учетную запись, используемую принудительной подпиской для подключения к подписчику (рис. 15/93). На вкладке Publisher — учетную запись, используемую подпиской по запросу для подключения к издателю (рис. 15/94). На вкладке Distributor — учетную запись, используемую подпиской по запросу для подключения к распространителю (рис. 15/95). Можно выбрать текущую учетную запись пользователя, запускающего Synch ronization Manager, или указать регистрационную запись SQL Server (рис. 15/95).


Рис. 15_93. Свойства учетной записи подписчика


Рис. 15_94. Свойства учетной записи издателя


Рис. 15_95. Свойства учетной записи распространителя

На вкладке Other можно включить автоматическое или интерактивное устранение конфликтов. Здесь же можно задать время ожидания входа в систему и время ожидания запроса (по умолчанию — 15 и 30 сек соответственно). Это будет полезно при использовании медленных сетевых подключений (рис. 15/96).


Рис. 15_96. Настройка режима устранения конфликтов

[В начало]

Упражнение 7. Интерактивное разрешение конфликтов средствами Windows Synchronization Manager

В этом упражнении вы с помощью Windows Synchronization Manager устраните конфликты в интерактивном режиме.
Чтобы устранить конфликты в интерактивном режиме средствами Windows Synchronization Manager

  1. Разверните окно SQL Query Analyzer.

  2. В панели инструментов щелкните Load SQL Script.
    Откроется окно Open Query File.

  3. Откройте файл NorthwindUpdate.sql из папки C:\SelfPacedSQL\ CH_15.
    Этот сценарий обновляет запись о сотруднике с идентификатором 1, изменяя его имя и должность.

  4. В панели инструментов щелкните Execute Query.

  5. В меню File выберите Connect.
    Откроется окно Connect To SQL Server.

  6. Щелкните кнопку SQL Server (…), чтобы выбрать экземпляр SQL Server.
    Откроется окно Select Server.

  7. Выберите SelfPacedCPU\MyNamedInstance и щелкните OK.

  8. Убедитесь, что переключатель находится в положении Use Win dows Authentication, и щелкните OK.

  9. В панели инструментов щелкните Load SQL Script.
    Откроется окно Open Query File.

  10. Откройте файл NwindPullUpdate.sql из папки C:\SelfPacedSQL\ CH_15.
    Этот сценарий обновляет запись о сотруднике с идентификатором 1, изменяя его имя и должность. Обратите внимание, что имя и должность отличаются от значений из предыдущего сценария (см. пункт 3).

  11. В панели инструментов щелкните Execute Query.

  12. Для синхронизации с использованием Windows Synchronization Manager раскройте меню Start\Programs\Accessories и выберите Synchronize.

  13. Щелкните NwindPull:NorthwindSales и выберите Properties.
    Откроется окно SQL Server Subscription Properties.

  14. Перейдите на вкладку Other.

  15. Установите переключатель в положение Resolve Conflicts Interactively (Only Applies To Articles That Support Interactive Resolution) и щелкните OK.
    Откроется окно Microsoft SQL Server 2000 с предложением подтвердить смену режима разрешения конфликтов.

  16. Щелкните Yes.

  17. Снимите флажок Clear the My Current Home Page, убедитесь, что помечен только флажок NwindPull:NorthwindSales, и щелкните Synchronize.
    Откроется окно Synchronizing. Через некоторое время откроется окно Microsoft Replication Conflict Viewer for ‘Northwind’ — ‘[dbo].[Employees]’.Заметьте: раскрывающиеся меню позволяют просматривать данные на издателе и на подписчике.

  18. Установите переключатель Resolve With This Data. Процесс синхронизации завершается.

  19. В SQL Query Analyzer выберите подключение к MyNamedInstance и щелкните Clear Window в панели инструментов.

  20. В области запросов введите SELECT * FROM Employees WHERE EmployeeID = 1 и в панели инструментов щелкните Execute Query.
    Заметьте: данные успешно реплицированы на сервер My Named Instance.

  21. Закройте SQL Server Enterprise Manager и SQL Query Analyzer.

[В начало]

Резюме

Контейнер Replication Monitor позволяет наблюдать за всеми аспектами репликации. Наблюдение можно вести по публикациям или по типам агентов. Кроме того, в контейнере Replication Monitor можно просматривать состояние всех публикаций и агентов, запускать, останавливать агент, а также просматривать его журнал и параметры публикации.
Если на публикацию имеются подписки, можно изменять лишь ограниченный набор ее свойств. Для редактирования всех свойств публикации имеющиеся подписки необходимо удалить. Mic rosoft Replication Conflict Viewer позволяет просматривать и устранять конфликты репликации сведением. Если разрешена синхронизация публикации, с помощью Windows Synchronization Manager можно интерактивно управлять синхронизацией на стороне подписчика.

[В начало]

Закрепление материала

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

  1. Сотрудникам из бразильского офиса вашей компании требуется доступ к данным центральной БД в Нью/Йорке для анализа продаж. Бразильские сотрудники обращаются к нью/йоркской БД по выделенному каналу на 56 Кбит/сек, который параллельно используется и для других целей. Вы хотите организовать репликацию данных между нью/йоркским и бразильским офисами. Какой тип следует выбрать и какая дополнительная информация вам потребуется?

  2. Вы развернули репликацию сведением. Все подписчики под управлением Windows NT 4.0/2000 могут инициализировать подписку и успешно обмениваться данными с издателем. Однако подписчики под управлением Windows 98/Me, обмениваться данными с издателем не могут. В чем здесь проблема и как ее устранить?

  3. Вы планируете организовать репликацию сведением. Каковы преимущества использования выделенного распространителя?

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

[В начало]

Перевод: Издательского дома ПИТЕР  2005г.

Rambler's Top100 Рейтинг@Mail.ru  Administrator: Обратная связь 
Copyright: SQL.Ru 2000-2013