Microsoft System Center Operations Manager 2007 (OpsMgr), благодаря возможности подключения специального пакета управления (management pack) для SQL Server, позволяет администраторам баз данных отслеживать производительность серверов SQL Server. Этот пакет управления доступен для загрузки из каталога на сайте Microsoft (http://technet.microsoft.com/en-us/opsmgr/cc539535.aspx). Новая версия R2 позволяет выбирать и загружать нужные пакеты управления прямо из консоли OpsMgr.

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

Что умеет OpsMgr

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

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

OpsMgr использует объектно-ориентированную модель мониторинга на основе классов. Все компоненты, необходимые для работы с объектом (в случае SQL Server это службы, базы данных и диски), собраны вместе для определения и отображения уровня здоровья или состояния объекта. «Модель здоровья», описанная в пакете управления SQL Server, позволяет OpsMgr отслеживать работоспособность объектов и определять, какие действия необходимо предпринять для обеспечения нормальной работы системы. Перспективы развития пакета управления для SQL Server рассмотрены во врезке «Будущее пакета управления для SQL Server».

Откуда берутся проблемы с приложениями?

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

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

Доступен ли SQL Server, принимает ли он соединения? Если пользователи не могут подключаться к SQL Server, OpsMgr сразу сообщит об этом.

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

Все ли задания агентов SQL Server (резервирование, оптимизация и другие) работают? Агенты SQL Server применяются для запуска по расписанию служебных заданий по поддержке работоспособности баз данных. Если эти задания не выполняются, то не производятся и необходимые работы по поддержке.

Выполняется ли репликация SQL Server? По умолчанию заложенная в OpsMgr функциональность в отношении мониторинга репликаций не задействована полностью, поскольку многие установленные системы SQL Server просто не используют репликацию. Так что, если она используется, имеет смысл включить эту функцию.

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

В OpsMgr имеется базовая поддержка зеркалирования с помощью инструментария управления Windows Management Instrumentation (WMI), запланировано дальнейшее развитие этой функции. OpsMgr полностью поддерживает кластеры как для конфигураций «активный-пассивный», так и для вариантов, когда все серверы являются активными. Давайте рассмотрим подробнее, для решения каких задач следует использовать пакет управления SQL Server.

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

В узле мониторинга консоли OpsMgr может появиться оповещение, сообщающее о том, что брокер службы SQL Server Service Broker или транспорт мониторинга баз данных Database Monitoring Transport заблокирован или не настроен. Это оповещение возникает при появлении в журнале приложений системы SQL Server события с кодом 9666.

К сожалению, это предупреждение может возникать и в том случае, когда брокер работает. Возможные варианты реакции на сообщение: убедиться, что брокер включен, для чего достаточно выполнить запрос с консоли SQL Server Management Studio (SSMS), подключенной к базе данных master на сервере, на котором возникает данное оповещение:

SELECT is_broker_enabled FROM
   sys.databases
WHERE name = ‘OperationsManager’

Если код возврата result=1, значит, брокер включен. Если же result=0, выполните следующие действия для включения брокера:

  1. С помощью оснастки Services консоли Microsoft Management Console (MMC) на сервере Root Management Server остановите службы SDK, Config и Health Services, а на всех вторичных серверах управления остановите Health Service. В OpsMgs R2 они называются, соответственно, System Center Data Access, System Center Management Configuration и System Center Management Services.
  2. В SSMS выполните следующее предложение:
       ALTER DATABASE OperationsManager
       SET ENABLE_BROKER
  3. Перезапустите службы.

Если предупреждение продолжает появляться, заблокируйте правило путем его перезаписи. Для этого сделайте следующее:

  1. Щелкните правой кнопкой на предупреждении в узле мониторинга консоли управления OpsMgr и выберите Overrides, Override the rule, For the object: MSSQLSERVER.
  2. На экране Override Properties включите флажок разрешения перезаписи.
  3. Перед тем как нажать OK для сохранения изменений, выберите целевой пакет, отличный от пакета управления по умолчанию. Рекомендуется сохранять измененную настройку в отдельный пакет управления для каждого варианта настройки, таким образом, при необходимости будет проще вернуться к исходным настройкам.

В рассматриваемом примере используется предварительно созданный пакет управления SQL Server MP Overrides. Если у вас нет пакета управления для тестирования изменений, можно создать его с помощью кнопки New. Если правило отключить, а не перезаписать, то изменения будут сохранены в пакете управления по умолчанию. Эти действия показаны на экране 1. Дополнительные сведения о рекомендуемых Microsoft лучших практиках настройки перезаписи можно найти на сайте поддержки (http://support.microsoft.com/kb/943239).

Экран 1. Окно Override Properties

Включение компонентов

По умолчанию пакет управления SQL Server автоматически обнаруживает не все типы объектов SQL Server. Для SQL Server 2008 список не обнаруживаемых компонентов включает следующие объекты:

  • SQL 2008 Agent Job;
  • SQL 2008 DB File Group;
  • SQL 2008 DB File;
  • SQL 2008 Distributor;
  • SQL 2008 Publisher;
  • SQL 2008 Subscription.

Этот список совпадает с компонентами SQL Server 2005 и 2000. Специалисты Microsoft исключили эти компоненты из числа обнаруживаемых по умолчанию из-за потенциального снижения производительности и значительного увеличения числа оповещений.

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

Например, если было настроено резервное копирование баз данных SQL Server с помощью SQL Agent, и в какой-то момент это задание даст сбой, OpsMgr не сообщит об этом, если объект типа Agent Job не был включен.

Для включения компонентов следует выполнить такую последовательность действий:

  1. В консоли OpsMgr перейдите к узлу Authoring. В левой части панели выберите Management Pack Objects, Object Discoveries.
  2. В поле Look for введите SQL Server 2008 и выберите Find Now. Результатом будет список всех компонентов пакетов управления SQL Server 2008. Аналогично можно выбрать объекты для SQL Server 2005 и 2000.
  3. Теперь обратите внимание на правый столбец Enabled by default, в котором каждому компоненту соответствует значение Yes или No (см. экран 2).
  4. Выберите компоненты, которые собираетесь включить. В рассматриваемом примере я выбрала объект Discover SQL 2008 Agent Jobs object.
  5. Щелкните его правой кнопкой мыши, выберите Overrides, Override the Object Discovery, For a group … для вызова окна Select Object. Выберите SQL 2008 Computers, после чего появится экран Override Properties.
  6. Включите флажок Override для параметра Enabled, убедитесь, что для Override Setting установлено значение True. Выберите целевой пакет управления (отличный от пакета по умолчанию) и нажмите OK для сохранения изменений. Окно Override Properties показано на экране 3.

Экран 2. Поиск объектов для SQL Server 2008

Экран 3. Включение объекта Discover SQL 2008 Agent Jobs

Запуск SQL Server Configuration Manager, SSMS и SQL Server Profiler из консоли OpsMgr требует установки выбранного программного обеспечения на компьютерах, на которых запущена консоль. Если эти компоненты не установлены, система выдаст сообщение об ошибке The system cannot find the file specified.

Не лишним также будет убедиться, что администратор импортировал в OpsMgr нужную версию пакета управления Windows Server (Windows Server 2008 или Windows Server 2003). Этот пакет управления отслеживает параметры операционной системы, которые могут влиять на производительность SQL Server, такие как использование оперативной памяти, производительность дисковой системы и процессоров, загрузка сетевых адаптеров.

Длительно выполняющиеся задания

Иногда требуется настроить монитор Long Running Jobs. Пороговые значения указываются в минутах, значения по умолчанию оставляют 60 минут для нижней границы и 120 для верхней.

Когда время выполнения задания находится в пределах от 60 до 120 минут, состоянию системы присваивается статус Warning, для задач со временем выполнения сверх 120 минут статус устанавливается Critical, при этом OpsMgr создает соответствующие оповещения.

Для изменения этих настроек выполните следующие действия:

  1. Откройте консоль OpsMgr и в левой панели выберите узел Monitoring. В поле Look for: введите текст long running jobs, чтобы получить подходящий список мониторов.
  2. Выберите из списка монитор Long Running Jobs для пакета управления SQL Server 2008
  3. Для присвоения другого значения конкретному агенту щелкните правой кнопкой мыши на Long Running Jobs, Override. Укажите Override the Monitor, For a specific object of type: SQL Server 2008 Agent.
  4. На экране Select Object выберите нужный агент и щелкните OK.
  5. На экране Override Properties при необходимости установите соответствующие значения нижнего и верхнего порога Lower Threshold и Upper Threshold. Изменения нужно сохранить в новый пакет управления, отличный от пакета по умолчанию.

Использование монитора Long Running Jobs оказывает заметное влияние на производительность системы. Кроме того, его поведение меняется в зависимости от версии SQL Server.

  • Для SQL Server 2000 мониторинг длительных заданий возможен только при выборе отдельных задач. Необходимо разрешить обнаружение задач. При этом мониторинг каждого задания для каждого экземпляра SQL Server производится отдельно и с соответствующими накладными расходами. После разрешения обнаружения для каждого задания создается собственный монитор продолжительности работы задания Job Duration. Введите пороговые значения в формате ЧЧММСС. По умолчанию в текущем выпуске пакета управления SQL Server эти значения составляют 1 и 2 часа (010000 и 020000), с соответствующим пониманием изменений этих пороговых значений.
  • Для SQL Server 2008 и 2005 подобная функциональность мониторинга по отдельным задачам доступна, но по умолчанию она отключена, а пороговые значения задаются в минутах.
  • Для SQL Server 2008 и 2005 имеется также новый агент, который позволяет выполнять мониторинг задач для экземпляров SQL Server. Если разрешить этот тип обнаружения, будет обнаружен каждый экземпляр агента SQL Server, и монитор Long Running Jobs для класса агента SQL Server будет отслеживать продолжительность всех заданий, выполняющихся агентом. Если не установить новые значения, любое задание, выполняющееся дольше указанного порогового значения, будет вызывать изменение состояния, и монитор будет создавать оповещение.

Отчеты

Пакет управления SQL Server содержит предопределенные отчеты, в том числе следующие:

  • SQL Broker Performance — производительность брокера;
  • SQL Database Space Report — отчет по пространству базы данных SQL;
  • SQL Server Configuration — параметры настройки SQL Server;
  • SQL Server Database Engine Counters — счетчики движка базы данных SQL Server;
  • SQL Server Lock Analysis — анализ блокировок SQL Server;
  • SQL Server Service Pack Report — отчет о пакетах исправлений SQL Server;
  • SQL Server User Activity — активность пользователей SQL Server;
  • Top 5 Deadlocked Databases — 5 баз данных, где больше всего взаимных блокировок;
  • User connections by day — количество пользовательских подключений за день;
  • User connections by peak hours — пользовательские подключения в часы пик.

При выборе любого из отчетов в узле Reporting консоли управления OpsMgr вызывается панель Details, которая выводит информацию о том, как данный отчет запускается, как его использовать и какие параметры можно указать. Среди параметров можно отметить выбор даты/времени, позволяющий указывать относительные или фиксированные временные интервалы и часовые пояса.

На экране 4 приведен фрагмент отчета о счетчиках базы данных, показывающий производительность за неделю. Можно настроить периодическую выдачу автоматических отчетов и сохранение их в формате XML, CSV, TIF, PDF, MHT, а также в формате Microsoft Excel.

Экран 4. Отчет по счетчикам SQL Server Database Counters

Средство мониторинга для администраторов баз данных

OpsMgr позволяет выполнять мониторинг тех параметров, которые больше всего нужны администраторам баз данных для обеспечения лучшей производительности систем — использование памяти, дисковые операции ввода-вывода, загрузку центрального процессора, задержки в сети, резервирование и другие ключевые индикаторы. При этом OpsMgr собирает все эти средства в единую удобную среду инструментов.

Кэрри Мейлер (kerrie@meyler.net) — консультант и MVP по Operations Manager


Таблица. Счетчики, правила и уведомления Operations Manager


Будущее пакета управления для

Изначально пакет управления для SQL Server 2008 планировался как полный функциональный аналог пакета управления для SQL Server 2005 (с добавлением изменений, внесенных в пакет управления для SQL Server 2005 SP1). Ожидается, что Microsoft выпустит обновление пакета в 2010 году, при этом в него будут включены новые разработки, связанные с повышением управляемости систем, и средства для упрощения применения этих новых функций. И хотя до окончательного выпуска обновления ничего утверждать нельзя, вероятно, в обновление будут включены следующие функции.

Database Tuning Advisor — советник по оптимизации базы данных. В состав SQL Server 2008 и 2005 включен компонент Database Tuning Advisor. Однако, помимо мониторинга исполнения заданий SQL Server, пакет управления также решает задачи отслеживания состояния SQL Server и связанных служб (какие именно службы установлены, как они настроены и каково их операционное состояние). При этом остается открытым вопрос, что построено поверх этих установленных объектов и как настроена и функционирует эта надстройка. Вероятно, Microsoft продвинется в направлении более тонкого мониторинга баз данных, производительности и вопросов настройки.

Best Practices Analyzer — анализатор оптимальных методик. В состав SQL Server 2008 и 2005 входит компонент BPA Best Practices Advisor — советник по применению лучшей практики. Разработчики Microsoft включили Exchange BPA в состав пакета управления Exchange для Microsoft Operations Manager — MOM-2005, но в пакет управления SQL Server компонент BPA до сих пор не входил.

Управление политиками SQL Server 2008 включает набор правил, которые выполняют функции BPA. Новая версия следующего пакета управления SQL Server, вероятно, будет включать общие правила и мониторы, предназначенные для реагирования на переключение различных политик. Поскольку каждая установка обычно требует собственного набора политик, пакет управления, скорее всего, будет отслеживать соответствие этим политикам и предупреждать, если такое соответствие нарушено. Хотя в настоящее время OpsMgr не проверяет и не устанавливает политики, на каком-то этапе средства для распространения и применения политик в нем должны появиться.

Resource Governor — распорядитель ресурсов. Распорядитель ресурсов — одна из новых возможностей SQL Server 2008. OpsMgr с обновленным пакетом управления SQL Server должен корректно интерпретировать ограничения, которые распорядитель ресурсов накладывает на различные компоненты SQL Server, например пороговые значения могут изменяться в зависимости от изменения политик, а не от общих ресурсов системы.

Performance Studio and Performance Data Collection — управление производительностью и сбор данных о производительности. Компоненты Performance Studio и Performance Data Collection обеспечивают функциональность и глубину анализа, превосходящую возможности современной редакции пакета управления SQL Server. Встраивание этих возможностей потребует перехода от общего высокоуровневого мониторинга, обеспечиваемого пакетом управления, к низкоуровневым возможностям трассировки и отчетов, предоставляемых самим SQL Server.

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

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