MCSA/MCSE, MCDBA Training Kit Exam 70-228 Microsoft SQL Server 2000 System Administration Microsoft-Press курс SA/MCSE, MCDBA ...
-- [ Страница 9 ] --Табл. 14-10. Сведения контейнера Process Info Столбец Описание Process ID Идентификатор, назначаемый SQL Server процессу (SPID) Context ID Идентификатор контекста выполнения (ECID) дочернего потока, работающего от имени процесса User Идентификатор пользователя, который выполнил команду, запустившую процесс Database Текущий контекст БД процесса (у некоторых системных процессов нет контекста ЕД) Status Состояние процесса Ч running, sleeping, runnable или background Open Transactions Число открытых процессом транзакций Command Команда SQL Server, выполняемая в данный момент для процесса Application Имя приложения, используемого процессом Wait Time Время ожидания процесса, если таковое имеется (в миллисекундах) Wait Type Строка, указывающая тип текущего или последнего ожидания процесса Wait Resource Текстовое описание заблокированного ресурса, например используемый процессом идентификатор записи (RID) CPU Общее время процессора на обслуживание процесса Physical IO Общее число дисковых операций чтения Ч записи, выполненных для процесса Memory Usage Число страниц в кэше процедур, выделенных процессу в данный момент. Если значение отрицательное, страницы освобождаются для другого процесса Login Time Время регистрации клиентского процесса на сервере. Для серверных процессов Ч время начала работы сервера Занятие 3 Выполнение задач мониторинга Табл. 14-10. (окончание) Столбец Описание Last Batch Время последнего выполнения клиентским процессом оператора EXECUTE или удаленного вызова хранимой процедуры. Для серверных процессов Ч время начала работы сервера Host Имя компьютера, запустившего процесс Metwork Library Сетевая библиотека, использованная клиентом для запуска процесса Network Address Сетевой, или МАС-адрес (Message Authentication Code, код проверки подлинности сообщения), сетевой платы клиентского компьютера, запустившего процесс Blocked By SPID процесса, блокирующего данный процесс Blocking SPID процесса, заблокированного данным процессом Контейнер Locks/Process ID отображает информацию об активных процессах. Что бы просмотреть список удерживаемых процессом блокировок, раскройте контейнер Locks/Process ID и щелкните в дереве консоли нужный процесс (рис. 14-18 и 14-19).
SSEMOB 3 Чз иЩЛ SQL Server АКТ Sess В | SOL Server Group J SSEMDB.rJbo.CusKrtUr TAB AMI Xact !=Х ifa sappftCEDCBJ (wnto-s NT;
PAS GHANT Xstt 55ММ.ОЬс.СиЯопиг GflftrJT W, G3 Data TranifBmetico Service В UJ лидете* SQl Sever Agлnt(M5X) Bedup access Info LKл ;
ProcHi ю stMSI ХS U Рис. 14-18. Информация контейнера Locks/Process ID для блокирующего процесса Заметьте: процесс с идентификатором SPID 56 заблокирует процесс с идентифи катором SPID 53. SPID 53 удерживает монопольную блокировку уровня ряда на не котором ресурсе и SPID 56 хочет наложить блокировку на этот же ресурс. Подробнее о типах и режимах блокировок Ч в разделе Monitoring with SQL Server Enterprise Manager* справочной системы SQL Server Books Online. Чтобы просмотреть последнюю команду, выполненную блокирующим процессом, щелкните идентификатор процесса правой кнопкой и выберите Properties. Откроется окно Process Details (рис. 14-20).
Заметьте: на рис. 14-20 последний пакет команд TSQL начал, но не завершил тран закцию, потому что она блокирует другие процессы. Для устранения мешающей бло кировки или взаимоблокировки администратор БД может с помощью кнопки Send Message отправить пользователю, запустившему блокирующий процесс, сообщение, или при помощи кнопки Kill Process самостоятельно завершить процесс.
Мониторинг производительности и активности SQL Server Гяааз Рис. 14-19. Информация контейнера Locks/Process ID для заблокированного процесса Рис. 14-20. Последняя TSQL-команда блокирующего процесса I Root rrosof t SQL Servers 1 49 SQL Sever Group : 3) 3ELFBACEDCRJ IWIndae 4T| I Data TransforrMtic I BaCkiJO | Curwit Atbvitv - 11М200П 4:59:54 f :.
. Process IrFo srid 53 (Hdtbne) JB №Й56(В1(1*я)Ву53) Рис. 14-21. Информация контейнера Locks/object о заблокированном объекте Занятие 3 Выполнение задач мониторинга Примечание В целом, приложение, ожидающее ввода, должно налагать разделяемые, а не монопольные блокировки.
Контейнер Locks/Object отображает информацию о заблокированных объектах БД, начиная с уровня рядов и таблиц и заканчивая уровнем БД (рис. 14-21).
Заметьте: три процесса налагают блокировки в таблице Customer БД SSEMDB.
Процесс с идентификатором 53 удерживает монопольную блокировку уровня ряда, а процессы с идентификаторами 55 и 56 ожидают, когда они смогут наложить такую же блокировку на этот же ряд.
Упражнение 3. Устранение проблем, связанных с блокировками, при помощи окна Current Activity и системных хранимых процедур В этом упражнении вы с помошью SQL Server Enterprise Manager и системных хранимых процедур будете вести мониторинг проблем с блокировками.
** Для наблюдения за проблемами с блокировками при помощи окна Current Activity и системных хранимых процедур 1. Убедитесь, что вы зарегистрировались на контроллере домена SelfPacedSQL.MSFT под учетной записью Administrator.
2. Раскройте меню Start\Programs\Microsoft SQL Server и выберите Enterprise Manager.
3. В дереве консоли последовательно раскройте контейнеры Microsoft SQL Servers, SQL Server Group, SelfPacedCPU, Management, Current Activity и затем щелкните Process Info.
В правой панели отобразится информация о процессах. Если подробные сведения не отображаются, щелкните значок Process Info правой кнопкой и выберите View\Detail.
4. В правой панели щелкните заголовок столбца User, чтобы упорядочить данные по имени пользователя.
Обратите внимание на два процесса, запущенные пользователем SelfPaced SQL Ad ministrator: один Ч это подключение консоли SQL Server Enterprise Manager к БД master, а второй Ч подключение SQL Query Analyzer к БД Northwind. Запомните идентификатор второго процесса.
5. Переключитесь в SQL Query Analyzer.
6. Щелкните кнопку Load SQL Script в панели инструментов.
Откроется окно Open Query File.
7. Откройте файл BlockLock.sql из папки C:\SelfPacedSQL\CH_14.
Запустится сценарий Transact-SQL, который начнет транзакцию, обновляющую значение поля ContactName записи с заданным значением поля CustomerlD, Он также выполняет системную хранимую процедуру sp_lock.
8. Щелкните кнопку Execute Query в панели инструментов.
Внимательно просмотрите информацию, возвращаемую системной хранимой тро цедурой sp_lock. Обратите внимание на блокировки, наложенные процессом под ключения SQL Query Analyzer, и, в частности, на наложенную им монопольную блокировку уровня ряда.
9. В меню File выберите Connect.
Откроется окно Connect To SQL Server.
Мониторинг производительности и активности SQL Server Глава 10. Убедитесь, что установлен переключатель Windows Authentication. Затем щелкни те ОК, чтобы подключиться к экземпляру SQL Server по умолчанию на компьюте ре SelfPacedCPU.
11. Щелкните кнопку Load SQL Script в панели инструментов.
Откроется окно Open Query File.
12. Откройте файл BlockLock2.sql из папки C:\SelfPacedSQL\CH_14.
13. Откроется запрос BlockLock2.sql, который обновляет ту же запись таблицы, что и первый сценарий, но при этом завершает транзакцию.
14. Щелкните кнопку Execute Query в панели инструментов.
Заметьте: запрос не завершил выполнение.
15. Переключитесь в SQL Server Enterprise Manager.
16. В дереве консоли щелкните контейнер Current Activity правой кнопкой и выбери те Refresh.
17. В правой панели дважды щелкните Locks/Process ID.
Заметьте: второй процесс заблокирован первым.
18. Щелкните блокирующий процесс правой кнопкой и выберите Properties.
Откроется окно Process Details, где показан последний пакет команд TSQL, вы полненный блокирующим процессом.
19. Щелкните кнопку Send Message.
Откроется окно Send Message Ч SelfPacedCPU.
20. В поле Message введите Your application is blocking. Please close your open transaction и щелкните кнопку Send.
Откроется окно Send Message, извещающее об успешной отправке сообщения.
Затем появится окно службы Messenger Service с самим сообщением (одно окно будет отображаться под другим).
21. Дважды щелкните ОК, чтобы закрыть окна сообщений.
22. В окне Process Details щелкните Close.
23. В дереве консоли выберите заблокированный процесс.
Заметьте: значение столбца Status правой панели Ч waiting, т. е. этот процесс ожи дает, когда он сможет наложить блокировку уровня ряда.
24. В дереве консоли раскройте контейнер Locks/Object и щелкните SSEMDB.dbo.Cus tomer.
В правой панели обратите внимание на две блокировки уровня записи. Первый процесс наложил монопольную блокировку уровня ряда, а второй ожидает, когда сможет наложить блокировку.
25. Переключитесь в SQL Query Analyzer.
Заметьте: выполнение второго запроса до сих пор не завершено.
26. Перейдите к первому подключению.
27. В области запросов выделите BOLLBACK TRAN и в панели инструментов щелк ните кнопку Execute Query.
Перейдите ко второму запросу. Обратите внимание, что теперь он успешно вы полнен. Заметьте также, к завершению транзакции второй запрос не удерживает каких-либо монопольных блокировок.
28. Переключитесь в SQL Server Enterprise Manager.
29. В дереве консоли щелкните контейнер Current Activity правой кнопкой и выбери те команду Refresh.
Занятие 3 Выполнение задач мониторинга 30. В правой панели дважды щелкните Locks/Process ID.
Заметьте: мешающих блокировок и заблокированных процессов нет.
31. Закройте SQL Server Enterprise Manager и SQL Query Analyzer.
Резюме При наблюдении за производительностью и активностью SQL Server сначала опреде лите задачу мониторинга и затем выберите соответствующее средство наблюдения.
Вместо одновременного мониторинга всех операций и ресурсов следует проводить конкретные, узкоспециализированные наблюдения. Проводя в течение определен ного времени одинаковые наблюдения, вы сможете установить и корректировать ба зовый уровень производительности. Окно Current Activity консоли SQL Server Enter prise Manager позволяет управлять взаимоблокировками и просматривать имеюшие ся мешающие блокировки.
Мониторинг производительности и активноеЩ SQL Server Глава Закрепление материала ?J Приведенные ниже вопросы помогут вам лучше усвоить основные темы дан ной главы. Если вы не сумеете ответить на вопрос, повторите материал соот ветствующего занятия. Правильные ответы приведены в приложении Воп росы и ответы в конце книги.
1. Вы недавно стали администратором БД среднего размера, и вам поставили задачу повысить ее производительность. Однако явных проблем нет. С чего следует на чать оптимизацию?
2. Вам требуется быстро просмотреть информацию об использовании всех ресурсов компьютера SQL Server и определить, достаточны ли имеющиеся ресурсы для вы полнения поставленных задач Какая утилита больше всего подходит для этой цели?
i 3. Вы просматриваете текущую активность сервера с помощью SQL Server Enterprise Manager и обнаружили несколько мешающих блокировок. Как определить, явля ются ли они серьезной проблемой?
ГЛАВА Репликация баз данных Занятие 1. Обзор репликации !> Занятие 2. Планирование репликации Занятие 3, Реализация репликации Занятие 4. Мониторинг и администрирование репликации В этой главе Здесь рассказывается о репликации БД SQL Server. Вы узнаете о типах и о моделях репликации, а также о проблемах настройки эффективного и безопасного процесса репликации. Вы научитесь использовать утилиту SQL Server Enterprise Manager для организации репликации, создания публикаций и конфигурирования подписчиков.
Наконец, вы сможете вести мониторинг репликации, а также конфигурировать свой ства распространителей и агентов репликации.
Прежде всего Для изучения материалов этой главы вам потребуются:
Х компьютер, соответствующий минимальным аппаратным требованиям, перечис ленным в главе 2;
Х ОС Microsoft Windows 2000 Server, установленная на разделе диска с файловой системой NTFS;
Х компьютер с сетевым именем SelfPacedCPU, сконфигурированный как контрол лер домена SelfPacedSQL.MSFT;
Х один установленный по умолчанию и по крайней мере один именованный экзем пляр SQL Server 2000 на одном компьютере.
Репликация баз данных Глава Занятие 1. Обзор репликации SQL Server 2000 предоставляет разнообразные решения репликации, позволяющие распространять данные и хранимые процедуры между серверами вашей рабочей сре ды. На этом занятии вы узнаете, зачем нужно дублирование информации, а также познакомитесь с терминологией репликации. Также вы познакомитесь с каждым из существующих типов и с моделями репликации. Наконец, вы узнаете о различных средствах реализации решений по репликации БД.
Изучив материал этого занятия, вы сможете:
S использовать терминологию репликации;
ХS описать характерные особенности каждого из типов репликации;
^ выбрать подходящую модель и средства репликации, Продолжительность занятия - около 15 минут Процесс репликации Репликация (replication) Ч это процесс автоматического распределения копий данных и объектов БД между экземплярами SQL Server с одновременной синхронизацией всей распространяемой информации.
Почему необходимо реплицировать данные Существует достаточно много оснований для репликации данных и хранимых проце дур на разные серверы. Вот некоторые из них.
Х Снижение сетевого трафика между удаленными офисами. Например, чтобы поль зователи из нью-йоркского отделения компании не запрашивали данные с лон донского сервера по каналу с ограниченной пропускной способностью, мож но реплицировать эти данные на нью-йоркский сервер (в тот момент, когда не будет сильной нагрузки, отрицательно отражающейся на пропускной способнос ти канала связи) и обращаться к ним локально.
Х Отделение OLTP-операций от функций средств поддержки принятия решений.
Чтобы пользователи системы поддержки принятия решений не выполняли запро сы на занятом OLTP-сервере, данные для запроса можно реплицировать на выде ленный сервер поддержки принятия решений.
Х Объединение данных, поступающих из различных мест. В каждом из нескольких региональных отделений компании данные могут размешаться на локальном сер вере SQL Server, затем в процессе репликации перемещаться в центральное отде ление и автоматически объединяться.
Х Реализация избыточности данных. Данные могут быть реплицированы на резерв ный сервер, который может использоваться для запросов, выполняемых с помо щью средств поддержки принятия решений, и предоставлять копию данных при отказе основного сервера.
Х Расширение системы за пределы ЛВС. Данные, для доступа к которым использу ется Интернет, могут быть реплицированы на различные серверы в разных геогра фических регионах для равномерного распределения нагрузки между серверами.
Х Поддержка мобильных пользователей. Данные могут быть реплицированы на пор тативные компьютеры, где их можно обновлять в автономном режиме. При под въ Занятие 1 Обзор репликации _ ~'%/4J ключении к сети измененные данные можно реплицировать в главную БД и осу ществить их синхронизацию.
Типы репликации SQL Server 2000 поддерживает три типа репликации (replication types) Ч моменталь ных снимков, транзакций и сведением. Репликация моментальных снимков (snapshot replication) Ч это периодическая репликация целостного набора данных, зафиксиро ванного по состоянию на определенный момент времени, с локального сервера на удаленные. Лучше использовать этот тип репликации в БД, где количество реплици руемых данных невилико, а источник данных статичен. Вы можете предоставлять удаленным серверам ограниченную возможность обновления реплицированных дан ных. Репликация транзакций (transactional replication) Ч это репликация начального моментального снимка данных на удаленные серверы, а также репликация отдель ных транзакций, работающих на локальном сервере и выполняющих последователь ные изменения данных в начальном моментальном снимке. Эти реплицированные транзакции выполняются над реплицируемыми данными на каждом удаленном сер вере для синхронизации данных на удаленном сервере с данными локального серве ра, Вы можете использовать этот тип репликации, если вам необходимо постоянное обновление данных на удаленных серверах. Вы можете предоставлять удаленным сер верам ограниченную возможность обновления реплицированных данных. Реплика ция сведением (merge replication)Ч это репликация начального моментального снимка данных на удаленные серверы, а также репликация изменений, происходящих на ка ком-либо удаленном сервере, обратно на локальный сервер с целью синхронизации, разрешения конфликтов и повторной репликации на удаленные серверы. Вы можете использовать репликацию сведением в случае, когда многочисленным изменениям подвергаются одни и те же данные, либо когда удаленные независимые компьютеры работают автономно, например, как в случае автономного пользователя.
Терминология репликации Средства репликации SQL Server используют терминологию издательской деятельно сти для названий процессов и компонентов репликации. Сервер, реплицирующий сохраненную информацию на другие серверы, называется издателем (publisher). Реп лицируемая информация состоит из одной или нескольких публикаций (publications).
Каждая публикация представляет собой логически согласованный набор данных от дельной БД и состоит из одной или нескольких статей (articles). Статья может быть одним или несколькими объектами следующего типа:
Х часть или целая таблица (с фильтрацией по столбцам и/или по строкам);
Х хранимая процедура или определение представления;
Х выполнение хранимой процедуры;
Х представление;
Х индексированное представление;
Х пользовательская функция.
В процессе репликации каждый издатель взаимодействует с распространителем (distributor). Последний сохраняет публикуемые БД, историю событий и метаданные.
Роль распространителя зависит от типа репликации. При этом распространитель мо жет быть локальным (тот же экземпляр SQL Server) или удаленным (отдельный эк земпляр SQL Server).
17- Репликация баз данных Глава Серверы, получающие реплицируемую информацию, называются подписчиками (subscribers). Они получают избранные публикации Ч подписки (subscriptions) Ч от одного или нескольких издателей. В зависимости от типа репликации, подписчикам может быть разрешено изменять реплицируемую информацию, а также реплициро вать измененную информацию обратно издателю. Подписчики могут быть авторизо ваны, или могут быть анонимными (анонимная подписка используется при публика ции данных в Интернете). Для больших публикаций использование анонимных сер веров может повысить производительность системы.
Агенты репликации (replication agents) автоматизируют процесс репликации. Как правило, агент репликации Ч это задание службы SQL Server Agent, сконфигуриро ванное администратором для выполнения специфических задач по расписанию. По умолчанию в среде Windows NT 4.0/2000 агенты репликации выполняются в контек сте безопасности доменной учетной записи службы SQL Server Agent. В Windows 98/ Me они выполняются в контексте безопасности зарегистрированного в системе пользователя. Существует некоторое число агентов репликации для различных задач репликации. Каждый агент сконфигурирован так для запуска по определенному рас писанию. Различные типы репликации используют один или несколько таких агентов.
Х Агент Snapshot создает исходную мгновенную копию каждой реплицируемой пуб ликации, включая информацию о схеме. Его используют все типы репликации.
Вы можете иметь один такой агент на каждую публикацию.
Х Агент Distribution передает моментальный снимок данных и последующие изме нения от распространителя подписчикам. Этот агент используется при реплика ции моментальных снимков и репликации транзакций. По умолчанию для всех подписок на отдельную публикацию используется один агент Distribution. Такой агент называется разделяемым (shared). Однако вы можете настроить систему так, чтобы у каждого подписчика был личный, независимый (independent), агент Distri bution.
Х Агент Log Reader перемещает транзакции, помеченные для репликации, из жур нала транзакций с сервера-издателя на сервер-распространитель. Этот агент ис пользуется при репликации транзакций. Каждая из помеченных для репликации БД будет иметь один агент Log Reader, запускающийся на распространителе и подключающийся к издателю.
Х Агент Queue Reader вносит в публикацию изменения, сделанные подписчиками в автономном режиме. Репликация мгновенных снимков и репликация транзакций используют этот агент в случае, если разрешена очередь обновлений. Агент запус кается на распространителе, и существует только один экземпляр такого агента, обслуживающий всех издателей и публикации для конкретного распространителя.
Х Агент Merge передает моментальный снимок данных от распространителя подпис чикам. Он также перемещает и контролирует изменения в реплицируемых данных между издателем и подписчиками. Этот агент дезактивирует подписки, информа ция которых не обновлялась и течение максимального срока хранения публика ции (по умолчанию Ч 14 дней). Этот агент используется в случае репликации све дением. Каждая подписка на объединенную публикацию имеет свой объединяю щий агент, который синхронизирует данные между сервером, публикующим дан ные, и сер верам и-подписчиками.
Х Агент History Clean Up удаляет журнал событий агента из БД распространения, и используется для управления размером этой БД. Все типы репликации использу ют этот агент. По умолчанию он запускается каждые 10 минут.
Занятие 1 Обзор репликации Х Агент 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) полезна, когда подписчикам требуется изредка изменять последнюю.
Если же подписку изменяют часто, лучше использовать репликацию сведением. Кро ме того, в случае с обновляемыми подписками все обновления являются частью тран закции. Это означает, что обновление либо целиком подтверждается, либо откатыва ется, если происходит конфликт. При репликации сведением конфликты разреша ются построчно.
Глава 1S Репликаций баз данных vX Агент Snapshot t Агент Distributes А Ч*Х Данные или транзакции Распро странитель., Ч*ХХ Записи журналов событий и ошибок Рис. 15-1. Процесс репликации моментальных снимков Если используется немедленное обновление подписки, при любой попытке под писчика обновить реплицированные данные он сам или издатель инициируют тран закцию с двухэтапным подтверждением (two-phase commit, 2PC). 2РС-транзакция включает этап подготовки и этап подтверждения, и выполняется под управлением службы MS DTC, запущенной на подписчике и выступающей в качестве диспетчера транзакций. На подготовительном этапе MS DTC координирует действия служб SQL Server, запущенных на издателе и подписчике и играющих роль диспетчеров ресур сов, чтобы гарантировать успешное выполнение транзакции в обеих БД. На этапе подтверждения MS DTC получает от диспетчеров ресурсов уведомления об успеш ной подготовке, затем диспетчерам передается команда подтверждения и транзакция подтверждается на сервере-издателе и сервере-подписчике. Если на издателе имеется конфликт (конфликтующее обновление еще не было тиражировано на сервер-под писчик), транзакция, иницииронанная подписчиком, завершается неудачно. 2РС транзакция гарантирует отсутствие конфликтов, поскольку издатель выявляет все конфликты до подтверждения транзакции.
Если используется очередь обновлений (Queued Updating), сделанные подписчи ком изменения помещаются в очередь и периодически передаются издателю. Изме нения могут быть выполнены при отсутствии соединения с издателем. Изменения, которые находятся в очереди, пересылаются на данный сервер, когда устанавливает ся соединение. Очередь может храниться либо в БД SQL Server, либо вы можете выб рать использование Microsoft Message Queuing, если работаете в среде Windows 2000.
Подробнее об использовании Microsoft Message Queuing Ч в разделе Queued Updating Components* справочной системы SQL Server Books Online. Так как обновления про исходят не в реальном времени, то конфликты могут происходить, если другой под писчик или издатель изменили одни и те же данные. Конфликты разрешаются с ис Занятие 1 Обзор репликации пользованием стратегии разрешения конфликтов, определяемой в момент создания публикации.
Если используются оба варианта обновления подписок, очередь обновлений выс тупает в качестве страховки на случай отказа немедленного обновления (например, из-за сбоев в работе сети). Это полезно, когда между издателем и подписчиком суще ствует постоянное соединение, но при этом вы хотите убедиться, что подписчики могут совершать обновления в случае, если соединение разорвано.
Репликация транзакций При репликации транзакций агент Snapshot создает исходный моментальный снимок данных, помеченных для репликации, и копирует его с сервера-издателя в папку мо ментальных снимков распространителя. Агент Distribution направляет полученный снимок каждому подписчику. Агент Log Reader следит за изменениями данных, уча ствующих в репликации, и фиксирует каждое изменение журнала транзакций в БД распространения на сервере-распространителе. Агент Distribution отправляет каждое изменение всем подписчикам в первоначальном порядке выполнения этих измене ний. Если хранимая процедура используется для обновления большого количества записей, можно реплицировать эту процедуру, а не каждую обновленную строку. Все три этих агента репликации заносят информацию о событиях и ошибках в БД рас пространения. На рис. 15-2 показан процесс репликации транзакций.
Х Х Х Начальные данные и схема > Ноные -.страТительх ""^ транзакции Ч*- Записи журналов событий и ошибок Рис. 15-2. Процесс репликации транзакций Агент Distribution может работать постоянно, чтобы минимизировать задержку в обновлении данных между издателем и подписчиками, или может выполняться по заданному расписанию. Подписчики при наличии сетевого соединения с издателем могут получать изменения почти в реальном времени. После того как все подписчи ки Глава Репликации баз данных получат реплицированные транзакции, агент Distribution Clean Up удаляет эти тран закции из БД распространения. Если по окончании заданного периода хранения (по умолчанию Ч 72 часа) подписчик не получил реплицируемые транзакции, те удаля ются из БД распространения и подписка дезактивируется. Это позволяет предотвра тить чрезмерное увеличение размера БД распространения. Дезактивированная под писка может быть повторно активирована, и тогда подписчику с целью обновления его данных передается новый моментальный снимок.
Кроме того, репликацию транзакций, по аналогии со снимочной репликацией, можно настроить для поддержки обновляемых подписок.
Репликация сведением При репликации сведением агент Snapshot передает начальный моментальный сни мок данных, участвующих в репликации, от издателя в папку моментальных копий распространителя. Агент Merge направляет полученный снимок каждому подписчи ку. Также он анализирует и объединяет изменения реплицируемых данных, выпол няемые издателем и подписчиками. Если при объединении изменений происходит конфликт на издателе, агент Merge разрешает его, используя указанный администра тором способ. Вы можете выбрать одно из существующих средств обнаружения кон фликтов или создавать свое собстненное. Оба агента заносят информацию о событиях и ошибках в БД распространения (это единственная функция БД распространения в случае репликации сведением), Процесс репликации сведением показан на рис. 15-3.
Пользовательское Пользовательское приложение приложение *+ Папка моментальных I снимков 1*~"Х 'Oi - ^\ I- " ^Агент Merge j^jt \ Ч"*" БД распространения Распро- *" / Начальные данные и схема.странитель / Ч Х Новые транэакщли * Ч^ Записи журналов событий и ошибок Рис. 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 также позволяет определить оповещения о событиях репликации.
Кроме того, вы можете организовывать, вести мониторинг и администрировать процесс репликации, используя некоторые другие методы.
490 Репликация баз данных Глава Х Элементы управления ActiveX применяются в пользовательских приложениях, написанных на Visual Basic или Visual C++. Они позволяют программно управ лять работой агентов Shaphot, Merge и Distribution. Например, в приложении мо жет присутствовать кнопка Synchronize, запускающая агент Merge для сведения и синхронизации данных.
Х SQL-DMO используется для создания пользовательских приложений, позволяю щих конфигурировать, организовывать и обслуживать среду репликации.
Х Replication Distributor Interface обеспечивает возможность репликации данных из гетерогенных источников данных (например Access или Oracle).
Х Хранимые процедуры используются главным образом для создания сценариев реп ликации на нескольких серверах, основываясь на конфигурации репликации, за данной средствами SQL Server Enterprise Manager.
Х Windows Synchronization Manager Ч эта утилита из состава Windows 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 Планирование репликации дп-t Занятие 2. Планирование репликации Для успешной репликации вам потребуется разработать подробный план. О некото рых пунктах этого плана будет рассказано на этом занятии. Вы научитесь планиро вать защиту процесса репликации. Также вы узнаете о фильтрации данных с целью защиты данных и повышения производительности системы. Наконец, вы научитесь ис пользовать средства для хранения и использования начальных моментальных снимков, Изучив материал этого занятия, вы сможете:
^ спланировать защиту процесса репликации;
s описать возможности фильтрации данных;
S выбрать параметры создания начальных мгновенных снимков.
Продолжительность занятия Ч около 15 минут Планирование защиты репликации Защита процесса репликации реализована на нескольких уровнях. Прежде всего, только члены роли сервера sysadmin, могут конфигурировать и администрировать распространителей, издателей и подписчиков, включая конфигурирование БД для репликации. На уровне БД только члены роли сервера sysadmin и фиксированной роли db_owner опубликованной БД могут создавать и конфигурировать публикации и подписки. Только члены роли сервера sysadmin и фиксированной роли replmonitor БД распространения могут отслеживать активность процесса репликации.
Если используется удаленный распространитель., можно организовать защищен ное соединение между ним и издателем. При соединении используется учетная за пись distributor_admin SQL Server (следует использовать смешанный режим проверки подлинности). На удаленном распространителе издателя можно сконфигурировать в качестве доверенного (пароль для доступа не нужен) или ненадежного (для доступа требуется пароль). Рекомендуется использовать второй вариант.
Примечание Пароль учетной записи distributor_admin следует изменять только на вкладке Distributor диалогового окна Publisher And Distributor Properties, доступного в Enterprise Manager, или с помощью системной хранимой процедуры sp_changedistribu tor_password.
На компьютерах с Windows NT 4.0/2000 расположение по умолчанию папки мо ментальных снимков, используемой для репликации, Ч C:\Program Files\Microsoft SQL Server\Mssql\Repldata на распространителе;
система также делает эту папку скры тым административным ресурсом, например \\SeIfPacedCPU\C$\Program Files\Mic rosoft SQL Server\Mssql\RepIdata. В средах 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 пег). В сложных средах репликации вам, возможно, потребуется добавить в PAL до полнительных пользователей.
Чтобы репликация выполнялась без ошибок, необходимо назначить следующие разрешения:
Х агенту Snapshot Ч разрешения доступа к БД публикаций на издателе и к БД рас пространения на распространителе, и, как уже упоминалось в разделе Репликация транзакций этой главы, разрешения доступа к папке моментальных снимков;
Х агенту Log Reader Ч разрешения доступа к БД публикаций на издателе и к БД распространения на распространителе;
Х агенту Distribution Ч разрешения доступа к БД распространения на распростра нителе и БД подписки на подписчике, и, как уже упоминалось в разделе Реплика ция транзакций* этой главы, разрешения доступа к папке моментальных снимков;
Х агенту Merge Ч разрешения доступа к БД публикаций на издателе, БД распрост ранения на распространителе и БД подписки на подписчике, и, как уже упомина лось в разделе Репликация транзакций этой главы, разрешения доступа к папке моментальных снимков.
Фильтрация публикуемых данных Фильтрация публикуемых данных используется в целях защиты информации и повы шения производительности системы. Фильтровать данные можно по горизонтали (выбирая определенные записи) или по вертикали (выбирая определенные столбцы).
Например, можно исключить из репликации столбцы, содержащие важную инфор мацию или двоичные данные изображений- Можно также оставить только записи с информацией о продажах, относящейся к нужному региону. Фильтры могут быть ста тическими или динамическими.
Статические фильтры вводят ограничения на публикацию определенных строк или столбцов, и все подписчики получают одинаковые данные (за исключением транс формируемой подписки). Все типы репликации могут использовать статические фильтры. Чтобы опубликовать отдельные наборы данных для разных подписчиков при помощи статических фильтров, следует либо создать отдельные публикации, либо использовать трансформируемую подписку (transformable subscription). Горизонтальный фильтр может значительно снизить производительность репликации транзакций, по скольку просматриваются все записи журнала транзакций БД публикаций.
С помощью динамических фильтров можно предоставлять разным подписчикам разные наборы данных, основываясь на функциях SQL Server (имя пользователя, имя узла и т. д.). Фильтры соединения (join filters) используются для поддержания ссылоч ной целостности между двумя таблицами, участвующими в репликации (например для отношения первичный ключ/внешний ключ). Динамические фильтры и филь тры соединения используются только для репликации сведением. Когда вы исполь зуете динамические фильтры, динамические моментальные снимки позволяют гене рировать отдельные снимки данных для подписчиков разных типов. Это может зна чительно повысить производительность при внесении начальной копии в БД, однако Занятие 2 Планирование репликации при этом требуется дополнительное пространство для папки моментальных снимков и дополнительное время для создание начального моментального снимка.
При репликации моментальных снимков и репликации транзакций трансформи руемые подписки с нестандартными фильтрами позволяют динамически предостав лять разные наборы данных отдельным подписчикам. Трансформируемые подписки используют возможности DTS для изменения и преобразования реплицируемых дан ных, основываясь на потребностях отдельных подписчиков. Тем не менее обновляе мые и трансформируемые подписки несовместимы.
Параметры создания начальных моментальных снимков По умолчанию файлы начальных моментальных снимков копируются в папку Repl data распространителя. Однако вы можете хранить оригиналы или копии файлов мгновенных копий в другом месте, например на сетевом диске или на компакт-дис ке. Файлы моментальных снимков, сохраненные в резервном каталоге, могут быть сжаты (для сжатия используется формат Microsoft CAB), чтобы файлы могли умес титься на съемном носителе информации или для ускорения передачи данных при использовании соединения с низкой скоростью передачи данных. На сжатие файлов моментальных снимков потребуется дополнительное время.
По умолчанию либо агент Distribution, либо агент Merge вносят моментальный снимок в БД подписки. Если объем данных в публикации достаточно велик, считы вание исходной мгновенной копии вручную с компакт-диска или другого запомина ющего устройства (например с ленты) может выполняться быстрее, чем пересылка файла по сети.
Вы можете не сохранять файлы моментальных снимков после репликации, по скольку они занимают значительный объем пространства на жестком диске. Файлы моментальных снимков автоматически сохраняются в памяти, если вы специально указали это или разрешили анонимную подписку на публикацию. Если же вы не выб рали ни один из этих вариантов публикации, тогда SQL Server будет удалять мгновен ные копии данных после того, как все подписчики получили и установили исходную мгновенную копию. Если новый подписчик попытается синхронизовать данные, ему следует ждать следующего момента, когда будет автоматически сгенерирован момен тальный снимок, или администратору следует вручную запустить агент Snapshot.
Резюме Только члены роли сервера sysadmin имеют доступ ко всем настройкам репликации.
Они, а также члены фиксированной роли БД db_owner, могут создавать публикации и подписки, и конфигурировать их. У агента Snapshot должен быть полный доступ к папке моментальных снимков, у агентов Distribution и Merge Ч доступ для чтения (кроме случаев, когда администратор вносит начальный моментальный снимок в БД вручную). Кроме того, агентам репликации следует назначить соответствующие раз решения доступа к БД публикаций, распространения и подписки. Публикуемые дан ные можно фильтровать по горизонтали и вертикали для повышения производитель ности, и при необходимости преобразовывать их в соответствии с требованиями от дельных подписчиков. Помимо статических фильтров, для фильтрации данных ис пользуются динамические фильтры и подписки с преобразованием данных. Началь ный моментальный снимок можно скопировать в резервную локальную папку (на пример на компакт-диск), при этом выполняется сжатие данных с использованием формата файлов Microsoft CAB.
Репликация баэ данных Глава 3. Реализация репликации Обычно репликацию организуют средствами мастеров, доступных в консоли SQL Server Enterprise Manager. Здесь рассказывается о настройке свойств распространите лей и издателей. Вы узнаете, как реализовать репликацию моментальных снимков, репликацию транзакций и сведением. Кроме того, вы научитесь создавать принуди тельные подписки, подписки по запросу и анонимные подписки.
Изучив материал этого занятия, вы сможете:
Х/ настроить свойства распространителя и издателя;
Х/ организовать репликацию моментальных снимков, репликацию транзакций и сведением;
S создать принудительную подписку, подписку по запросу и анонимную подписку.
Продолжительность занятия Ч около 45 минут Настройка свойств распространителя и издателя Настроить свойства распространителя и издателя можно при помощи мастера Confi gure Publishing And Distribution Wizard. Кроме того, их свойства можно конфигуриро вать в процессе создания публикации средствами мастера Create And Manage Publica tions Wizard. Чтобы запустить мастер Configure Publishing And Distribution Wizard, в меню Tools выберите Wizards, раскройте в диалоговом окне Select Wizard узел Replica tion и дважды щелкните Configure Publishing And Distribution Wizard. Можно также щелкнуть контейнер Replication правой кнопкой и выбрать Configure Publishing, Subscribers, And Distribution. Откроется окно Welcome To The Configure Publishing And Distribution Wizard (рис. 15-4).
Welcome to the Configuie Publishing and Distribution Wizard Рис. 15-4. Запуск мастера Configure Publishing And Distribution Wizard Щелкните Next, чтобы сделать локальный сервер распространителем или выбрать распространителя для уже сконфигурированного издателя. Откроется окно Select Distributor (рис. 15-5).
По умолчанию предлагается сделать распространителем локальный сервер, а так же создать БД распространения и журнал транзакций. Если вы хотите выбрать уда Занятие 3 Реализация репликации IQE ленный сервер, он уже должен быть сконфигурирован в качестве распространителя.
Кроме того, для выбора удаленного сервера его следует предварительно зарегистри ровать в SQL Server Enterprise Manager. У вас также должны иметься соответствую щие права доступа к удаленному распространителю.
Select DittriHrtor !
Use IN* server as s 0"jn Disirfcula or lelecl arelhm server as lha Dirtriutor. | Рис. 15-5. Выбор распространителя Если в качестве распространителя выбран локальный сервер, откроется окно Specify Snapshot Folder, где можно указать размещение папки моментальных сним ков. Размещение этой папки на экземпляре SQL Server по умолчанию Ч C:\Program Files\Microsoft SQL Server\Mssql\ReplData (рис. 15-6).
Spec* Snapxhol Foldei Рис. 15-6. Выбор папки моментальных снимков Заметьте: указанная в поле Snapshot Folder папка по умолчанию использует адми нистративный ресурс С$. У агента 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 показан общий ресурс Repldata, а также доменная учетная запись службы SQL Server Agent, которой предоставлен полный доступ к этому ресурсу. Если к папке будут обращаться другие пользователи (допустим, пользователи Windows 98/ Me, участвующие в репликации сведением), им можно предоставить доступ для чте ния, разрешив загрузку файлов моментальных снимков.
Рис. 15-7. Создание общего ресурса для папки моментальных снимков и назначение разрешений доступа В окне Customize The Configuration можно изменять свойства распространителя или принять параметры по умолчанию (рис. 15-8).
Customize the CiMiPiguralion You on confiawe your tetvei tor replication nilti detail ttrgs, a you can CLBlomee the selling!
Рис. 15-8. Выбор параметров распространителя по умолчанию Редактировать параметры настройки распространителя следует, если необходимо изменить расположение по умолчанию БД распространения и журнала транзакций, разрешить дополнительным издателям использовать данного распространителя (по умолчанию с ним взаимодействует только локальный сервер), добавить новые БД ра спространения или изменить список текущих подписчиков (по умолчанию на публи Реализация репликации Занятие J for SELtPAl KILI'lr Enable Subtcribeii Erabte stivers to subsrnbe to publications from this FUteher.
,,,. -.,., -., -.- mm i-t* mm т ШШ Рис. 15-13. Выбор подписчиков Рис. 15-14. Общие свойства подписчика Для подключения к подписчику все агенты репликации по умолчанию использу ют доменную учетную запись службы SQL Server Agent. Можно также выбрать регис трационную запись SQL Server.
На вкладке Schedules можно изменить расписание работы агентов Distribution и Merge, заданное по умолчанию (рис. 15-15).
Заметьте: по умолчанию все новые агенты Distribution выполняются постоянно, а агенты Merge запускаются каждый час. Эти парметры можно изменить. Кроме того,, рас писание агентов по умолчанию можно переопределить при создании новой подписки.
В последнем окне мастера Completing The Configure Publishing And Distribution Wizard можно просмотреть все выбранные параметры, перед тем как создать БД рас пространения и сконфигурировать распространителя и издателя (рис. 15-16).
По завершении работы с мастером Configure Publishing And Distribution Wizard от кроется окно SQL Server Enterprise Manager с сообщением о том, что в дерево консо ли добавлен контейнер Replication Monitor. Подробнее об использовании Replication Monitor Ч в занятии 4 этой главы.
500 Репликация баз данных Глава.Х]WH 1,!'- Х '.
'.1 - - r i, i :
ME.. '.I ШМ --Г " и I''!.' Рис. 15-15. Расписания по умолчанию агентов Distribution и Merge Completing the Configure Publishing and Distribution Wizard Рис, 15-16. Просмотр свойств распространителей и издателей Упражнение 1. Настройка распространителя В этом упражнении вы с помощью мастера Configure Publishing And Distribu tion Wizard, доступного в SQL Server Enterprise Manager, создадите и настрои те сервер-распространитель.
*Х Чтобы создать и сконфигурировать сервер-распространитель 1. Убедитесь, что вы зарегистрировались на контроллере домена SetfPacedSQL.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 и экземпляра по умолчанию.
Занятие 3 Реализация репликации 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.
И. Щелкните Remove, чтобы удалить группу Everyone из списка Name, затем щелк ните Add.
Откроется окно Select Users, Computers, Or Groups.
12. В списке Name дважды щелкните SQLService, затем щелкните ОК. В группе эле ментов управления Permissions пометьте флажок Full Control.
13. Щелкните OK, чтобы закрыть окно Permissions For Repldata.
14. Щелкните OK, чтобы закрыть окно Repldata Properties.
15. Щелкните OK, чтобы закрыть окно Browse For Folder.
16. В поле Snapshot Folder вместо значения по умолчанию введите \\SelfPacedCPtA, Repldata и щелкните 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 Distribution Wizard.
19. Щелкните Finish, чтобы сделать сервер SelfPacedCPU распространителем.
Откроется окно SQL Server Enterprise Manager, где отображаются изменения в кон фигурации этого сервера.
20. В окне SQL Server Enterprise Manager с сообщением об успешной настройке SelfPacedCPU в качестве распространителя щелкните ОК.
Откроется окно SQL Server Enterprise Manager с информацией о том, что в дерево консоли добавлен Replication Monitor.
21. Щелкните Close. Закройте SQL Server Enterprise Manager.
Создание публикаций Если вы создаете публикацию впервые, рекомендуем воспользоваться мастером Create Publication Wizard. Чтобы запустить его, в меню Tools выберите Wizards, раскройте в окне Select Wizard узел Replication и дважды щелкните Create Publication Wizard. Мож Репликация баз данных 502 Глава но также раскрыть в дереве консоли контейнер Replication, щелкнуть контейнер Publications правой кнопкой и выбрать New Publication. Откроется первое окно мас тера Welcome To The Create Publication Wizard (рис. 15-17).
Welcome to the Create! Publication Wizard wijafdhHpijrauptAishjKjuf dais so Bial it can be shaiec Mi Subscribes Wi* (his misid you ivi.
atw Iron Ifie data it a database i>rm selecl I to 'he data n (he pubfcaliwi :iel Hie publicatiorh properties tt* pubfceltm is aealed the dalu Km be sriared ers njrrrig SOL Server arid beta'o jeneous data injrces by ubsaiptiors I lihoi* advanced ofrars i this i Рис. 15-17. Первое окно мастера Create Publication Wizard Для отображения дополнительных параметров настройки можно пометить фла жок Show Advanced Options In This Wizard. Это позволит вам создавать обновляемые подписки и трансформируемые подписки.
В окне Choose Publication Database выберите БД с данными и объектами, которые требуется опубликовать (рис. 15-18).
Рис. 15-18. Выбор БД публикаций Если мастер Create Publication Wizard запущен членом роли сервера sysadmin, ото бражаются все пользовательские БД и автоматически разрешается репликация лю бой выбранной БД, Если же мастер Create Publication Wizard запущен членом роли db_owner, будет разрешена репликация только ранее выбранных БД, владельцем ко торых является db_owner.
В окне Select Publication Type выберите тип публикации (рис. 15-19).
Можно создать публикацию снимка, транзакционную публикацию и публикацию сведением.
Реализация репликации Занятие 3 Setect Publication Select Ihe pubkatran 1 - *W beH tuppofe the fflqutemenli of youj :
Х'Х, | Ш i '. : Х, -. - j - Ш ХХ L ' ;
;
.- -Х-.
Рис, 15-19. Выбор типа публикации Создание публикации снимка Если вы установили переключатель Snapshot Publication и пометили флажок Show Advanced Options In This Wizard, откроется окно Updatable Subscriptions. Здесь можно разрешить немедленное обновление (Immediate Updating) и/или очередь обновлений (Queued Updating) (рис. 15-20).
Ufidatabla Subictipliont You can alli>4 changes friade в" л Subicrber to be replicarec \o The Publithe* and I-.| i Рис. 15-20. Выбор параметров обновления подписки Заметьте: если помечен флажок Queued Updating, обновления по умолчанию по мещаются в БД SQL Server. Переключиться на использование службы Microsoft Message Queuing можно только после создания публикации.
Если вы решили не создавать обновляемую подписку, откроется окно Transform Published Data, позволяющее создать трансформируемую подписку (рис. 15-21). Это окно открывается, только если помечен флажок Show Advanced Options In This Wizard (рис. 15-17).
В окне Specify Subscriber Types следует указать типы подписчиков, подписывае мых на данную публикацию (рис. 15-22).
Если вы указали, что публикация поддерживает подписки от SQL Server 7.0 и от гетерогенных источников данных, мастер не будет отображать недопустимые для этих подписчиков параметры. Например, не поддерживается репликация представлений на серверы-подписчики SQL Server 7.0.
Глава Репликация баз данных Tumlo You can choose wtielda
Рис. 15-21. Создание трансформируемой подписки -.г, ЯШ I;
': (I Г Х ;
i,,i. -I.!
...
> -!$!: (ifnf.'i... !((.!,! ;
с^ 1C li. git."' ~fl-;
l I -. I-,;
41,.
3 i f ;
, Х ' Х. ! Х я..,. laitHtyj ХХ!.",..!Д !A '.,5-^ v^-i.l,,J.
I,'..,-ХХ!, '.'.л.Mil ll'rj. ' *.л Je ГчЗ-iilt.ni I,, !',;
[~-. Х. ',...,.Х Х'" '' Рис. 15-22. Указание типа подписчиков Примечание Если вы выбирали подписчиков SQL Server 2000, но не включили какие либо новые функции, на публикацию также смогут подписаться экземпляры SQL Ser ver 7.0 и гетерогенные источники данных.
В окне Specify Articles выберите статьи, входящие в состав публикации (рис. 15-23).
ec* Article.
Pubfeh tablet end other cMttase ctwci) м oclidct Vou cei Ия Ihe put*ied data Рис. 15-23. Выбор статей для публикации Занятие 3 Реализация репликации gjg Можно выбирать таблицы, хранимые процедуры и представления. В зависимости от выбранных ранее параметров, в списке могут отображаться не все указанные типы объектов. Например, если вы решили создать трансформируемую подписку, можно будет опубликовать только таблицы. Чтобы задать глобальные свойства публикуемых таблиц, хранимых процедур или представлений из состава определенной статьи, щел кните Article Defaults;
задать свойства отдельных объектов можно, щелкнув кнопку (...). По умолчанию реплицируемые статьи имеют в БД подписки то же имя, что и в БД публикации. Кроме того, если в БД подписки существует объект с тем же самым именем, он по умолчанию удаляется и затем создается заново. Можно также репли цировать дополнительные объекты (например триггеры) или исключить из реплика ции индексы (по умолчанию они реплицируются). Щелкните Article Defaults, чтобы открыть окно Default Article Type. Затем дважды щелкните Table Articles, в окне Default Table Article Properties перейдите на вкладку Snapshot и задайте свойства таблиц ста тьи по умолчанию (рис. 15-24).
Рис. 15-24. Конфигурирование параметров таблиц статьи по умолчанию Затем в окне Article Issues, в зависимости от выбранных вами статей для публика ции и типа разрешенных подписок, может появиться сообщение о проблемах исполь зования столбцов с типами данных unique identifier и timestamp, а также столбца IDENTITY. Конкретный текст сообщения будет зависеть от выбранного типа репли кации и архитектуры БД публикаций. Подробнее об этом Ч в разделе Article Issues справочной системы SQL Server Books Online. Возможно, вы также получите сообще ние о том, что некоторые таблицы, объекты и представления ссылаются на объекты, не включенные в публикацию. Если объект БД ссылается на другие объекты БД, их следует также опубликовать или создать вручную на сервере-подписчике (рис. 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).
506 Репликация баз данных Глава Article liiuei The blowing issues may quire chaopei lo your application lo eitwe it conlinues la operate as expected Tab'es referenced bji views ere (enured Druects relerenced by stored procedures ft lequnec Рис. 15-25. Объекты статьи Select PiMcation Nan and [letcriplian Select а пат* and riescrtficn lix Ihs виЫса1Ьп.
Рис. 15-26. Задание имени публикации и ее регистрация в Active Directory Cuttomu* ihe Picfiartiu Ы lha РчЫжаЧап Define dale flu? or cuatco* rhe пшагшд pioperliftj. olheiwae. crtalE the Рнс. 15-27. Указание необходимости настройки свойств публикации Реализация репликации Занятие В окне Customize The Properties Of The Publication можно указать, что вам требует ся определить фильтры данных, разрешить анонимную подписку и настроить распи сание работы агента Snapshot (рис. 15-27). По умолчанию агент Snapshot автомати чески запускается сразу после создания публикации, затем Ч каждую неделю.
Если вы решили настроить свойства публикации, откроется окно Filter Data, где можно определить вертикальные и/или горизонтальные фильтры для статей публи кации (рис. 15-28).
Рис. 15-28. Указание направления фильтрации данных Если выбрана фильтрация по вертикали, откроется окно Filter Table Columns, где можно исключать отдельные столбцы из любой публикуемой таблицы (рис, 15-29).
Рис. 15-29. Фильтрация столбцов таблицы По умолчанию публикуются все столбцы. Чтобы исключить отдельный столбец, выберите статью и затем снимите флажок столбца.
Если выбрана фильтрация по горизонтали, откроется окно Filter Table Rows (рис. 15-30), где можно ограничить число реплицируемых записей. Для этого выбе рите нужную статью и щелкните кнопку (...), чтобы открыть окно Specify Filter (рис. 15-31). По умолчанию публикуются все строки.
Глава Репликация баз данных Fill Table Ночи Exdude unwanted ют fro lides in your publication..
CuitomerCuttomei - CujlomeiCntlcmer.
СиАлинОетодга.. CmtomerDemogra.. Х < All r w s published > Cuslomeis 1 Customers "Empkyees Empbj.ee i Х;
AliowipubSshed> EirffcoeeTernlDrie;
Emi^oyeeTeiiitones < Al rows pLiWisreo > iQrdaDeWils Order Deldi : < AJ гаи = pubdsl-ed > < Al rows puowied > Fisqicr.
Рис. 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).
Реализации репликации Занятие Alow Агаповой* Sutucripton Allow anonymous subscriptions to I Рис. 15-32. Разрешение анонимной подписки Sal Snapihol Agcnl Schndute Set the starling screkiie la Hie Sidcelra Aa t.-.!i-.,-pi*iir.(!
Хi i. л1>- -: ' -is.Х Рис. 15-33, Определение расписания работы агента Snapshot Просмотрите выбранные параметры публикации в окне Completing The Create Publication Wizard и щелкните Finish (рис. 15-34).
,г Completing the Create Publication Wizard Го пи* rscbslion activity I Ik i PiMlshn. erparx 4eplicalion Moiitor al he Dislieulor Ряс. 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 Transactional 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 АЛ в этой строке, 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, показывая результат изменений для созданной публикации.
Занятие 3 Реализация репликации 15. Когда появится окно сообщения SQL Server Enterprise Manager, извещающее, что публикация была успешно создана, щелкните Close.
16. Не закрывайте SQL Server Enterprise Manager.
Настройка репликации сведением Если в окне Select Publication Туре мастера Create Publication Wizard выбрана публи кация сведением (рис. 15-19), открывается окно мастера Specify Subscriber Types. В дополнение к типам подписчиков, поддерживаемых другими видами публикаций, публикация сведением также поддерживает подписчиков, использующих устройства с SQL Server СЕ (рис. 15-35).
Speeil Subtciim Тит What types of Subsciibws ml mbicnbe to Wt риМсв Рис. 15-35. Выбор подписчиков, использующих SQL Server CE Примечание Если разрешена поддержка устройств с SQL Server СЕ, автоматически включается поддержка анонимных подписчиков и отключить ее нельзя.
В окне Specify Articles (рис. 15-23) вы можете изменить режим разрешения конф ликтов для публикации сведением. Щелкните Article Defaults, чтобы открыть окно Default Article Туре, и затем Ч 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).
Х,....,-.:. Х- :r. Х. jm Х,' e-Win) CWTET14E |Lar uftnl Ся*с1 PлO(VB ко 5DL Sum ЭмтЬМ 0-ly CWfct HIHIVCI омЛ SQL S=t.л Ммгчи Сале. Re.oK'B Рис. 15-39. Изменение параметров устранения конфликтов для отдельной статьи По умолчанию конфликты разрешаются с использованием системы оценки при оритета. По умолчанию все подписчики имеют одинаковый приоритет (однако раз ным подписчикам можно назначать разные приоритеты), и первое изменение, вы полненное при синхронизации данных, имеет преимущество в случае устранения кон фликта.
Вместо средства устранения конфликтов по умолчанию можно выбрать одно из настраиваемых средств, поставляемых с SQL Server 2000, или создать собственные хранимые процедуры и СОМ-объекты. Настраиваемые средства из состава SQL Server 2000 могут разрешать конфликты различными способами, например сохранять самое первое изменение данных, самое последнее изменение, наибольшее, наименьшее или среднее значение. Подробнее об этом Ч в разделе Microsoft Resolver Descriptions справочной системы SQL Server Books Online.
Кроме того, на вкладке Identity Range для любой статьи со столбцом IDENTITY вы можете указать, что SQL Server должен автоматически присваивать каждому под писчику диапазон значений. Это позволяет подписчикам добавлять новые записи, используя свойство IDENTITY, и гарантирует отсутствие идентичных значений поля IDENTITY (рис. 15-40).
Следующие два окна, Article Issues и Select Publication Name and Description, ана логичны окнам, выводимым при настройке транзакционной публикации и публика ции снимка (рис. 15-25, 15-26).
Если вы решили настроить свойства публикации, откроется окно Filter Data, где можно определить вертикальные и/или горизонтальные фильтры для статей публи кации (рис. 15-41).
Глава 5 "f 4 Репликация баз данных Рис. 15-40. Определение диапазона значений поля IDENTITY для подписчиков Рис. 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), Реализация репликации Занятие ЁпаЫя Dynamic FiKeil Enable fliers thai allow Sleient Siincrbeis lo iELECI,Bublahe(Lcolumnt, FROM [db0][En(ilwS!|wHEHE LaslNw il ' Рис. 15-43. Автоматическая генерация фильтров dbo i м i.,. i '.. i,:, ! AH rows publnhed > Рис. 15-44. Автоматически сгенерированные фильтры 18- Репликаций баз данных Глава В окне Validate Subscriber Information SQL Server по умолчанию проверяет досто верность сведений о подписчике, используемых в динамическом фильтре, это авто матически происходит при каждом подключении агента Merge. Окно Validate Sub scriber Information SQL Server выводится только в том случае, если определены дина мические фильтры (рис. 15-45). VaMa Рис. 15-45. Автоматическая проверка информации динамических фильтров Эта возможность позволяет гарантировать согласованность разбиения информа ции при сведении данных. Если выбраны параметры фильтров, показанные на рис. 15-45, при регистрации под другим именем пользователя подписчик не сможет синх ронизировать данные. Это Ч рекомендованные параметры фильтрации. В окне Optimize Synchronization можно повысить производительность синхрони зации, сохранив дополнительную информацию на сер вере-издателе (рис. 15-46). G (Mini SmchronuariMi You an improve synchroniiatan р*игйгглапс& by storing additional jnlorrialion эГ I Pubtaha. ?№мм Subitfcffi fc, mart*Щ* нУИич1 I. tl th, fvl sit н. *, Рис. 15-46. Оптимизация производительности синхронизации Чтобы оптимизировать процесс синхронизации при репликации сведением, уста новите переключатель в положение Yes, Minimize The Amount Of Data. Это позволяет минимизировать сетевой трафик для выяснения того, относится ли изменение, вне сенное издателем, к набору данных, который требуется свести с данными подписчи ка. Такая возможность очень полезна при использовании сетевых подключений с низкой пропускной способностью, но требует дополнительного пространства для хранения информации на сервере-издателе. Занятие 3 Реализация репликации Следующие два окна, 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, и щелкните ОК. Откроется окно Default Table Article Properties. 9. Перейдите на вкладку Resolver. 10. Пометьте флажок Select the Allow Subscribers To Resolve Conflicts Interactively During On-Demand Synchronization и щелкните ОК. Снова откроется окно Specify Articles. 11. Найдите поле Tables в столбце Object Type и пометьте флажок Publish All в соот ветствующей строке. 12. Щелкните Next. Откроется окно Article Issues. Репликация баз данных g -j g Глава 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 I and 12 и щелкните Next. Откроется окно SQL Server Enterprise Manager, где отображается состояние про цесса генерации фильтров для публикации. После того как фильтры будут созда ны, откроется окно Filter Tabie 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, где отображается состояние про цесса создания публикации. Занятие 3 Реализация репликаций 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). Welcome to the Push Subscription Wizard This rasad Ив^м you pu* a subsection NWind_TreiiOB. pubfatifd bji 'SEIJTACEDCFU1. lo пае se-vcr! or sstvsr groups Рис. 15-47. Начало работы с мастером Push Subscription Wizard Если в этом окне пометить флажок Show Advanced Options In This Wizard, при даль нейшей работе с мастером вы сможете задать параметры обновляемой подписки, а также сконфигурировать соответствующий агент репликации для работы на подпис чике, а не на распространителе. В окне Choose Subscribers выберите подписчиков, которым будет распространять ся публикация (рис. 15-48). Можно выбрать один или несколько серверов-подписчи ков. Подписчик должен быть включен в процесс репликации. Если мастер Push Subscription Wizard запущен членом роли сервера sysadmin, зарегистрированный эк земпляр можно включить в процесс репликации на лету. Если мастер запущен чле ном роли db_owner, дополнительных подписчиков подключить нельзя. В окне Choose Destination Database выберите конечную БД для репликации (рис. 15-49). По умолчанию имя конечной БД (также называемой БД подписки) соответствует имени БД публикаций. Конечная БД должна существовать на подписчике до его ини циализации. Щелкните Browse Or Create, чтобы проверить наличие или создать БД подписок. Далее, в зависимости от типа публикации, в окне Set Distribution Agent Location укажите место выполнения агента Distribution (рис. 15-50) или в окне Set Merge Agent Location (рис. 15-51) Ч место выполнения агента Merge. По умолчанию агент Merge запускается на издателе и использует его ресурсы. Но можно выбрать и другой вари ант, когда агент выполняется на подписчике и использует локальные ресурсы (если Репликация баз данных 520 Глава подписчик Ч компьютер с Windows NT 4.0/2000). Если флажок Show Advanced Options In This Wizard (рис. 15-47) снят, указать место выполнения агента будет невозможно. Chooic Subtcritwi ChooM one a mot Sutocibeie a groups of Su&saiben Рис. 15-48. Выбор серверов-подписчиков Г hoot в Derivation Dat*beлi Specif the subscription det*b.лe Л the SOL Seiver Subtcribwfi Рис. 15-49. Выбор конечной БД Set Dittribuhon Agon) Location You can choose helha [he DKlnbutkm Aoent funt at the Dist*uti г от at the Рис. 15-50. Выбор места выполнения агента Distribution Реализация репликации Занятие Get Merge Agent Location You can choose whelhH the Merge Aaent luns at Ibe Oistrbula 01 at Ihe Subtctiber. Рис. 15-51. Выбор места выполнения агента Merge Затем в окне Set Distribution Agent (рис. 15-52) задайте расписание работы агента Distribution или в окне Set Merge Agent Schedule (рис. 15-53) Ч расписание работы агента Merge. Set Oiitributian Agent Schedule Spedy how frequently the Distributor Agentjsl update? Ihe s Рис. 15-52. Настройка расписания работы агента Distribution Set Merge Agent Schedule SpecJy how lTequenlfc Ibe Me<3eAaent(t| update! the ubsciption()] Рис. 15-53. Настройка расписания работы агента Merge Репликация баз данных Глава Заметьте: по умолчанию агенты Distribution выполняются постоянно, а агенты Merge запускаются каждый час. Затем в окне Initialize Subscription укажите, где и когда инициализировать подпис ку. На рис. 15-54 показано, как инициализировать подписку средствами агента Distribution, а на рис. 15-55 Ч средствами агента Merge. Initialize Suhfcriptian S peaty Ье*ег the subscription^) гваЛ to be iriti<4?ed, end i 10, wlian to slat the ruliabation oroe"! Рис. 15-54. Инициализация подписки средствами агента Distribution аКгя Subtdiptian Spsafy i*elhл (he subta(iti(ir Если вы создаете подписку на транзакционную публикацию или публикацию снимка, поддерживающую обновление данных, задайте в окне Updatable Subscriptions Занятие 3 Реализация репликации тип обновляемой подписки. Доступные в этом окне параметры зависят от типа об новляемых подписок, включенных в публикацию (рис. 15-56). Undatable Suhiciiplipni You can Лги спапдв made ID l л subcrpl on ra be iepkcad to the PiMier. l eftti Ihen to crther Subicnbwt Рис. 15-56. Определение типа обновляемой подписки Если вы создаете подписку на транзакционную публикацию или публикацию снимка, поддерживающую трансформацию данных, в окне Specify DTS Package ука жите используемый данной подпиской пакет DTS. Заметьте: пакет DTS должен раз мещаться либо на распространителе, либо на подписчике (рис. 15-57). Specify DTS Package SpedMhe DTS peclwae *в* delinwlhe Jandormdions IB the n*jsc Рис. 15-57. Указание пакета DTS, используемого подпиской В окне Set Subscription Priority задайте приоритет подписок, если вы создаете под писку на публикацию сведением (рис. 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. Подписка с установленным приоритетом называется елоб-шь ной (global subscription). В данном случае изменения, выполненные подписчиком, объединяются с данными издателя; при этом приоритет каждого подписчика, выпол Репликация баз данных Глава низшего изменения, сохраняется в составе метаданных для этого изменения. Это га рантирует, что на изменение, выполненное подписчиком с более высоким приорите том, не накладывается изменение, внесенное подписчиком с более низким приори тетом. Set Subtcription Piimity Set the рпл>у ol \ba tubtoiplion. whfch fetn decide the whner a* corrtctbo ttotachingd. Рис. 1S-5S. Установка приоритета подписок с целью разрешения конфликтов Далее открывается окно Start Required Services, где агент SQL Server проверяет, что на распространяющем данные сервере запущены все необходимые службы (рис. 15-59). Служба SQL Server Agent требуется во всех случаях. Служба MSDTC требуется для обновляемых подписок (если используется служба Microsoft Message Queuing, служба MSDTC не нужна). Если нужная служба не запущена, SQL Server Agent no умолчанию запустит ее, когда мастер завершит работу. Если вы хотите запускать служ бу вручную, не помечайте соответствующий флажок. Start Required Semcet Seethe stains rt the seivices iKRied fa Ihf sutaarfanisS aid select those lo be Beted after the ьАпгрНоф) а seated Рис. 15-59. Выбор запускаемых служб В окне Completing The Push Subscription Wizard просмотрите заданные параметры подписок и щелкните Finish, чтобы создать принудительную подписку (рис. 15-60). Реализация репликации Занятие Completing the Push subscription Wizard Рис. 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\MyNamedInstance'. 6. Щелкните Create New. Откроется окно Database Properties. 7. В поле Name введите PlibsPush и щелкните ОК. 8. Проверьте, что в диалоговом окне Browse Databases On 'SelfPacedCPU\MyNarned Instance' выбрана БД PubsPush, и щелкните ОК. 9. В окне Choose Destination Database щелкните Next. Откроется окно Set Distribution Agent Location. 10. Проверьте, что переключатель находится в положении Run The Agent Al The Distributor, и щелкните Next. Откроется окно Set Distribution Agent Schedule. И. Проверьте, что переключатель находится в положении Continuously Ч Provides Minimal Latency Between When An Action Occurs At The Publisher And Is Propagated To The Subscriber, и щелкните Next. 12. Откроется окно Initialize Subscription. Глава Репликация баз данных Проверьте, что переключатель находится в положении Yes, Initialize The Schema And Data. 13. Пометьте флажок Start The Snapshot Agent To Begin The Initialization 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 на сервере SelfPacedCPU, а также служба 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. He закрывайте SQL Server Enterprise Manager. Конфигурирование подписок по запросу Чтобы создать подписку по запросу (pull subscription), следует запустить на подписчике мастер Pull Subscription Wizard. Подписка по запросу инициируются сервером-под писчиком в соответствии с заданным расписанием. Подписчик копирует реплициру емые данные с сервера-издателя. В этом процессе репликации используются ресурсы сервера-подписчика. При подписке по запросу на публикацию сведением данные передаются обратно издателю. Чтобы запустить мастер Pull Subscription Wizard, в меню Tools выберите Wizards, раскройте Replication в диалоговом окне Select Wizard и дважды щелкните Create Pull Subscription Wizard. Можно также щелкнуть Subscrip tions правой кнопкой и выбрать New Pull Subscription. На рис. 15-61 показано первое окно мастера Welcome To The Pull Subscription Wizard. Welcome to the Pull Subscription Wizard This maid helps,лxi crtate a риЛ tubsaiption i\ Subscpiber SELFPArtDCPUVMYNAMEDINSTANCE'. Рис. 15-61. Запуск мастера Pull Subscription Wizard Занятие 3 Реализация репликации Заметьте: пометив флажок Show Advanced Options In This Wizard, вы сможете на строить параметры обновляемых подписок. Далее в окне Look For Publications вы можете выполнить поиск публикаций на серверах, зарегистрированных в SQL Server Enterprise Manager. Вы также можете ис кать публикации в каталоге Active Directory, где публикуют свои БД серверы SQL Server 2000, зарегистрированные в Active Directory (рис. 15-62). Х-'ХХХ-> -Х' Х*' ' Х ХХ-:.. I Рис. 15-62. Выбор места поиска публикации Если вы выбрали поиск публикаций в БД Active Directory, вы можете ввести ин формацию о публикации в окне Specify Publication без регистрации сервера в SQL Server Enterprise Manager. Это полезно, если вы не имеете достаточных прав для реги страции сервера, публикующего данные, но при этом имеете необходимую информа цию о публикации и необходимые права для подписки на эту публикацию (рис. 15 63). Если вы не располагаете необходимой информацией о публикации, которую хо тите найти, щелкните Browse. В диалоговом окне Find SQL Server Publications можно искать публикации SQL Server по именам или другим критериям (рис. 15-64). Specify Publication You can choose a pifcaltn horn ttf Active Directory и type in pitfcalon Рис. 15-63. Использование Active Directory для подписки на публикацию Если вы выбрали поиск публикации, зарегистрированной в SQL Server Enterprise Manager, то в окне Choose Publication выберите публикацию, на которую хотите под Релликамия бзз данных Глава писаться (рис. 15-65). Используй PAL публикаций, мастер выведет список публика ций, доступных пользователю, учетная запись которого использовалась при подклю чении к экземпляру SQL Server, а также список публикаций, доступных анонимным подписчикам. Рис. 15-64. Размещение публикации в БД Active Directory Chooie Publication Овом Ми BLt*cion to wtich you art to sjbictibe Рис. 15-65. Поиск зарегистрированных серверов для данной публикации Выбрав публикацию в окне Choose Destination Database, выберите БД, в которой вы собираетесь создать подписку. Эта БД должна быть размещена на сервере, где на ходятся реплицируемые данные. Выберите уже существующую БД из списка или со здайте новую, щелкнув кнопку New (рис. 15-66). Далее, если нужно разрешить анонимную подписку, пометьте соответствующий флажок в окне Allow Anonymous Subscription. Если подписка анонимна, издатель не сохраняет какую-либо информацию о подписчиках (рис. 15-67). Если вы выбрали публикацию, для которой разрешены обновляемые подписки, укажите тип таких подписок в окне Updatable Subscriptions (рис. 15-68). Если вы выб рали один из типов 2РС, в окне Specify Updating Subscription Login укажите учетную запись, которая будет использоваться подписчиком для подключения к издателю. Выбранные вами типы подписок используют учетную запись определенного связан ного сервера (или удаленного сервера) или учетную запись SQL Server (рис. 15-69). Занятие 3 Реализация репликации Chooie Destination Database CVnose ihe database m which the subscripfor nil be cieetec Рис. 15-66. Выбор конечной БД Allow Anonjmoui Subiciiplion Specif whetfiw Ifa aibtaiplioti is anoryiaous. UntrMivDus sibscnptiDm are not rendered el the Put4ishei and en, be used foi liiemai appicatH i' t.L !lt Рис. 15-67. Создание анонимной подписки Up datable Subicritttioni You can e>Dvi chengei made to Ihu subjctip^nn to be reckgled to the Fubluhei, and Ihen lo ов Subiaberj. Рис. 15-68. Выбор типа обновляемой подписки Глава Репликация баз данных Specify Updating bubteiiptiun Login Specif the login used lo сопка to th Pitteto when Ilie lepkc aled diM в changed. Рис. 15-69. Определение учетной записи для обновляемой подписки Далее в окне Initialize Subscription вы можете выбрать немедленную инициализа цию подписки или указать, что у подписчика уже имеются файлы моментальных снимков. Это делается так же, как и в случае принудительной подписки (рис. 15-54 и 15-55). В окне Snapshot Delivery укажите, где находятся файлы моментальных сним ков (рис. 15-70). Вы можете использовать для публикации папку моментальных снимков, выбран ную по умолчанию, или другую (например компакт-диск или FTP-адрес). Агент реп ликации, созданный для подписки (это либо агент Distribution, либо агент, выполня ющий слияние данных) должен иметь разрешения на чтение файлов моментальных снимков. Snapshot Deiveiy Scecily bow lo access the jnapshol fhs at the lime Ihe aibscriptio' is imliafeed Рис. 15-70. Выбор размещения файлов моментальных снимков Затем в окне Set Merge Agent Schedule (рис. 15-71) задайте расписание работы аген та Merge или в окне Set Distribution Agent Schedule Ч расписание работы агента Distribution. Вы можете выбрать непрерывную работу агента или же запускать его только по требованию- Запуск по требованию позволяет подписчику использовать SQL Server Enterprise Manager или Windows Synchronization Manager для синхрониза ции подписки. Реализация репликации Занятие Set Meige Agenl Schedule 5[KCJ|y how frequently the MetaeAgenlbl updates the iibscnpIionM Рис. 15-71. Настройка расписания работы агента Примечание Для создания подписки по требованию у доменной учетной записи служ бы SQL Server Agent должен быть полный доступ к разделу HKLM\Software\Micros(ift\ Microsoft SQL Server\80\Replication\Subscriptions реестра. Если подписка на публикацию сведением уже существует, откроется окно Set Subscription Priority Page. Все элементы этого окна аналогичны окну, открывающему ся при создании принудительной подписки (рис. 15-58). В окне Start Required Services отображаются службы, которые необходимо запус тить для этой подписки. Если в окне Set Merge Agent Schedule переключатель нахо дится в положении On Demand Only, окно Start Required Services не отображается. Служба SQL Server Agent всегда будет одной из выбранных служб. Если тип обновля емой подписки Ч 2РС, также будет выбрана служба MS DTC (рис. 15-72). В окне Completing The Pull Subscription Wizard просмотрите выбранные парамет ры подписки и щелкните Finish, чтобы создать подписку по запросу. Stall Requied Service See the status d the services isquied fffl this i*jcrption(i] and setecl tho hs tfailed Вм the subsctptioris] is aeated Рис. 15-72. Выбор запускаемых служб Репликация баз данных Глава Упражнение 5. Создание подписки по запросу В этом упражнении вы создадите подписку на реплицируемые данные, в ко торой процесс репликации инициируется сервером, принимающим данные, с помощью мастера Create Pull Subscription Wizard в SQL Server Enterprise Manager. > Чтобы создать подписку по запросу 1. В меню Start выберите Run. 2. В поле Open введите Regedt32 и щелкните ОК. Откроется Registry Editor. 3. Раскройте HKEY_LOCAL_MACHINE, затем Ч каталоги Software, Microsoft, Mic rosoft SQL Server, 80, Replication и Subscriptions. 4. В меню Security выберите Permissions. Откроется окно Permissions For Subscriptions. 5. Щелкните Add. Откроется окно Select Users, Computers Or Groups. 6. Дважды щелкните SQLService, затем Ч ОК. Учетная запись пользователя домена SQLService добавлена в список Name. 7. В списке Name выберите SQLService, затем пометьте флажок Full Control в группе элементов управления Permissions. 8. Щелкните ОК, чтобы закрыть окно Permissions for Subscriptions. 9. Закройте Registry Editor. 10. В дереве консоли SQL Server Enterprise Manager раскройте SelfPacedCPU\MyNa medlnstance, затем Ч контейнер Replication для экземпляра сервера MyNamed Instance. 11. Правой кнопкой щелкните Subscriptions и выберите New Pull Subscription. Откроется окно 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 введите NWindPult и щелкните ОК. БД NWindPull создана с использованием параметров по умолчанию. 17. Убедитесь, что в окне Choose Destination Database выбрана база NwindPull, и щел кните Next. Откроется окно Initialize Subscription. 18. Убедитесь, что переключатель находится в положении Yes, Initialize The Schema And Data. 19. Пометьте флажок Start The Merge Agent To Initialize The Subscription Immediately и шелкните Next. Занятие 3 Реализация репликации Откроется окно Snapshot Delivery. 20. Убедитесь, что переключатель находится в положении Use Snapshot 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 Synchroniza 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. Когда подписка будет успешно создана, щелкните ОК. 25. Не закрывайте SQL Server Enterprise Manager. Резюме При выполнении вашей задачи репликации сначала нужно выбрать распространи тель и подключенные серверы, публикующие данные, а также БД подписки и серве ры-подписчики. Вы можете использовать мастер Configure Publishing And Distribution Wizard для настройки параметров задач репликации. Чтобы создавать публикации мо ментальных снимков, публикации транзакций и публикации, использующие слия ние данных, используйте мастер Create Publication Wizard. Конфигурируйте серверы подписчики, используя мастер Push Subscription Wizard или Pull Subscription Wizard. 534 Репликация баз данных Глава Ззнятие 4, Мониторинг и администрирование репликации Внедрив решение: репликации, следует администрировать и вести его мониторинг. Здесь рассказывается о просмотре состояния агентов репликации и их задач сред ствами Replication Monitor. Вы также научитесь просматривать и изменять свойства распространителя, публикаций, подписок и агентов репликации. Изучив материал этого занятия, вы сможете: S вести мониторинг задач репликации с помощью 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 Monitor. При первом раскрытии этого контейнера по явится сообщение SQL Server Enterprise Manager о том, что в целях экономии ресур сов распространителя автоматическое обновление информации Replication Monitor по умолчанию отключено (рис. 15-73). ''I:... r.< |. -.-У:,...,.' Х Х-. \Щ, ' -,,, ХХ...Л.' *.,<.: ' Х В,-',..-! |j. ! к -. МШ Ё |,,,.,, :',Х. .\ У.и; .! >ХХ,-!' 1,i г Х ifiHjnJ -i i(! Hm-.-.,,. :i,i...t : ; ,-!:.'.; .!'..Х (. Рис. 15-73, Конфигурирование параметров обновления информации Replication Monitor Занятие 4 Мониторинг и администрирование репликации На этапе тестирования можно установить переключатель в положение 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). ^ console RM Хг; 4JMKrOSoft5Ql Servers еф)1. Server Эй Н Щ) !Н=Р*СШСРи WidowsNT) - f, Ql Databases 'Х; '[^ Data Traftsforrnetm Servic 1^3 Management. S3Bл*>ten 7т. li Rmkcatiori Monitor Рис. 15-74. Использование Replication Monitor Агенты Сведения о репликации можно также просматривать, основываясь на нужном типе агента. Последовательно раскройте контейнеры Replication Monitor и Agents и выбе рите нужный тип агента репликации. Например, чтобы просмотреть состояние всех агентов Snapshot, шелкните контейнер Snapshot Agents (рис. 15-76). Заметьте: на рис. 15-76 все агенты Snapshot успешно создали моментальные сним ки. В случае проблем с репликацией публикации проверьте состояние агента Snashot и убедитесь, что он создал начальный моментальный снимок. Репликация бзз данных Глава Q Snapshot _j Log RMttor Queue Reader Х Jj DtsWlNon Jlgmt Хi Merge Aflerts il Рис. 15-75. Просмотр журнала агента репликации, используемого публикацией Рис. 15-76. Просмотр состояния всех агентов, создающих моментальный снимок Оповещения В контейнере Replication Alerts можно настраивать оповещения о событиях реплика ции (рис. 15-77). В SQL Server 2000 имеется восемь стандартных оповещений репликации. Чтобы воспользоваться один из них, оповещение следует активировать и определить опера торов, уведомляемых о срабатывании оповещения. Для этого щелкните в правой па нели контейнера Replication Alerts значок нужного оповещения правой кнопкой, вы берите Properties и открывшемся окне активируйте предупреждение и определите операторов. Занятие 4 Мониторинг и администрирование репликации Настройка предупреждений о событиях репликации Рис. 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 и щелкните ОК. 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 щелкните ОК. 12. В дереве консоли последовательно раскройте контейнеры Replication Monitor, Publishers, SelfPacedCPU и PubSales:pubs. Репликация баз данных 538 Глава В правой панели отображается состояние всех агентов репликации. Заметьте: за пущен только агент 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 и Distribution (под на званием SelfPacedCPU\MyNamf; dInstance:PubsPush). Приблизительно через 10 се кунд оба агента запустятся и обновят БД PubsPush на сервере SelfPacedCPU\My Namedlnstance. Каждый агент покажет, что передана одна транзакция, состоящая из двух команд. Примерно еще через 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). Чтобы изменять их, сле дует удалить все подписки на публикацию. Щелкните ОК, чтобы закрыть окно сооб щения SQL Server Enterprise Manager. Рис. 15-80. Сообщение о наличии подписок на редактируемую публикацию Репликаций баз данных 540 Гяава Откроется окно Publication Properties с выбранной вкладкой General. У каждой пуб ликации есть множество свойств, которые можно просматривать и изменять (рис. 15-81). Млде гЫеЛюг ol NWnd_Me Рис. 15-81. Просмотр и изменение свойств публикации Заметьте: по умолчанию срок истечения подписки на публикацию сведением Ч дней. В некоторых средах вам потребуется сконфигурировать подписки с неограни ченным сроком действия, Просмотр и изменение профилей агентов репликации У каждого агента репликации есть профиль, определяющий параметры выполнения задач, включая время ожидания и размер пакета Ьср. При настройке сервера-распро странителя создается набор профилей по умолчанию для всех типов агентов реплика ции; в дальнейшем этот набор можно изменять как одно из свойств распространите ля. Чтобы изменить профиль существующего агента репликации, в контейнере Agents щелкните нужный значок правой кнопкой и выберите Agent Profiles. Откроется окно Distribution Agent Profiles (рис. 15-82). Рис. 15-82. Просмотр и изменение профиля агента репликации Занятие 4 Мониторинг и администрирование репликации На рис. 15-82 приведен профиль агента Distribution. Заметьте: используется про филь по умолчанию, и доступно три дополнительных профиля агента. При испол ьзо вании одного из них агент будет продолжать работу, несмотря на ошибки из-за не согласованности данных. По умолчанию при возникновении таких ошибок агент пре рывает синхронизацию данных. В некоторых средах такую модель поведения по умол чанию потребуется переопределить. В профиле агента можно указать, что необходи мо вести краткий журнал событий в целях выявления и устранения ошибок. Можно также настроить профиль для работы с Windows Synchronization Manager и испол ьзо вания пакетов меньшего размера. Чтобы просмотреть параметры профиля, щелкните View Details. Откроется окно Replication Agent Profile Details (рис. 15-83). Рис. 15-83. Просмотр и изменение параметров профиля агента Обратите внимание на изменяемые параметры. У каждого агента репликации име ется ряд настроек по умолчанию и набор дополнительных профилей. Можно также создать собственный профиль агента. i Просмотр и изменение свойств подписок Чтобы просмотреть и изменить свойства подписки на публикацию, щелкните в кон тейнере Publications публикацию правой кнопкой, выберите Properties и в диалого вом окне Publication Properties перейдите на вкладку Subscriptions. Здесь отобража ются все текущие подписки на публикацию (рис. 15-84). Чтобы просмотреть свойства подписки, щелкните ее значок в контейнере Sub scription правой кнопкой и выберите Properties. Откроется окно Subscription Proper ties (рис. 15-85). Перейдите на вкладку Synchronization, чтобы просмотреть или изменить сервер, на котором будет выполняться агент. Если на публикацию подписаны компьютеры с Windows NT 4.0/2000, в целях уменьшения нагрузки на распространитель агент мож но запускать на подписчиках (рис. 15-86). Репликация баз данных 542 Глава.' =-:!..-. Рис. 15-84. Просмотр подписок Рис. 15-85. Просмотр основных свойств подписки Рис. 15-86. Выбор сервера для агента репликации *'i Занятие 4 Мониторинг и администрирование репликации Чтобы просмотреть состояние подписки на сервере-подписчике, раскройте в де реве консоли 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). Для устранения конфликта можно оставить победителя, предложенного SQL Server, выбрать проигравшего или отредактировать конфликтующие сведения. Кро ме того, можно отложить разрешение конфликта или зарегистрировать подробности устранения в журнале для последующего просмотра. Глава 544 Репликация баз данных тм in ниш уйти ШУИ итмишшш |. |- :i- fl'ifcr. Sates Representative Рис. 15-89. Окно Microsoft Replication Conflict Viewer Использование Windows Synchronization Manager Чтобы запустить Windows Synchronization Manager на подписчике, раскройте меню Start\Programs\Accessories и выберите Synchronize. Откроется окно Items To Synchro nize (рис, 15-90). Заметьте: Windows Synchronization Manager позволяет синхронизировать разные объекты. Выберите подписку на публикацию и щелкните Synchronize, чтобы немед ленно синхронизовать все помеченные флажками объекты. Если для публикации раз решено интерактивное разрешение конфликтов, вам будет предложено устранить все конфликты, которые могут возникнуть в процессе синхронизации. Щелкните Setup, чтобы открыть окно Synchronization Settings и настроить параметры синхронизации каж дого объекта. Синхронизация может выполняться при входе в систему, завершении се анса работы с ней, в периоды простоя процессора, а также по расписанию (рис. 15-91). Рис. 15-90. Окно Windows Synchronization Manager Мониторинг и администрирование репликации Занятие Го nwte a lubtartiart tetect &м. then die MweeD8:NWind_4egeDB|SELFPftCEDCP Ш CfflneWeb Pages nl Home Page Рис. 15-91. Настройка параметров синхронизации Выберите подписку на публикацию и щелкните Properties, чтобы сконфигуриро вать свойства подписки. Откроется окно SQL Server Subscription Properties с выбран ной вкладкой General (рис. 15-92). Подписку можно синхронизировать с текущим издателем по умолчанию или выбрать для синхронизации другого издателя. Это по лезно, когда текущий издатель по умолчанию временно работает в автономном режи ме, а также в случае проблем с сетевым соединением. Чтобы сделать издателем по умолчанию другой сервер, пометьте флажок Make This Publisher The Default Synchro nization Partner. Кнопки Reinitialize Subscription и Remove Subscription позволяют по вторно инициализировать или удалить подписку соответственно. nd(SELFPACEDCPUWYNAMEDINSTANCEJ В Р Х.: ; . i,(-,(,'Х.be' Рис. 15-92. Выбор издателя по умолчанию На вкладке Subscriber можно изменить учетную запись, используемую принуди тельной подпиской для подключения к подписчику (рис. 15-93). На вкладке Publisher Ч учетную запись, используемую подпиской по запросу для подключения к издателю (рис. 15-94). На вкладке Distributor Ч учетную запись, используемую подпиской по Глава Репликация баз данных запросу для подключения к распространителю (рис. 15-95). Можно выбрать текущую учетную запись пользователя, запускающего Synchronization Manager, или указать регистрационную запись SQL Server (рис. 15-95). На вкладке Other можно включить автоматическое или интерактивное устранение конфликтов. Здесь же можно задать время ожидания входа в систему и время ожида ния запроса (по умолчанию Ч 15 и 30 сек соответственно). Это будет полезно при использовании медленных сетевых подключений (рис. 15-96). Рис. 15-93. Свойства учетной записи подписчика Рис. 15-94. Свойства учетной записи издателя Занятие 4 Мониторинг и администрирование репликации* Рис. 15-95. Свойства учетной записи распространителя Рис. 15-96. Настройка режима устранения конфликтов Упражнение 7. Интерактивное разрешение конфликтов средствами Windows Synchronization Manager В этом упражнении вы с помощью Windows Synchronization Manager устрани те конфликты в интерактивном режиме. > Чтобы устранить конфликты в интерактивном режиме средствами Windows Synchronization Manager 1. Разверните окно SQL Query Analyzer. 2. В панели инструментов щелкните Load SQL Script. Откроется окно Open Query File. 19- 548 Репликация баз данных Глава 3. Откройте файл NorthwindUpdate.sql из папки C:\SelfPacedSQL\ СН_15. Этот сценарий обновляет запись о сотруднике с идентификатором 1, изменяя его имя и должность. 4. В панели инструментов щелкните Execute Query. 5. В меню File выберите Connect. Откроется окно Connect To SQL Server. 6. Щелкните кнопку SQL Server (...), чтобы выбрать экземпляр SQL Server. Откроется окно Select Server. 7. Выберите SelfPacedCPU\MyNarnedlnstance и щелкните ОК. 8. Убедитесь, что переключатель находится в положении Use Windows Authentication, и щелкните ОК. 9. В панели инструментов щелкните Load SQL Script. Откроется окно Open Query File. 10. Откройте файл NwindPullUpdate.sql из папки C:\SelfPacedSQL\ CH_15. Этот сценарий обновляет запись о сотруднике с идентификатором 1, изменяя его имя и должность. Обратите внимание, что имя и должность отличаются от значе ний из предыдущего сценария (см. пункт 3). Н. В панели инструментов щелкните Execute Query. 12. Для синхронизации с использованием Windows Synchronization Manager раскрой те меню Start\Programs\Accessories и выберите Synchronize. 13. Щелкните NwindPulliNorthwindSales и выберите Properties. Откроется окно SQL Server Subscription Properties. 14. Перейдите на вкладку Other. 15. Установите переключатель в положение Resolve Conflicts Interactively (Only Applies To Articles That Support Interactive Resolution) и щелкните ОК. Откроется окно Microsoft SQL Server 2000 с предложением подтвердить смену ре жима разрешения конфликтов. 16. Щелкните Yes. 17. Снимите флажок Clear the My Current Home Page, убедитесь, что помечен только флажок NwindPulliNorthwindSales, и щелкните Synchronize. Откроется окно Synchronizing. Через некоторое время откроется окно Microsoft Replication Conflict Viewer for 'Northwind' -- '[dbo].[Employees]'.Заметьте: раскры вающиеся меню позволяют просматривать данные на издателе и на подписчике. 18. Установите переключатель Resolve With This Data. Процесс синхронизации завершается. 19. В SQL Query Analyzer выберите подключение к MyNamedlnstance и щелкните Clear Window в панели инструментов. 20. В области запросов введите SELECT * FROM Employees WHERE EmployeelD = 1 и в панели инструментов щелкните Execute Query. Заметьте: данные успешно реплицированы на сервер MyNamedlnstance. 21. Закройте SQL Server Enterprise Manager и SQL Query Analyzer. Занятие 4 Мониторинг и администрирование репликации Резюме Контейнер Replication Monitor позволяет наблюдать за всеми аспектами репликации. Наблюдение можно вести по публикациям или по типам агентов. Кроме того, в кон тейнере Replication Monitor можно просматривать состояние всех публикаций и аген тов, запускать, останавливать агент, а также просматривать его журнал и параметры публикации. Если на публикацию имеются подписки, можно изменять лишь ограни ченный набор ее свойств. Для редактирования всех свойств публикации имеющиеся подписки необходимо удалить. Microsoft Replication Conflict Viewer позволяет про сматривать и устранять конфликты репликации сведением. Если разрешена синхро низация публикации, с помощью Windows Synchronization Manager можно интерак тивно управлять синхронизацией на стороне подписчика. 550 Репликация баз данных Глава Закрепление материала _7] Приведенные ниже вопросы помогут вам лучше усвоить основные темы дан ной главы. Если вы не сумеете ответить на вопрос, повторите материал соот ветствующего занятия. Правильные ответы приведены в приложении Воп росы и ответы в конце книги. 1. Сотрудникам из бразильского офиса вашей компании требуется доступ к данным центральной БД в Нью-Йорке для анализа продаж. Бразильские сотрудники об ращаются к нью-йоркской БД по выделенному каналу на 56 Кбит/сек, который параллельно используется и для других целей. Вы хотите организовать реплика цию данных между нью-йоркским и бразильским офисами. Какой тип следует выбрать и какая дополнительная информация вам потребуется? 2. Вы развернули репликацию сведением. Все подписчики под управлением Windows NT 4.0/2000 могут инициализировать подписку и успешно обмениваться данными с издателем. Однако подписчики под управлением Windows 98/Ме, обмениваться данными с издателем не могут. В чем здесь проблема и как ее устранить? 3. Вы планируете организовать репликацию сведением. Каковы преимущества ис пользования выделенного распространителя? 4. Вы развернули репликацию транзакций, и при мониторинге БД распространения обнаружилось, что размер последней больше ожидавшегося. Что это может быть вызвано? Какие парметры настройки распространителя нужно изменить, чтобы уменьшить размер БД? ГЛАВА Обеспечение повышенной доступности Занятие 1. Резервные серверы Занятие 2. Отказоустойчивые кластеры В этой главе В предыдущих главах обсуждалось обеспечение доступности БД SQL Server посред ством хранения файлов данных и журналов транзакций в RAID-массивах, осуществ ления полного и дифференциального резервного копирования, архивации файла жур нала, а также развертывания репликации. Для сред, требующих гарантированной по вышенной доступности, например для Web-решений и систем, работающих кругло суточно семь дней в неделю, зачастую реализуют дополнительные методы безопасно сти. Здесь рассказывается о назначении резервных серверов и автоматизации их под держки посредством распространения журнала. Вы также научитесь использовать от казоустойчивые кластеры SQL Server. Прежде всего Для изучения материалов этой главы вам потребуются: