Книги, научные публикации Pages:     | 1 |   ...   | 6 | 7 | 8 | 9 |

Kit Exam 70-228 SQL Server 2000 System Administration курс Сертификационный экзамен 70-228 Администрирование Microsoft SQL Server 2000 Официальное пособие Microsoft для самостоятельной подготовки ...

-- [ Страница 8 ] --

Табл. 14-2. Наборы событий, доступные для мониторинга при SQL Profiler Набор Классы событий Cursors Создание, Мониторинг типов реально используемых и удаление курсоров курсоров Ч они не обязательно соответствуют типам, которые указало вызывающее приложение Database Автоматическое увеличе- Мониторинг автоматического увеличения ние и уменьшение раз- размера файлов данных и журнала мера файлов данных транзакций, позволяющий определить их и журнала транзакций подходящий размер и достичь максимальной производительности Errors and Ошибки и предупрежде- Мониторинг очередей ожидания доступа Warnings ния, например ошибки к ресурсу. Длинные очереди указывать компиляции хранимых на конфликтные ситуации. Кроме того, процедур и предупрежде- данный класс событий позволяет оценить ния об эффективность планов выполнения, статистике поля сгенерированных оптимизатором запросов Locks Наложение, отмена, Мониторинг конфликтов на основании типов повышение уровня и длительности блокировок. Класс также и снятие блокировки применяется для мониторинга взаимобло кировок и событий, связанных с истечением срока удержания блокировки. При трасси ровке событий могут генерироваться большие файлы Objects Создание, открытие, Мониторинг произвольного создания закрытие и удаление объектов пользователями и приложениями.

объектов При трассировке событий могут генериро ваться очень большие файлы Занятие Средства Табл. 14-2. (окончание) Набор Классы событий Назначение Performance Сведения графического Мониторинг эффективности выполнения плана выполнения, запросов и работы оптимизатора запросов рируемого Query Optimi- на основе перехвата дерева запросов, zer, а также выполнение определение цены плана выполнения операторов SQL-DML запроса, сбор статистики о выполнении (Data Manipulation Lan- запроса, мониторинг дерева плана запросов guage, язык управления данными) Scans Сканирование Мониторинг типов операций сканирования и индексов конкретного объекта Security Audit Аудит Мониторинг событий входа и выхода из системы, изменения параметров, разрешений безопасности и а также событий резервного копирования и восстановления Server Изменение объема Мониторинг изменений объема используемой используемой памяти SQL Server памяти на 1 Мб или на 5% от максимального объема памяти сервера, в зависимости от того, какое из этих значений больше Sessions Длительность каждого Мониторинг подключенных пользователей, пользовательского под- активности БД и затраченного времени ключения и нагрузка на процессора процессор, генерируемая передаваемыми по под ключению запросами Stored Выполнение хранимых Мониторинг памяти, позволяющий procedures процедур, включая число определить, достаточен ли ее объем.

промахов и попаданий Класс также используется для наблюдения в кэш, порядок выполне- за случаями хранимых процедур приложениями ния, время удаления из кэша и время повторной компиляции Transactions Выполнение транзакций Мониторинг типов заносимых в журналы приложениями. Класс также используется для наблюдения за подтверж дениями, откатами и распределенными транзакциями Сравнение точности результатов, полученных TSQL Выполнение операторов и пакетов в ходе обычной работы и при тестировании приложения. Класс также применяется для мониторинга длительно событий, включая сведения о передавших соответствующие запросы Мониторинг пользовательских событий, Custom defined Нестандартные события например отчетов о ходе работы приложения в определенные моменты его тестирования и активности Server SQL Profiler позволяет использовать стандартные определения трассировок (шаб лоны) как есть или в качестве основы для создания собственных шаблонов. Шаб лон определяет, какую информацию о событии станет наблюдать и записывать SQL Profiler. В табл. 14-3 перечислены стандартные шаблоны трассировок, поставляемые с SQL Server 2000.

Табл. 14-3. шаблоны трассировки из состава SQL Profiler Шаблон трассировка собирает Сведения о числе выполненных хранимых процедур.

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

Результаты группируются по длительности (в Сведения о сгенерированных операторах Transact-SQL.

Результаты группируются по пользователям, выполнявшим эти операторы Подробные сведения о сгенерированных операторах Transact SQL, которые затем можно воспроизвести в SQL Query Analyzer. Используйте этот шаблон, чтобы собрать данные для последующего воспроизведения Подробную информацию о всех выполняемых хранимых в порядке их выполнения, включая команды Transact-SQL каждой процедуры Сведения о всех выполненных хранимых процедурах и SQL пакетах, включая длительность выполнения и двоичные данные. Двоичные данные включают параметры уровня сеанса, тип используемого курсора и тип блокировки Примечание Для систем, прошедших сертификацию С2, утилита SQL Profiler поддер живает аудит безопасности на уровне С2 (уровне безопасности, определенном прави тельством США). Включить режим аудита С2 (С2 Audit Mode) можно с си стемной хранимой процедуры Подробнее Ч в разделе Audit Mode Option справочной системы SQL Server Books Online.

Утилита SQL Query Analyzer SQL Query Analyzer позволяет просматривать и анализировать план выполнения зап роса, на основе которого можно определить, эффективно ли обрабатывается запрос и эффективно ли используются индексы. Чтобы просмотреть план выполнения, введи те запрос в панели и в меню Query выберите Show Execution Plan. В Занятие 2 Средства мониторинга панели отобразится предполагаемый план выполнения запроса. Подроб нее об интерпретации выводимых результатов Ч в разделе Graphically Displaying the Execution Plan Using SQL Query Analyzer* справочной системы SQL Server Books Online. Детальное изучение планов выполнения запросов выходит за рамки этой книги.

Окно Current Activity консоли SQL Server Enterprise Manager В окне Current Activity отражается текущая о процессах, активности пользователей, удерживаемых процессами блокировках и блокировках, наложенных на объекты. Окно Current Activity позволяет вести произвольный мониторинг и вы являть заблокированные и блокирующие Администратор может завер шить выбранный процесс или отправить пользователю, который выполняет вызыва ющую блокировку или взаимоблокировку сообщение. Можно также просмотреть список подключенных в данный момент пользователей и последние выполненные ими операторы. Кроме можно просмотреть все блокировки, на ложенные в данный момент на отдельные объекты БД.

* Использование Transact-SQL Мониторинг производительности и активности SQL Server 2000 можно также вести с помощью ряда операторов Transact-SQL. Эти операторы могут выводить сведения о ресурса как в реальном времени, так и за опре деленный временной интервал.

Системные хранимые процедуры В табл. 14-4 перечислены системные хранимые процедуры для мониторинга водительности и активности SQL Server 2000.

Табл. 14-4. Системные хранимые процедуры для мониторинга Системная Наблюдаемый объект/операция sp_who Список текущих пользователей и процессов, Активные пользователи включая выполняемую в данный момент и запущенные ими команду Список текущих пользователей и процессов Активные пользователи и с дополнительными столбцами (более запущенные ими процессы удобочитаемый) Список текущих блокировок блокировки и взаимоблокировки, а также наложившие их процессы Текущий объем дискового пространства, Использование дискового зарезервированный и используемый пространства БД и ее таблицей или всей БД объектами Данные статистики, включая загруженность Объем работы, процессора, подсистемы ввода Ч вывода, системой за определенный а также время простоя с момента последнего период времени выполнения процедуры производительности и активности SQL Server Глава Стоит также отметить, что функции утилиты SQL Profiler можно осуществлять средствами системных хранимых включая teevent, и Команды DBCC В языке имеется ряд консольных команд БД (Database Console Commands, позволяющих проверять физическую и логическую согласованность БД, а также вести мониторинг SQL Server 2000. Практически все выявленные несогласо ванности можно указав параметр REPAIR. В табл. 14-5 перечислены ко манды DBCC, наиболее часто используемые для проверки согласованности БД и мо ниторинга статистики производительности.

Табл. 14-5. DBCC для мониторинга SQL Команда Назначение DBCC Проверяет, что каждому типу данных в таблице соответствует запись в и что каждой таблице и представлению из соответствует по крайней мене одно поле в таблице syscolumns DBCC CHECKDB Проверяет размещение и структурную целостность всех объектов указанной БД. Чтобы устранить незначительную несогласованность, укажите параметр REPAIR. Команда DBCC CHECKDB объединяет в себе функциональность команд DBCC и DBCC DBCC Проверяет внешний ключ и определенные для таблицы ограничения DBCC Функционирует аналогично DBCC однако область действия этой команды ограничена отдельной указанной группой файлов и необходимыми таблицами DBCC В SQL Server 2000 Personal Edition и SQL Server 2000 Desktop Engine проверяет, сколько раз одновременно обрабатывалось более 5 пакетов. В этих редакциях SQL Server производительность ядра БД сильно ограничивается, когда пользователи одновременно запускают более 5 пакетов DBCC Удаляет пустые буферы из пула буферов. Данная команда позволяет тестировать запросы при пустом кэша без завершения работы и перезагрузки сервера DBCC OPENTRAN Выводит для указанной БД сведения о старейшей активной транзакции, а также информацию о распределенной и нераспределенной реплицированных DBCC Выводит информацию о содержимом кэша процедур, включая число хранимых процедур в кэше, число выполняющихся в текущий момент процедур, а также размер кэша процедур Замятие мониторинга Табл. 14-5.

SHOWCONTIG Выводит о фрагментации данных и индексов таблицы DBCC Выводит статистику для определенного объекта в указанной таблице DBCC SQLPERF (LOGSPACE) Выводит информацию об использовании памяти журналом транзакций во всех БД экземпляра SQL Server DBCC UPDATEUSAGE Исправляет ошибочные сведения о занимаемом дисковом пространстве в таблице с хранимой процедуры sp_spaceused Встроенные функции Transact-SQL включает встроенных функций (также называемых глобаль ными функциями которые позволяют отслеживать специфические сведения об активности SQL Server, например статистику производительности о работе SQL Server с момента последнего запуска. Для просмотра этой информации используются предопределенные счетчики SQL Server, доступ к которым осуществляется с помо оператора SELECT. В табл. 14-6 перечислены наиболее часто используемые гло бальные счетчики T-SQL.

Табл. 14-6. Часто используемые глобальные счетчики T-SQL Счетчик С момента запуска SQL Server показывает Число подключений (включая попытки подключения) Время работы процессора в миллисекундах @@CPU_BUSY @@IDLE Время простоя SQL Server в миллисекундах @@IO_BUSY Время в миллисекундах, затраченное SQL Server на выполнение операций ввода Ч вывода Число пакетов ввода, считанных из сети Число пакетов вывода, переданных в сеть @@PACKET_ERRORS Число ошибок обработки сетевых пакетов для всех подключений Число ошибок при выполнении операций чтения Ч записи на диск Число операций чтения с диска (исключая операции чтения @@TOTAL_READ из кэша) WRITE Число операций записи на диск Флаги трассировки Флаги трассировки в SQL Server 2000 отключены, и, по-видимому, в будущих верси ях этой СУБД поддерживаться не будут. Они позволяют временно чить определенные функции сервера. При использовании любого флага Мониторинг и SQL Server Глава в журнал ошибок SQL Server заносится соответствующая запись, т. е. флаги полезны для отладки. Они применяются преимущественно разработчиками. О флагах упоми нают в статьях Microsoft Knowledge Base, и включить нужный флаг можно с помощью команды DBCC включив флаг 3205, вы запретите аппаратное сжатие данных на ленточных накопителях. Подробнее о флагах Ч в книге Кэлин Дэлани Delaney) Microsoft SQL Server 2000 (Microsoft Press, 2000 г.).

Использование Протокол упрощенного управления сетью (Simple Network Management Protocol, SNMP) позволяет передавать управляющие сведения, включая статистику производительно сти и информацию, платформами под управлением раз личных ОС. Средствами SNMP можно вести мониторинг только экземпляра SQL Server по умолчанию. На компьютерах Windows NT 4.0/2000, поддерживающих SNMP, SQL Server 2000 будет автоматически поддерживать данный протокол.

Резюме Утилита System Monitor позволяет наблюдать за ресурсами локального и удаленных компьютеров, используемых различными процессами сервера. Утилита Task Manager создает моментальный снимок использования ресурсов отдельными или всеми про цессами. С помощью утилиты SQL Profiler можно вести мониторинг специфичных для SQL Server событий и Утилита SQL Query Analyzer выводит предпола гаемый план выполнения, позволяющий проанализировать эффективность запросов.

В окне Current Activity консоли SQL Server Enterprise Manager отображается список текущих пользователей и и в нем можно завершить выбранные процес сы. Системные хранимые процедуры Transact-SQL и встроенные функции позволя ют создавать снимки текущей а также собирать статистику об использо вании ресурсов за определенный период времени. С помощью операторов DBCC можно проверять согласованность БД и вести мониторинг SQL Server. Протокол SNMP позволяет централизовать создание отчетов в средах с компьютерами под уп равлением разных ОС.

' 3 Выполнение мониторинга Занятие 3. Выполнение задач мониторинга Мониторинг SQL Server 2000 включает выполнение различных задач по за использованием ресурсов и специфическими событиями SQL Server. Здесь расска зывается о мониторинге использования памяти, подсистемы ввода Ч вывода и про цессора при помощи Windows 2000 System Monitor и Task Manager. Вы научитесь на блюдать за выполнением хранимых и пакетов SQL с помощью утилиты SQL Profiler, а также вести мониторинг блокировок с использованием окна Current Activity консоли SQL Server Enterprise Manager и системных хранимых процедур.

Изучив материал этого занятия, вы сможете:

вести мониторинг использования ресурсов с помощью System Monitor и Task Manager;

наблюдать за хранимыми процедурами, пакетами и активностью пользователей при помощи SQL Profiler;

просматривать блокировки и взаимоблокировки с использованием окна Current Activity и системных хранимых процедур.

Продолжительность занятия Ч около Мониторинг использования ресурсов Наблюдение за использованием ресурсов подсистемы ввода Ч вывода и про цессора) позволяет определить, достаточно ли их для удовлетворения потребностей пользователей, а также оценить использование ресурсов различными процессами сер вера. Прежде чем начать эксплуатацию системы, рекомендуется провести мониторинг использования ресурсов на компьютере с минимальной нагрузкой и установить базо вый уровень производительности.

Утилита Task Manager Для мониторинга использования ресурсов с помощью Task Manager щелкните панель задач Windows правой кнопкой и выберите Task Manager. Можно также нажать ком бинацию клавиш и затем в окне Windows Security щелкнуть кнопку Task Manager. Чтобы просмотреть сведения об использовании ресурсов отдельными про цессами, перейдите на вкладку Processes (рис. 14-1).

По умолчанию на вкладке Processes отображается пять столбцов с информацией.

Чтобы упорядочить информацию по какому-нибудь столбцу, щелкните его заголо вок. Заметьте: на рис. 14-1 информация упорядочена по объему памяти, используе мому процессами. Чтобы добавить дополнительные выберите в меню команду Select Columns (рис. 14-2).

Чтобы изменить частоту обновления или приостановить вывод информации, в меню View утилиты Task Manager выберите Update Speed. В меню Options можно ука зать, должно ли окно Task Manager отображаться на рабочем столе поверх других окон (задано по умолчанию) и должна ли утилита Task Manager при свертывании отобра жаться в панели задач Windows (задано по умолчанию).

Чтобы просмотреть сведения об использовании ресурсов компьютера всеми про цессами, перейдите на вкладку (рис. 14-3).

Глава и активности Server Process fl>e 14-1. Вкладка окна Task Manager Рис. 14-2. Добавление столбцов В группе отображаются сведения об использовании процессора: обшее чис ло дескрипторов, потоков и процессов. Информация об использовании памяти ото бражается в трех группах: Commit Charge (К) Ч объем выделенной памяти, включая виртуальную, Physical Memory (К) Ч объем физической памяти, Kernel Memory (К) Ч объем памяти ядра. Заметьте: на рис. максимальный объем выделенной памяти превышает объем физической памяти компьютера. Это означает, при установке до полнительных модулей ОЗУ производительность системы может возрасти.

Примечание В процессе работы Task Manager значок этой утилиты в панели задач всегда отображает общую загруженность процессора.

Выполнение мониторинга Рис. 14-3. Вкладка Performance окна Task Manager System Monitor Для мониторинга использования ресурсов с помощью System Monitor раскройте Tools и выберите пункт Performance. System Monitor Ч это оснастка консоли Performance (рис. 14-4).

Logs and rtte-ts logs Я Trace Log!

Рис. 14-4. Консоль Performance с оснасткой System Monitor System Monitor отображает значения счетчиков выбранных объектов производи тельности, а также значения счетчиков и экземпляров. Это могут быть те кущие значения, снимок значений на конкретный момент времени или значения сохраненного журнала счетчиков (Counter Log). Чтобы добавить в System новые счетчики, в панели инструментов щелкните кнопку Add. Откроется диалого вое окно Add Counters (рис. 14-5). Заметьте: можно использовать счетчики локально го компьютера.

Значения счетчиков можно просматривать в виде диаграммы, гистограммы отчета, щелкая соответствующие кнопки панели инструментов (рис. 14-7, 14-Я).

и SQL Рис. 14-5. Добавление счетчиков в System Monitor 1,000 met!

1. 1. Рис. 14-6. Просмотр диаграмм в System Monitor 1.000 tending Kadi 1. Рис. 14-7. Просмотр гистограмм в System Monitor задач мониторинга Рис. 14-8. Просмотр отчета в System Monitor Чтобы выделить на диаграмме или гистограмме значения счетчика белым цветом, выберите нужный счетчик и в панели инструментов щелкните кнопку или нажмите комбинацию клавиш значения двух и более счетчиков одновременно нельзя. Чтобы зафиксировать значения счетчика на конкретный мо мент времени для анализа, в панели инструментов щелкните кнопку Freeze Display. Для настройки параметров System Monitor кнопку в панели инструментов System Monitor (не в панели инструментов консоли Perfor mance). В открывшемся окне можно изменить частоту обновления (по умолчанию она составляет 1 сек) и параметры отображения значений счетчика.

Чтобы создать журнал значений счетчика для последующего анализа, раскройте узел Performance Logs And Alerts, щелкните узел Counter Logs правой кнопкой и вы берите New Log Settings. В окне New Log Settings введите имя нового файла журнала.

Затем откроется окно NewLogFile (рис.

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

и активности SQL Server Рис. 14-9. Создание журнала счетчика памяти Объекты и памяти Периодически проверяйте, достаточен ли объем ОЗУ компьютера для выполняющих ся на нем процессов. Признаки недостаточного объема ОЗУ Ч нехватка свободной памяти и запись страниц памяти на диск. Следует одновременно оценивать значения нескольких счетчиков. Возможно, вам также потребуется определить процессы, за нимающие память, и изолировать память, используемую непосредственно SQL Server.

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

В табл. 14-7 перечислены наиболее важные счетчики объектов она помо жет вам интерпретировать полученные значения.

Табл. Счетчики объектов Отображает Интерпретация значений Memory \ Available Текущий доступный Маленькое значение, как правило, свиде объем памяти в тельствует о нехватке памяти или о том, мегабайтах что приложения не освобождают память Memory \ Pages/sec Число счи- Большое значение (выше 20), как правило, танных с диска, или свидетельствует об избыточной подкачке записанных на диск страниц из-за нехватки памяти из-за неустранимых ошибок страниц PhysicalDisk \ Avg. Средний размер Если рост очереди диска не сопровождается Disk Queue Length очереди диска уменьшением числа операций чтения Ч записи страниц памяти, это указывает на нехватку ОЗУ Занятие 3 Выполнение мониторинга Табл, 14-7. (окончание) Отображает Интерпретация значений Memory \ Page скорость обра- Если высокому значению данного счетчика Faults/sec ботки процессором сопутствует низкое значение ошибок ющего счетчика для SQL Server, это указывает, что SQL Server не является причиной нехватки памяти Process \ Page Частота генерации Если низкому значению данного счетчика Faults/sec for the ошибок страниц, сопутствует высокое значение счетчика SQL Server вызванных процессом Memory \ Page Faults/sec, это указывает, instance SQL Server конкрет- что SQL Server не является причиной ного нехватки памяти SQL Server SQL Server: Me- Общий Если значение этого счетчика практически mory Manager \ объем динамической всегда близко к общему объему ОЗУ Total Server памяти, используемой компьютера (или заданному для SQL Server Memory (KB) SQL Server для буфера максимальному объему памяти), необхо памяти дима дополнительная память Process \ Working Общее текущее число Значение данного счетчика позволяет Set for the SQL байт в рабочем наборе определить максимальный объем памяти, Server instance экземпляра SQL Server необходимый SQL Server при текущей нагрузке SQL Server: Buffer Процент страниц, най- Стандартное значение этого счетчика Manager \ Buffer денных в буфере кэша должно превышать 90%. В противном Cache Hit Ratio чтения с диска) случае необходимо увеличить объем памяти SQL Server: Общее число страниц Низкое значение может указывать на Manager \ Total в буферном пуле нехватку памяти под буферный пул Pages (включая страницы данных, свободные и удаленные из буфера страницы) Примечание Если жесткий диск разбит на несколько разделов, вместо счетчиков объ екта PhysicalDisk используйте счетчики объекта LogicalDisk. Счетчики физического диска включены по умолчанию. Счетчики логических дисков можно включить с помо щью команды затем следует перегрузить компьютер.

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

Табл. 14-8. Счетчики объектов подсистемы ввода Ч вывода Отображает Интерпретация значений PhysicalDisk \ % Период, в течение ко- Если обмену страницами памяти Disk Time торого процессор был с диском сопутствуют интенсивное использо занят операциями вание и большая очередь диска, это указы чтения Ч записи вает, что диск является лузким местом производительности. При использовании или программируемого контроллера дисков значение данного счетчика может превышать 100% PhysicalDisk \ Avg. Число запросов чте- Если вялому обмену страницами памяти Disk Queue Length ния Ч с диском сопутствуют интенсивное исполь в очереди на зование и большая очередь диска, это доступ к диску указывает, что диск является местом производительности. Очередь диска, превы шающая число шпинделей в раза, также свидетельствует, что диск является местом производительности \ Текущий размер Значение этого счетчика в сочетании со Current Disk очереди диска значением счетчика PhysicalDisk \ Avg.

Queue Length Disk Queue Length позволяет определить, является ли диск местом производительности PhysicalDisk \ Avg Среднее время на Задержка диска, превышающая мсек, Disk/sec Write запись данных на диск указывает, что диск является лузким местом (задержка производительности PhysicalDisk \ Avg Среднее время на чте- Задержка диска, превышающая мсек, Disk/sec Read ние данных с диска указывает, что диск является местом производительности PhysicalDisk \ Disk Число операций запи- Если сумма операций чтения и записи на Writes/sec си на диск в секунду диск далека от пропускной способности жесткого диска и задержка диска высока, диск, скорее всего, поврежден. Если же эта сумма слишком близка к пропускной способ ности диска, он, по-видимому, является местом производительности PhysicalDisk \ Disk Число операций чте- Если сумма операций чтения и записи на Reads/sec ния с диска в секунду диск далека от пропускной способности жесткого диска и задержка диска высока, он, скорее всего, поврежден. Если же эта сумма слишком близка к пропускной способности диска, он, по-видимому, является местом производительности 3 Выполнение задач мониторинга Объекты и счетчики процессора Недостаточно также является распространенной проблемой изводительности. ее можно, установив дополнительные процессоры или за менив старые на более мощные. Однако лузким местом производительности могут быть и нехватка ОЗУ (приводящая к интенсивной записи страниц памяти на диск и создающая повышенную нагрузку на или неэффективные операторы загружающие процессор). Табл. 14-9 содержит перечень наиболее важ ных счетчиков объектов и поможет вам интерпретировать полученные значения.

Табл. 14-9. Счетчики объектов Отображает Интерпретация значений Processor \ % Время, расходуемое Значение счетчика, превышающее 75%, Processor Time на вы обычно указывает, что процессор является полнение активных местом производительности.

потоков значение превышает 60%, стоит задуматься об установке более процессоров System \ Processor Число потоков в Значение счетчика, постоянно Length очереди процессора шее 2, обычно указывает, что процессор является местом производительности Упражнение Мониторинг системы с помощью утилит System Monitor и Task Manager В этом упражнении вы с помощью утилит System Monitor и Task Manager бу дете наблюдать за использованием ресурсов системы, Чтобы вести мониторинг использования ресурсов системы при System Monitor и Task Manager Убедитесь, что вы зарегистрировались на контроллере домена под учетной записью Administrator.

2. Сверните все запущенные приложения.

3. Щелкните панель задач Windows правой кнопкой и выберите Task Manager.

Откроется окно Windows Task Manager.

4. Перейдите на вкладку Performance.

Обратите внимание на данные о числе процессов и использовании памяти, в час тности, на разницу между значением Total Physical Memory и значениями Total Commit Charge и Peak Commit Charge. Она указывает, достаточен ли объем памяти компьютера.

5. В меню Options выберите Hide When и затем сверните окно Windows Task Manager.

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

7. В поле Open введите и щелкните ОК.

Откроется сконфигурированная консоль Performance;

значения счетчиков объектов производительности будут представлены в виде отчета.

мательно просмотрите значения счетчиков.

Глава Мониторинг производительности и активности SQL 8. В панели инструментов консоли Performance щелкните Freeze Display.

Вы будете использовать этот экран с зафиксированными значениями для сравне ния значений счетчиков при нагрузке SQL Server и при ее отсутствии.

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

10. В поле Open введите и ОК.

Появится вторая консоль Performance в той же Щелкните панель задач Windows правой кнопкой и выберите Tile Windows Vertically.

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

В поле Open введите и ОК.

Утилита OSQL запустит в окне MS-DOS сценарий 14. Сверните окно MS-DOS.

Заметьте, как влияет нагрузка на счетчики объектов производительности. Срав ните значения счетчиков в левой и правой консолях System Monitor. Обратите внимание на загруженность диска. достаточен ли объем ОЗУ вашего компьютера и требуется ли модернизировать процессор.

15. Дважды щелкните значок Task Manager в панели задач Windows, Откроется окно Windows Task Manager.

Обратите внимание на данные о числе процессов и использовании памяти, в час тности, на разницу между значением Total Physical Memory и значениями Total Commit Charge и Peak Commit Charge. Достаточен ли объем памяти вашего компь ютера?

16. Когда утилита OSQL завершит работу, посмотрите, как снизится загруженность системы.

Закройте окно Windows Task а также окна обеих консолей Performance.

Мониторинг хранимых процедур, пакетов Transact-SQL и пользователей Для наблюдения за хранимыми процедурами и пакетами Transact-SQL раскройте меню SQL Server и выберите SQL Profiler (рис. 14-10).

Рис. 14-10. Утилита SQL Profiler Можно создать новую трассировку, новый шаблон или открыть имеющийся файл трассировки для воспроизведения и анализа. Чтобы создать кнопку New Trace в панели инструментов (или в меню File выберите За Занятие задач мониторинга тем в окне Connect To Server имя экземпляра SQL на котором требуется вести трассировку событий SQL Server. окно Trace Properties (рис. 14-11).

' Г Рис. 14-11. Вкладка General диалогового окна Trace Properties На вкладке General можно создать новое определение трассировки или восполь зоваться одним из стандартных шаблонов. В поле Trace Name введите описательное имя нового определения трассировки. Укажите, куда следует записывать регистриру емые данные Ч в файл или в и задайте максимальный объем собираемой информации. Если данные трассировки сохраняются в файл, по умолчанию шено создание нового файла после переполнения старого. Можно также задать мя трассировки.

На вкладке Events можно выбрать нужные события (классы событий) SQL Server из разных наборов. В зависимости от шаблона, некоторые классы событий могут быть уже выбраны (рис. 14-12).

На вкладке Data Columns можно добавить или удалить столбцы данных для нужной информации Ч в разных ситуациях необходимы разные сведения. Поместив один или несколько столбцов данных в набор можно сгруппировать вывод по нужному столбцу или комбинации столбцов. Переместить столбец вверх по спис ку можно с помощью кнопки Up. Чтобы задать порядок столбцов в выводе, восполь зуйтесь кнопками Up и Down (рис. 14-13).

На вкладке Filters можно выбрать события для трассировки. Заметьте: по умолча нию события SQL Profiler не регистрируются (рис. 14-14). Можно также исключить все события, связанные с доменной учетной записью службы SQL Server.

Чтобы исключить события SQL Server, связанные с системными объектами, по метьте флажок Exclude System IDs. В результате вы получите ту информацию, кото рую собирались анализировать. Кроме того, значительно уменьшится размер файла трассировки, поскольку события доступа к системным объектам составляют от 50% до 75% событий трассировки. Для начала трассировки щелкните кнопку Run.

и активности SQL Server Рис. 14-12. Вкладка Events диалогового окна Trace Properties Рис. 14-13. Вкладка Data Columns диалогового окна Trace Properties В собранных данных можно искать интересующие вас строки и сти. Для этого в панели инструментов щелкните кнопку Find String. Можно также сохранить шаблон трассировки для дальнейшего использования или сохранить полу ченные данные для анализа и сравнения, выбрав в меню File команду Save As.

Для разных типов трассировок нужно создавать отдельные шаблоны.

Х Длительные запросы Ч пометьте все столбцы данных из наборов и Stored Procedure. Сгруппируйте их по столбцу Duration и отфильтруйте по столбцу Length of time.

Занятие Выполнение задач -' ] Рис. 14-14. Вкладка окна Trace Properties Х Производительность хранимых Ч пометьте все столбцы данных из на бора Stored Procedure. Регистрация может осуществляться как для отдельной дует указать критерий ObjectID), так и для всех хранимых процедур. Сгруппируй те столбцы по ClientProcessID.

Х Источник взаимоблокировки Ч пометьте все столбцы данных из наборов и Stored Procedure. Сгруппируйте их по столбцу EventClass. Чтобы ограничить об ласть поиска конкретной БД, воспользуйтесь критерием Database Х События входа и выхода из системы Ч пометьте столбцы данных EventClass, LoginSID и Login из класса событий Security Audit\Audit Login.

Х Активность отдельного пользователя Ч пометьте все столбцы данных из Sessions\ExistingConnection и набора TSQL. Сгруппируйте их по параметру DB UserName.

Упражнение 2. Мониторинг пакетов SQL и хранимых процедур В этом упражнении вы с SQL Profiler будете наблюдать за Transact-SQL и хранимыми процедурами.

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

2. Раскройте меню SQL Server и выберите SQL Profiler.

Запустится утилита SQL Profiler.

3. В панели инструментов New Trace.

Откроется окно Connect To SQL Server.

4. Убедитесь, что установлен переключатель Windows Authentication. Затем щелкни те чтобы подключиться к экземпляру SQL Server по умолчанию на компьюте ре 472 Мониторинг и SQL Глава Откроется окно Trace 5. В поле Trace Name введите 6. В списке Template Name выберите и затем перейдите на вкладку Events.

регистрируются только классы событий и SQL:Batch Completed.

7. Перейдите на вкладку Data Columns.

Заметьте: выбранные столбцы данных сгруппированы сначала по столбцу Event>

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

события, генерируемые SQL Profiler, 9. Раскройте узел DatabaseName, затем Ч Like.

10. В поле Like введите Раскройте узел Duration, затем Ч Greater Than Or Equal.

12. В поле Great Than Equal введите 100.

13. Щелкните Run.

Трассировка Duration начнет выполняться.

14. Щелкните кнопку SQL Query Analyzer в панели инструментов.

Откроется окно Connect To SQL Server.

Убедитесь, что установлен переключатель Windows Authentication. Затем щелкни те ОК, чтобы подключиться к SQL Server по умолчанию на компьюте ре Откроется окно SQL Query Analyzer.

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

17. Откройте файл из папки Откроется сценарий Transact-SQL, который выполняет множество операторов SELECT, различного количества времени на завершение.

Щелкните кнопку Execute в панели инструментов.

Переключитесь в SQL Profiler.

Обратите внимание на отображаемые в трассировке операторы SELECT.

20. Щелкните оператор SELECT, для выполнения которого требуется больше всего времени.

Заметьте: выполняемый оператор Transact-SQL отображается в нижней панели.

Щелкните кнопку Properties в панели инструментов.

Откроется окно свойств трассировки Duration.

22. Перейдите на вкладку Filters.

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

23. Щелкните Cancel.

24. Щелкните кнопку Stop Selected Trace в панели инструментов.

25. Закройте SQL He закрывайте утилиту SQL Query Analyzer.

Занятие Выполнение мониторинга Мониторинг текущих блокировок и активности пользователей Чтобы просмотреть сведения о блокировках и активности пользователей, в девере консоли SQL Server Enterprise Manager раскройте контейнер Management нуж ного экземпляра SQL затем Ч контейнер Current Activity (рис. 14.15).

Locks t t rtCEDCPu NT) т Data 3 Management 56 53) Object master Customer Рис. 14-15. Контейнер Current Activity Контейнер Current Activity содержит три контейнера Ч Process Info, Locks/Process ID и Locks/Object. Первый из них, Process Info, позволяет просмотреть информацию обо всех активных подключениях и процессах (рис. 14-16, 14-17).

Рис. 14-16. Левая половина окна Process Info Примечание Чтобы обновить отображаемую информацию, щелкните контейнер Cur rent Activity правой кнопкой и выберите команду Refresh.

и Server Рис. Правая половина Process Info В табл. 14-10 описаны сведения, отображаемые в контейнере Process Info.

Табл. 14-10. Сведения контейнера Process Info Столбец Process ID Идентификатор, назначаемый SQL Server Context ID Идентификатор контекста выполнения дочернего потока, работающего от имени процесса Идентификатор пользователя, который выполнил команду, запустившую процесс Database Текущий контекст БД процесса (у некоторых системных процессов нет контекста Status Состояние процесса Ч running, sleeping, или background Open Transactions Число открытых процессом транзакций Command Команда SQL Server, выполняемая в данный момент для процесса Application Имя приложения, используемого процессом Wait Time Время ожидания процесса, если таковое имеется (в миллисекундах) Wait Type Строка, указывающая тип текущего или ожидания процесса Wait Resource Текстовое описание заблокированного ресурса, например используемый процессом идентификатор записи (RID) CPU Общее время процессора на обслуживание процесса Physical IO Общее число дисковых операций чтения Ч записи, выполненных для процесса Memory Usage Число страниц в кэше процедур, выделенных процессу в данный момент. Если значение страницы освобождаются для другого процесса Login Time Время регистрации клиентского процесса на сервере. Для серверных процессов Ч время начала работы сервера Занятие Выполнение мониторинга Табл. 14-10. (окончание) Столбец Last Batch Время последнего выполнения клиентским процессом оператора EXECUTE или удаленного вызова хранимой процедуры. Для серверных процессов Ч время начала работы сервера Host Имя компьютера, запустившего процесс Library Сетевая библиотека, использованная клиентом для запуска процесса Network Address Сетевой, или (Message Authentication Code, код проверки подлинности сообщения), сетевой платы клиентского компьютера, запустившего процесс Blocked By SPID данный процесс Blocking SPID процесса, заблокированного данным процессом Контейнер Locks/Process ID отображает информацию об активных процессах. Что бы просмотреть список удерживаемых процессом блокировок, раскройте контейнер Locks/Process ID и в дереве консоли нужный процесс (рис. 14-18 и 3 SQL Sess В Server Data В Рис. 14-18. Информация контейнера ID для блокирующего процесса Заметьте: процесс с идентификатором SPID 56 заблокирует процесс с идентифи катором 53. SPID 53 удерживает монопольную блокировку уровня ряда на не котором ресурсе и SPID 56 хочет наложить блокировку на этот же ресурс. Подробнее о типах и режимах блокировок Ч в разделе with SQL Server Enterprise справочной системы 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. Последняя Root t SQL 1 SQL I I | :.

.

Рис. 14-21. контейнера о заблокированном объекте Занятие 3 задач мониторинга Примечание В приложение, ожидающее должно налагать разделяемые, а не монопольные блокировки.

Контейнер Locks/Object отображает информацию о заблокированных объектах БД, начиная с уровня рядов и таблиц и заканчивая уровнем БД (рис. 14-21).

Заметьте: три процесса налагают блокировки в таблице Customer БД Процесс с идентификатором 53 удерживает монопольную блокировку уровня ряда, а процессы с идентификаторами 55 и 56 ожидают, когда они смогут наложить такую же блокировку на этот же ряд.

Упражнение 3. Устранение проблем, связанных с блокировками, при помощи окна Current Activity и системных хранимых процедур В этом упражнении вы с SQL Server Enterprise Manager и хранимых процедур будете вести мониторинг проблем с блокировками.

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

2. Раскройте меню SQL Server и выберите Enterprise Manager.

3. В дереве консоли последовательно раскройте контейнеры Microsoft SQL Servers, SQL Server Group, Management, Current Activity и затем Process Info.

В правой панели отобразится информация о процессах. Если подробные сведения не отображаются, щелкните значок Process Info правой кнопкой и выберите View\Detail.

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

Обратите внимание на два запущенные пользователем ministrator: один Ч это подключение консоли SQL Server Enterprise Manager к БД master, а второй Ч подключение SQL Query Analyzer к БД Запомните идентификатор второго процесса.

5. Переключитесь в SQL Query Analyzer.

6. Щелкните кнопку Load SQL Script в панели инструментов.

Откроется окно Open Query File.

7. Откройте файл из папки Запустится сценарий который начнет транзакцию, обновляющую значение поля ContactName записи с заданным значением поля Он также выполняет системную хранимую процедуру 8. Щелкните кнопку Execute Query в панели инструментов.

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

В меню File выберите Connect.

Откроется окно Connect To SQL Server.

478 и активности SQL Глава 10. Убедитесь, что установлен переключатель Windows Authentication. Затем те ОК, чтобы подключиться к экземпляру SQL Server по умолчанию на компьюте ре Щелкните кнопку Load SQL Script в панели инструментов.

Откроется окно Open Query File.

12. Откройте файл BlockLock2.sql из папки 13. Откроется запрос который обновляет ту же запись таблицы, что и первый сценарий, но при этом транзакцию.

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. Перейдите к первому подключению.

В области запросов выделите и в панели инструментов щелк ните кнопку 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 Приведенные ниже вопросы помогут вам лучше усвоить основные темы дан ной главы. Если вы не сумеете ответить на вопрос, повторите материал соот ветствующего занятия. Правильные ответы приведены в приложении Воп росы и ответы в конце книги.

Вы стали БД среднего размера, и вам поставили задачу повысить ее производительность. Однако явных проблем нет. С чего следует на чать оптимизацию?

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

3. Вы просматриваете текущую активность сервера с помощью SQL Server Enterprise Manager и обнаружили мешающих блокировок. Как определить, явля ются ли они серьезной проблемой?

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

Наконец, вы сможете вести мониторинг репликации, а также конфигурировать свой ства распространителей и агентов репликации.

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

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

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

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

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

Изучив материал этого вы сможете:

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

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

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

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

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

Х Отделение от функций средств поддержки принятия решений.

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

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

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

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

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

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

Терминология репликации Средства репликации SQL Server используют терминологию издательской деятельно сти для названий процессов и компонентов репликации. Сервер, сохраненную информацию на другие называется издателем (publisher). Реп лицируемая информация состоит из одной или нескольких публикаций (publications).

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

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

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

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

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

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

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

Роль распространителя зависит от типа репликации. При этом распространитель мо жет быть локальным (тот же экземпляр SQL Server) или удаленным (отдельный эк земпляр SQL Server).

17- баз данных Глава Серверы, получающие реплицируемую информацию, называются подписчиками Они получают избранные публикации Ч подписки (subscriptions) Ч от одного или нескольких издателей. В зависимости от типа репликации, подписчикам может быть разрешено изменять реплицируемую информацию, а также реплициро вать измененную информацию обратно издателю. Подписчики могут быть авторизо ваны, или могут быть анонимными (анонимная подписка используется при публика ции данных в Интернете). Для больших публикаций использование анонимных сер веров может повысить производительность системы.

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

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

Вы можете иметь один такой агент на каждую публикацию.

Х Агент Distribution передает снимок данных и последующие изме нения от распространителя подписчикам. Этот агент используется при реплика ции моментальных снимков и репликации транзакций. По умолчанию для всех подписок на отдельную публикацию используется один агент Distribution. Такой агент называется разделяемым Однако вы можете настроить систему так, чтобы у каждого подписчика был личный, независимый (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 выявляет и удаляет подписки с истекшим сро ком хранения. Все типы репликации используют этот агент. По умолчанию он запускается один раз в день.

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

По умолчанию этот агент запускается вручную.

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

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

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

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

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

При репликации моментальных снимков подписчикам можно разрешить обнов лять реплицированную информацию немедленно (Immediate Updating) и/или в по рядке очереди (Queued Updating). Возможность обновления подписки Subscription) полезна, когда подписчикам требуется изредка изменять последнюю.

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

Глава 486 данных Агент Snapshot Агент А Данные или транзакции Распро Записи журналов событий и ошибок Рис. 15-1. Процесс репликации моментальных снимков Если используется немедленное обновление подписки, при любой попытке под писчика обновить реплицированные данные он сам или издатель инициируют тран с подтверждением (two-phase commit, 2PC).

включает этап подготовки и этап и выполняется под управлением службы MS DTC, запущенной на подписчике и выступающей в качестве диспетчера транзакций. На подготовительном этапе MS DTC координирует действия служб SQL Server, запущенных на издателе и подписчике и играющих роль диспетчеров ресур сов, чтобы гарантировать успешное выполнение транзакции в обеих БД. На этапе подтверждения MS DTC получает от диспетчеров ресурсов уведомления об успеш ной подготовке, затем диспетчерам передается команда подтверждения и транзакция подтверждается на и сервере-подписчике. Если на издателе имеется конфликт (конфликтующее обновление еще не было тиражировано на сервер-под писчик), транзакция, подписчиком, завершается неудачно. 2РС транзакция гарантирует конфликтов, поскольку издатель выявляет все конфликты до подтверждения транзакции.

Если очередь обновлений (Queued Updating), сделанные подписчи ком изменения помещаются в очередь и периодически передаются издателю. Изме нения могут быть выполнены при отсутствии соединения с издателем. Изменения, которые находятся в очереди, пересылаются на данный сервер, когда устанавливает ся соединение. Очередь может храниться либо в БД SQL Server, либо вы можете выб рать использование Microsoft Message Queuing, если работаете в среде Windows 2000.

Подробнее об использовании Microsoft Message Queuing Ч в разделе Queued Updating справочной системы SQL Server Books Online. Так как обновления про исходят не в реальном времени, то конфликты могут происходить, если другой под писчик или издатель изменили одни и те же данные. Конфликты разрешаются с Обзор пользованием стратегии разрешения конфликтов, в момент создания публикации.

Если используются оба варианта обновления подписок, очередь обновлений выс тупает в качестве страховки на случай отказа немедленного обновления (например, из-за сбоев в работе сети). Это полезно, когда между издателем и подписчиком суще ствует постоянное соединение, но при этом вы хотите убедиться, что могут совершать обновления в случае, если соединение разорвано.

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

три этих агента репликации заносят информацию о событиях и ошибках в БД рас пространения. На рис. 15-2 показан процесс репликации транзакций.

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

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

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

Пользовательское Пользовательское приложение приложение Папка моментальных I - Merge БД распространения / Начальные данные и схема.странитель / Новые Записи журналов событий и ошибок 15-3. Процесс репликации сведением Чтобы различать записи реплицируемой таблицы и выявлять конфликты между записями, агент Merge использует специальный уникальный стол 1 Обзор репликации бец реплицируемых таблиц. Если такого столбца нет, агент Snapshot добавляет его при создании публикации. Кроме при создании публикации агент Snapshot со здает на издателе триггеры. Они ведут мониторинг реплицированных записей и зано сят информацию об изменениях в системные таблицы сведения. Агент Merge также создает идентичные триггеры на каждом сервере-подписчике, когда передает ему на чальный моментальный снимок.

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

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

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

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

Кроме того, вы можете организовывать, вести мониторинг и администрировать процесс репликации, используя некоторые другие методы.

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

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

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

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

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

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

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

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

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

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

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

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

Если используется удаленный можно организовать ное соединение между ним и издателем. При соединении используется учетная за пись SQL Server (следует использовать смешанный режим проверки подлинности). На удаленном распространителе издателя можно сконфигурировать в качестве доверенного (пароль для доступа не нужен) или ненадежного (для доступа требуется пароль). Рекомендуется использовать второй вариант.

Примечание Пароль учетной записи следует изменять только на вкладке Distributor диалогового окна Publisher And Distributor Properties, доступного в Enterprise Manager, или с помощью системной хранимой процедуры На компьютерах с Windows NT 4.0/2000 расположение по умолчанию папки мо ментальных снимков, используемой для репликации, Ч Files\Microsoft SQL на система также делает эту папку скры тым административным ресурсом, например Files\Mic SQL В средах Windows 98/Me папка располагается там же, однако общий ресурс не создается. У всех агентов Snapshot должен быть полный доступ к папке моментальных снимков, а у агентов Distribution и Merge Ч доступ для чтения. По умолчанию в средах Windows NT 4.0/2000 эти агенты выполняются в кон тексте защиты доменной учетной записи службы SQL Server Agent. Агенты реплика ции могут обращаться к скрытому административному ресурсу, только если домен ная учетная запись состоит в локальной группе Administrators сервера-распространи теля. Если это не так, или в репликации участвуют компьютеры с Windows 98/Me, вам следует создать для папки снимков общий ресурс и назначить до 492 баз Глава учетным записям, в контексте которых будут выполняться необхо димые права доступа к этому ресурсу.

Каждая публикация содержит список учетных обладающих доступом к ней, называемый также списком доступа к публикации access list, PAL). По умолчанию в PAL новых добавляются члены роли сервера (включая доменную учетную запись службы SQL Server Agent) и учетная запись пользователя, создавшего публикацию (например учетная запись члена роли В сложных средах репликации вам, возможно, потребуется добавить в PAL до полнительных пользователей.

Чтобы репликация выполнялась без ошибок, необходимо назначить следующие разрешения:

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

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

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

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

Фильтрация публикуемых данных Фильтрация публикуемых данных используется в целях защиты информации и повы шения производительности системы. Фильтровать данные можно по горизонтали (выбирая определенные записи) или по вертикали (выбирая определенные столбцы).

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

Статические фильтры вводят ограничения на публикацию определенных строк или столбцов, и все подписчики получают одинаковые данные (за исключением транс формируемой подписки). Все типы репликации могут использовать статические фильтры. Чтобы опубликовать отдельные наборы данных для разных подписчиков при помощи статических следует либо создать отдельные публикации, либо использовать трансформируемую подписку (transformable subscription). Горизонтальный фильтр может значительно снизить производительность репликации транзакций, по скольку просматриваются все записи журнала транзакций БД публикаций.

С помощью динамических фильтров можно предоставлять разным подписчикам разные наборы данных, основываясь на функциях SQL Server (имя пользователя, имя узла и т. д.). Фильтры соединения (join filters) используются для поддержания ссылоч ной целостности между двумя таблицами, участвующими в репликации (например для первичный ключ/внешний Динамические фильтры и филь тры соединения используются только для репликации сведением. Когда вы исполь зуете динамические фильтры, динамические моментальные снимки позволяют гене рировать отдельные снимки данных для подписчиков разных типов. Это может зна чительно повысить производительность при внесении начальной копии в БД, однако 2 Планирование при этом требуется дополнительное пространство для папки моментальных и дополнительное время для создание начального моментального снимка.

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

Параметры создания начальных моментальных снимков По умолчанию файлы начальных моментальных снимков копируются в папку распространителя. Однако вы можете хранить оригиналы или копии файлов мгновенных копий в другом месте, например на сетевом диске или на компакт-дис ке. Файлы моментальных снимков, сохраненные в резервном каталоге, могут быть сжаты (для сжатия используется формат Microsoft CAB), чтобы файлы могли умес титься на съемном носителе информации или для ускорения передачи данных при использовании соединения с низкой скоростью передачи данных. На сжатие файлов моментальных снимков потребуется дополнительное время.

По умолчанию либо агент Distribution, либо агент Merge вносят снимок в БД подписки. Если объем данных в публикации достаточно велик, считы вание исходной мгновенной копии вручную с компакт-диска или другого запомина ющего устройства (например с ленты) может выполняться быстрее, чем пересылка файла по сети.

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

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

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

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

Изучив материал этого занятия, вы сможете:

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

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

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

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

to and Wizard Рис. 15-4. Запуск мастера And Distribution Wizard Щелкните Next, чтобы сделать локальный сервер распространителем или выбрать распространителя для уже сконфигурированного издателя. Откроется окно Select Distributor (рис. 15-5).

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

Кроме того, для выбора удаленного сервера его следует предварительно зарегистри ровать в SQL Server Enterprise Manager. У вас также должны иметься соответствую щие права доступа к удаленному распространителю.

or Рис. 15-5. Выбор Если в качестве распространителя выбран локальный сервер, откроется окно Specify Snapshot Folder, где можно указать размещение папки моментальных сним ков. Размещение этой папки на экземпляре SQL Server по умолчанию Ч C:\Program SQL (рис. 15-6).

Рис. 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 Глава Репликация баз данных удалите Everyone и добавьте доменную учетную запись службы SQL Server Agent, предоставив ей полный доступ (Full Control) к папке (рис.

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

15-7. Создание ресурса для папки моментальных снимков и назначение разрешений доступа В окне Customize The Configuration можно изменять свойства распространителя или принять параметры по умолчанию (рис. 15-8).

you can the Рис. 15-8. Выбор параметров распространителя по умолчанию Редактировать параметры настройки распространителя следует, если необходимо изменить расположение по умолчанию БД распространения и журнала транзакций, разрешить дополнительным издателям использовать данного распространителя (по умолчанию с ним взаимодействует локальный сервер), добавить новые БД ра спространения или изменить список текущих подписчиков (по умолчанию на публи 3 репликации Enable to to this -.- mm т Рис. Выбор подписчиков Рис. 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 этой главы.

баз Глава 1 Х '.

' - - i, i.. и Рис. Расписания по умолчанию агентов Distribution и Merge Completing the Configure Publishing Distribution Wizard Рис, 15-16. Просмотр свойств распространителей и Упражнение Настройка распространителя В этом упражнении вы с мастера Configure Publishing And Distribu tion Wizard, доступного в Server Enterprise Manager, создадите и настрои те Чтобы создать и сервер-распространитель Убедитесь, что вы на контроллере домена под учетной записью Administrator.

2. Раскройте меню 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 5. Щелкните Откроется окно Distributor.

6. что в качестве распространителя выбран и 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, Groups.

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

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

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

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

16. В поле Snapshot Folder вместо значения по умолчанию введите Repldata и щелкните Next.

Откроется окно SQL Server Enterprise Manager, где выдается сообщение, что путь невозможно проверить, а также спрашивается, ли вы использовать этот путь.

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. Мож баз данных но также раскрыть в дереве консоли контейнер Replication, контейнер Publications правой кнопкой и выбрать New Publication. Откроется первое окно мас тера Welcome To The Create Publication Wizard (рис.

to the Publication can a I to data tt* is SOL Server I advanced Рис. 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, будет разрешена репликация только ранее выбранных БД, владельцем ко торых является В окне Select Publication Type выберите тип публикации (рис.

Можно создать публикацию снимка, публикацию и публикацию сведением.

Занятие 3 Реализация fflqutemenli Х'Х, - ХХ Рис, 15-19. Выбор типа публикации Создание публикации снимка Если вы установили переключатель Snapshot Publication и пометили флажок Show Advanced Options In This Wizard, откроется окно Subscriptions. Здесь разрешить немедленное обновление (Immediate Updating) и/или очередь обновлений (Queued Updating) (рис. 15-20).

You can changes л to be -.

Рис. 15-20. Выбор параметров обновления подписки Заметьте: если помечен флажок Queued обновления по умолчанию по мещаются в БД SQL Server. Переключиться на использование службы Microsoft Message Queuing можно только после создания публикации.

Если вы решили не создавать обновляемую подписку, откроется окно Transform Published Data, позволяющее создать трансформируемую подписку (рис. 15-21). Это окно открывается, только если помечен флажок Show Advanced Options In This Wizard (рис.

В окне Specify Subscriber Types следует указать типы подписчиков, подписывае мых на данную публикацию (рис.

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

504 баз You can choose before I a to s Рис. 15-21. Создание трансформируемой подписки Х.. ЯШ (I git я I,.

Рис. 15-22. Указание типа подписчиков Примечание Если вы выбирали подписчиков SQL Server 2000, но не включили какие либо новые функции, на также смогут подписаться экземпляры SQL Ser ver 7.0 и гетерогенные источники данных.

В окне Specify Articles выберите статьи, входящие в состав публикации (рис.

data Рис. 15-23. Выбор статей для публикации 3 Реализация Можно выбирать таблицы, хранимые процедуры и представления. В зависимости от выбранных ранее параметров, в списке могут отображаться не все указанные типы объектов. Например, если вы решили создать трансформируемую подписку, можно будет опубликовать только таблицы. Чтобы задать глобальные свойства публикуемых таблиц, хранимых процедур или представлений из состава определенной статьи, щел кните Article Defaults;

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

Рис. 15-24. Конфигурирование параметров таблиц статьи по умолчанию Затем в окне Article Issues, в зависимости от выбранных вами статей для публика ции и типа разрешенных подписок, может появиться о проблемах исполь зования столбцов с типами данных unique и а также столбца IDENTITY. Конкретный текст сообщения будет зависеть от выбранного типа репли кации и архитектуры БД публикаций. Подробнее об этом Ч в разделе Issues справочной системы SQL Server Books Online. Возможно, вы также получите сообще ние о том, что некоторые таблицы, объекты и представления ссылаются на объекты, не включенные в публикацию. Если объект БД ссылается на другие объекты их следует также опубликовать или создать вручную на (рис. 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).

данных Глава Article it la referenced views ft Рис. 15-25. Объекты статьи and а пат* riescrtficn Рис. 15-26. Задание имени публикации и ее регистрация в Active Directory the Рнс. настройки свойств публикации репликации В окне Customize The Properties Of The Publication можно указать, что вам требует ся определить фильтры данных, разрешить анонимную подписку и настроить распи сание работы агента Snapshot (рис. 15-27). По умолчанию агент Snapshot чески запускается сразу после создания публикации, затем Ч каждую неделю.

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

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

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

Репликация баз данных Table your..

. Х < All r s > < > published > < гаи < Al > Рис. 15-30. строк таблицы Рис. горизонтального фильтра Для фильтрации публикуемых строк выбранной статьи в диалоговом окне 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 обычно выполня ется каждую ночь (для поддерживающих анонимную подписку, Ч еже недельно). Если поддерживаются анонимные можно также немедленно создать начальный моментальный снимок. В противном случае снимок обычно рируют при создании первой подписки (рис.

Занятие 3 репликации to Рис. 15-32. анонимной Set la '.Х Рис. Определение расписания работы агента Просмотрите выбранные параметры публикации в окне The Create Publication Wizard и Finish (рис. 15-34).

the Publication Го i he 15-34. Окно Completing the Create Publication Wizard баз данных Создание транзакционной публикации Создание транзакционной публикации во многом схоже с созданием публикации снимка.

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

Чтобы создать транзакционную публикацию 1. В дереве консоли SQL Server Enterprise Manager последовательно раскройте кон тейнеры сервера по умолчанию и 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 Type.

5. Щелкните 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 затем щелкните Next.

окно 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.

Щелкните Next.

Откроется окно Select Publication Name And Description.

12. В поле Publication Name введите PubsSales и щелкните Next.

Откроется окно Customize The Properties Of The Publication.

13. что помечен флажок No, Create The Publication As Specified, просмот рите свойства публикации и Next.

Откроется окно Completing The Create Publication Wizard.

14. Щелкните Finish, чтобы создать публикацию.

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

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

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

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

Тит of to Рис. 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 выбраны такие параметры, что, если при сведе нии данных из нескольких источников выполняется несколько обновле ния одного поля, это считается конфликтом. Можно изменить настройки по умолча нию, и указать, что конфликтом считаются изменения любого поля конкретной стро ки. Так, например, если один подписчик изменяет телефонный номер определенно го поставщика, а другой подписчик Ч его имя, по умолчанию это не считается конф ликтом.

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

Рис. 15-37. Включение возможности интерактивного разрешения конфликтов На вкладке Merging Changes можно добавить дополнительный уровень разреше ний (рис, Рис. 15-38. Указание необходимости наличия у агента Merge дополнительных разрешений Можно потребовать, чтобы учетная запись агента Merge в дополнение к разреше ниям доступа к БД публикаций также обладала разрешениями на выполнение команд INSERT, UPDATE и DELETE. Это используется, чтобы ограничить возможные менения, вносимые подписчиком. Информация о разрешениях хранится в снимке. Если после создания снимка разрешения изменятся, следует создать новый моментальный снимок. Кроме по умолчанию обновление полей одной записи осуществляется одним оператором UPDATE.

В дополнение к изменению параметров устранения конфликтов слияния по умол чанию, можно также изменять параметры разрешения конфликтов для отдельных статей. Для этого в окне Specify Articles кнопку (...) напротив имени статьи, и в окне Table Article Properties на вкладку (рис, 15-39).

Х,.... Х. Х SQL Рис. 15-39. Изменение параметров устранения для отдельной статьи По умолчанию конфликты разрешаются с использованием системы оценки при оритета. По умолчанию все подписчики имеют одинаковый приоритет (однако раз ным подписчикам можно назначать разные приоритеты), и первое изменение, полненное при данных, имеет преимущество в случае устранения кон фликта.

Вместо средства устранения конфликтов по умолчанию можно выбрать одно из настраиваемых средств, поставляемых с SQL Server 2000, или создать собственные хранимые процедуры и Настраиваемые средства из состава SQL Server 2000 могут разрешать конфликты различными способами, например сохранять самое первое изменение данных, самое последнее изменение, наибольшее, наименьшее или среднее значение. Подробнее об этом Ч в разделе Microsoft Resolver справочной системы SQL Server Books Online.

Кроме того, на вкладке Identity Range для любой статьи со столбцом вы можете указать, что SQL Server должен автоматически присваивать каждому под писчику диапазон значений. Это позволяет подписчикам добавлять новые используя свойство IDENTITY, и гарантирует отсутствие идентичных значений поля IDENTITY (рис. 15-40).

Следующие два окна, Article Issues и Select Publication Name and Description, ана логичны окнам, выводимым при настройке публикации и ции снимка (рис. 15-25, 15-26).

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

5 4 Репликация данных Глава Рис. 15-40. диапазона значений поля IDENTITY для подписчиков Рис. 15-41. Фильтрация данных публикации по вертикали и/или по горизонтали При данных по вертикали открывается окно Filter Table Columns (рис.

15-28). Репликация сведением использовать динамические и статические фильтры, включить которые в окне Enable Dynamic Filters (рис. 15-42).

В окне Generate Filters можно включить автоматическое создание статических или динамических горизонтальных фильтров (рис. 15-43).

При этом используется со параметров, по которым следует фильтровать Например, на рис. 15-43 исходный фильтр основан на столбце таблицы Employees и имени зарегистрированного в системе пользователя.

Затем, в окне Filter Table SQL Server использует этот начальный фильтр, чтобы создать предполагаемые фильтры (используя фильтры соединения) для связанных таблиц с целью ограничения реплицируемых данных, основываясь на имени пользо вателя (рис. 15-44), Реализация Enable fliers of published Выбор динамических фильтров а Юм table, Server * Рис. 15-44. Автоматически сгенерированные фильтры 18- Репликаций данных В окне Validate Subscriber Server по умолчанию проверяет досто верность сведений о подписчике, используемых в динамическом фильтре, это авто матически происходит при каждом подключении агента Merge. Окно Sub scriber SQL Server выводится только в том случае, если дина мические фильтры (рис. 15-45).

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

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

G You an improve fc, Рис. 15-46. Оптимизация производительности Чтобы оптимизировать процесс синхронизации при репликации сведением, уста новите переключатель в положение Yes, The Amount Of Data. Это позволяет минимизировать сетевой трафик для выяснения того, относится ли изменение, вне сенное издателем, к набору который требуется свести с данными подписчи ка. Такая возможность очень полезна при использовании сетевых подключений с низкой пропускной способностью, но требует дополнительного пространства для хранения информации на сервере-издателе.

3 репликации Следующие два окна, Allow Anonymous Subscriptions и Set Snapshot Agent Schedule, аналогичны окнам, выводимым при настройке публикации и пуб ликации снимка (рис. 15-32 и 15-33). Окно Allow Anonymous Subscriptions не выво дится, если флажок Show Advanced Options This Wizard (рис. снят. По умол чанию для публикаций сведением в окне 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 выберите и щелкните Next.

Откроется окно Select Publication Type.

5. Установите переключатель в положение Merge Publication Ч Data Can Be The Publisher Any Subscriber. Changes Are Merged Periodically 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. Перейдите на вкладку 10. Пометьте флажок Select the Allow Subscribers To Resolve Conflicts Interactively During Synchronization и щелкните ОК.

Снова откроется окно Specify Articles.

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

12. Щелкните Next.

Откроется окно Article Issues.

g баз данных 13. Щелкните Next.

Откроется окно Select Publication Name And Description.

14. В поле Publication Name введите затем щелкните Next.

Откроется окно Customize The Properties Of The Publication.

15. Установите переключатель положение Yes, I Will Define Data Filters, Enable Anonymous Subscriptions, 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.

Чтобы создать пользовательскую функцию для фильтра, раскройте меню SQL Server и выберите Query Analyzer.

Откроется окно Connect To SQL Server.

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

Откроется окно Open Query File.

21. Откройте файл UDF.sql из папки Сценарий создает пользовательскую функцию, возвращающую строки таблицы, отфильтрованные по номеру 22. В панели инструментов щелкните Execute Query.

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

24. В списке Table To Filter выберите для оператора SELECT, использу емого в фильтре. Для этого введите between 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.

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

Откроется окно SQL Server Enterprise Manager, где отображается состояние про цесса создания публикации.

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

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

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

to the Push Subscription rasad you Рис. 15-47. Начало работы с мастером Push Wizard Если в этом окне пометить флажок Show Advanced Options This Wizard, при даль нейшей работе с мастером вы сможете задать параметры обновляемой подписки, а также сконфигурировать соответствующий агент репликации для работы на чике, а не на распространителе.

В окне Choose Subscribers выберите подписчиков, которым будет распространять ся публикация (рис. Можно выбрать один или несколько серверов-подписчи ков. Подписчик должен быть включен в процесс репликации. Если мастер Push Subscription Wizard запущен членом роли сервера sysadmin, зарегистрированный эк земпляр можно включить в процесс репликации на Если мастер запущен чле ном роли дополнительных подписчиков подключить нельзя.

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

По умолчанию имя конечной БД (также называемой БД подписки) соответствует имени БД публикаций. Конечная БД должна существовать на подписчике до его ини циализации. Щелкните 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 (рис. снят, место выполнения агента будет невозможно.

a mot a of Рис. Выбор SOL Рис. 15-49. Выбор конечной БД choose at г Рис. 15-50. Выбор места агента Distribution 3 Реализация Merge You can Merge at Рис. 15-51. Выбор места выполнения Merge Затем в окне Set Distribution Agent (рис. 15-52) задайте расписание работы агента Distribution или в окне Set Merge Agent Schedule (рис. 15-53) Ч расписание работы агента Merge.

frequently the Ihe s Рис. 15-52. Настройка расписания работы агента Distribution Merge Agent Schedule the Рис. 15-53. Настройка расписания работы агента Merge Заметьте: по умолчанию агенты Distribution выполняются постоянно, а агенты Merge запускаются каждый час.

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

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

Если вы создаете подписку на публикацию или публикацию обновление данных, задайте в окне Subscriptions 3 Реализация тип обновляемой подписки. Доступные в этом окне параметры зависят от типа об новляемых подписок, включенных в публикацию (рис. 15-56).

You can ID on ra be to Рис. 15-56. Определение типа обновляемой подписки Если вы создаете подписку на публикацию или публикацию снимка, поддерживающую трансформацию данных, в окне Specify DTS Package ука жите используемый данной подпиской пакет DTS. Заметьте: пакет DTS должен мещаться либо на распространителе, либо на подписчике (рис. 15-57).

DTS DTS IB Рис. 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). В данном случае изменения, выполненные подписчиком, объединяются с данными издателя;

при этом приоритет каждого подписчика, данных Глава изменения, сохраняется в составе метаданных для этого изменения. Это га рантирует, что на изменение, выполненное подписчиком с более высоким приорите том, не накладывается изменение, внесенное подписчиком с более низким приори the decide a* Рис. 1S-5S. Установка с целью разрешения конфликтов Далее открывается окно Start Required Services, где агент SQL Server проверяет, что на распространяющем данные сервере запущены все необходимые службы (рис.

Служба SQL Server Agent требуется во всех случаях. Служба MSDTC требуется для обновляемых подписок (если используется служба Microsoft Message служба MSDTC не нужна). Если нужная служба не запущена, SQL Server Agent умолчанию запустит ее, когда мастер завершит работу. Если вы хотите запускать служ бу вручную, не помечайте соответствующий флажок.

Start rt fa the Рис. 15-59. Выбор запускаемых служб В окне Completing The Push Subscription Wizard просмотрите заданные параметры подписок и щелкните Finish, чтобы создать принудительную подписку (рис. 15-60).

репликации Completing Push subscription Рис. 15-60. Завершение работы с мастером Push Subscription Wizard Упражнение 4. Создание принудительных подписок В этом упражнении вы создадите принудительную подписку средствами мас тера Create Push Subscription Wizard, доступного в SQL Server Enterprise Mana ger.

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

2. Правой кнопкой щелкните PubsSales:pubs и выберите Push New Subscription.

Откроется окно Welcome To The Push Subscription Wizard.

3. флажок Show Advanced Options This Wizard и щелкните Next.

Откроется окно Choose Subscribers.

4. В поле Subscribers выберите и щелкните Next, Откроется окно Choose Destination Database, 5. Щелкните Browse Or Create.

Откроется окно Browse Databases On 6. Щелкните Create New.

Откроется окно Database Properties.

7. В поле Name введите и ОК.

8. Проверьте, что в диалоговом окне Browse Databases On Instance' выбрана БД PubsPush, и щелкните ОК.

9. В окне Choose Destination Database щелкните Next.

Откроется окно Set Distribution Agent Location.

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

Откроется окно Set Distribution Agent Schedule.

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

12. Откроется окно Initialize Subscription.

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

13. Пометьте флажок Start The Snapshot Agent To Begin The Process Immediately и щелкните Next.

Откроется окно Subscriptions.

14. Установите переключатель положение Immediate Updating With Queued Updating As A Standby In Case Of Failure и щелкните Next.

Откроется окно Start Required Services. Обратите внимание, что должна быть запу щена служба SQL Server Agent на сервере а также служба 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.

Конфигурирование подписок по запросу Чтобы создать подписку по запросу subscription), следует запустить на подписчике мастер Pull Subscription Wizard. Подписка по запросу инициируются сервером-под писчиком в соответствии с заданным расписанием. Подписчик копирует реплициру емые данные с В этом процессе репликации используются ресурсы сервера-подписчика. При подписке по запросу на публикацию сведением данные передаются обратно издателю. Чтобы запустить мастер Pull Subscription в меню Tools выберите Wizards, раскройте Replication в диалоговом окне Select Wizard и дважды щелкните Create Subscription Wizard. Можно также щелкнуть Subscrip tions правой кнопкой и выбрать New Subscription. На рис. 15-61 показано первое окно мастера Welcome To The Pull Subscription Wizard.

Welcome to the Pull Subscription Wizard a i\ Рис. мастера Pull Subscription 3 Реализация Заметьте: пометив флажок Show Advanced Options In This Wizard, вы сможете на параметры обновляемых подписок.

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

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

can choose a и in Рис. Active Directory для подписки на публикацию Если вы выбрали поиск публикации, зарегистрированной в SQL Server Enterprise то в окне Choose Publication выберите публикацию, на которую хотите под бзз данных писаться (рис. 15-65). PAL публикаций, мастер выведет список публика доступных пользователю, учетная запись которого использовалась при чении к экземпляру SQL Server, а также список публикаций, доступных анонимным подписчикам.

Рис. Размещение в БД Active Directory Ми to to Рис. 15-65. Поиск серверов для Выбрав публикацию в окне Choose Destination Database, выберите БД, в которой вы собираетесь создать подписку. Эта БД должна быть размещена на сервере, где на ходятся реплицируемые данные. Выберите уже БД из списка или со здайте новую, кнопку New (рис. 15-66).

Далее, если нужно разрешить анонимную подписку, пометьте соответствующий флажок в окне Allow Anonymous Subscription. Если подписка анонимна, издатель не сохраняет какую-либо информацию о подписчиках (рис. 15-67).

Если вы выбрали публикацию, для которой разрешены обновляемые подписки, укажите тип таких подписок в окне Subscriptions (рис. 15-68). Если вы выб рали один из типов 2РС, в окне Specify Updating Subscription Login укажите учетную запись, которая будет использоваться подписчиком для подключения к издателю.

Выбранные вами типы подписок используют учетную запись определенного связан ного сервера (или удаленного сервера) или учетную запись SQL Server (рис. 15-69).

репликации the Рис. 15-66. Выбор конечной БД Allow are not Рис. 15-67. Создание анонимной подписки You to to to and Рис. 15-68. Выбор типа обновляемой подписки Репликация баз данных lo сопка to when в Рис. 15-69. Определение учетной записи для обновляемой подписки Далее в окне Initialize Subscription вы можете выбрать немедленную инициализа цию подписки или что у подписчика уже имеются файлы моментальных снимков. Это делается так же, как и в случае принудительной подписки (рис. 15-54 и 15-55). В окне Snapshot Delivery укажите, где находятся файлы моментальных сним ков (рис. 15-70).

Вы можете использовать для публикации папку моментальных снимков, выбран ную по умолчанию, или другую компакт-диск или FTP-адрес). Агент реп ликации, созданный для подписки (это либо агент Distribution, либо агент, выполня ющий слияние данных) должен иметь разрешения на чтение файлов моментальных снимков.

lo access the at the Рис. 15-70. Выбор файлов моментальных снимков Затем в окне Set Merge Agent Schedule (рис. 15-71) задайте расписание работы аген та Merge или в окне Set Distribution Agent Schedule Ч расписание работы агента Distribution. Вы можете выбрать непрерывную работу агента или же запускать его только по требованию- Запуск по требованию позволяет подписчику использовать SQL Server Enterprise Manager или Windows Synchronization Manager для синхрониза ции подписки.

3 репликации Set Schedule how the Рис. 15-71. Настройка расписания работы агента Примечание Для создания подписки по требованию у доменной учетной записи служ бы SQL Server Agent должен быть полный доступ к разделу Microsoft SQL реестра.

Если подписка на публикацию сведением уже существует, откроется окно Set Subscription Priority Page. Все элементы этого окна аналогичны окну, открывающему ся при создании принудительной подписки (рис. 15-58).

В окне Start Required Services отображаются службы, которые необходимо запус тить для этой подписки. Если в окне Set Merge Agent Schedule переключатель нахо дится в положении On Demand окно Start Required Services не отображается.

Служба SQL Server Agent всегда будет одной из выбранных служб. Если тип обновля емой подписки Ч 2РС, также будет выбрана служба MS DTC (рис. 15-72).

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

the and tfailed the is Рис. 15-72. Выбор служб 532 баз данных Глава Упражнение 5. Создание подписки по запросу В этом упражнении вы создадите подписку на реплицируемые данные, ко торой процесс репликации инициируется сервером, данные, с помощью мастера Create Pull Subscription Wizard в SQL Server Enterprise Manager.

Чтобы подписку по запросу 1. В меню Start выберите Run.

2. В поле Open и щелкните ОК.

Откроется Registry Editor.

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

4. В меню Security выберите Permissions.

Откроется окно Permissions For Subscriptions.

5. Щелкните Add.

Откроется окно Select Users, Computers Or Groups.

6. Дважды щелкните затем ОК.

Учетная запись пользователя домена SQLService добавлена в список Name.

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

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

10. В дереве консоли SQL Server Enterprise Manager раскройте затем Ч контейнер Replication для экземпляра сервера MyNamed Instance.

Правой кнопкой щелкните Subscriptions и выберите New Pull Subscription.

Откроется окно Welcome To The Pull Subscription Wizard.

12. Пометьте флажок Show Advanced Options In This и щелкните Next.

Откроется окно Look For Publications.

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

Откроется окно Choose 14. Раскройте затем Ч Next.

Откроется окно Choose Destination Database.

15. Щелкните New.

Откроется окно Database Properties.

16. В поле Name введите и ОК.

БД создана с использованием параметров по умолчанию.

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

Откроется окно Initialize Subscription.

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

19. Пометьте флажок Start The Merge Agent To Initialize The Subscription Immediately и Next.

Откроется окно Snapshot Delivery.

20. Убедитесь, что переключатель находится в положении Use Snapshot Files The Default Snapshot Folder For This и щелкните Next.

Откроется окно Set Merge Agent Schedule.

Установите переключатель в положение On Demand Only Ч You Can 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 и щелкните Next.

Откроется окно Completing The Pull Subscription Wizard.

23. Просмотрите выбранные параметры подписки по запросу и щелкните Finish.

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

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

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

Pages:     | 1 |   ...   | 6 | 7 | 8 | 9 |    Книги, научные публикации