За последние годы число организаций, активно использующих SQL Server, заметно возросло. Реализованная в SQL идеология Microsoft Data Platform помогает организациям смело браться за масштабирование баз данных, повышать эффективность работы ИТ-подразделений и групп разработчиков, а также осуществлять бизнес-анализ, business intelligence (BI), на принципах самообслуживания. Однако в процессе широкого внедрения SQL Server администраторам пришлось столкнуться с рядом не столь значительных проблем, в первую очередь в сфере приложений и управления несколькими экземплярами систем, которые проявляются в ходе осуществления, с привлечением собственных инструментальных средств — мониторинга работоспособности ресурсов и их использования.
Специалистам Microsoft удалось решить часть этих проблем при помощи двух средств управления несколькими экземплярами серверов, которые были реализованы в SQL Server 2008. С появлением этих средств (речь идет о Policy Based Management и Data Collector) подход администраторов баз данных к управлению экземплярами SQL Server, а также базами данных, коренным образом изменился. Набор функций Policy Based Management открыл перед организациями возможность создавать на основе заранее заданных условий и выражений особые политики для управления одной или несколькими базами данных либо экземплярами SQL Server. Средство Data Collector использовалось для получения, сохранения и анализа данных, извлекаемых из нескольких источников.
Хотя Policy Based Management и Data Collector оказались весьма простыми в освоении инструментами, администраторам баз данных, стремящимся заблаговременно решать проблемы использования ресурсов всеми экземплярами SQL Server и приложениями в рамках своих организаций, требовались дополнительные инструменты. Разработчики SQL Server 2008 R2 откликнулись на эту потребность, включив в свой продукт SQL Server Utility.
.
Что такое SQL Server Utility
Программа SQL Server Utility дает администраторам возможность получать целостное представление о работоспособности и использовании ресурсов, ассоциированных с управляемыми экземплярами SQL Server, а также зарегистрированных приложений баз данных. Ниже приводится перечень компонентов, а также используемых для их описания терминов.
- Точка управления утилитой, utility control point (UCP). UCP настраивается на экземпляре SQL Server. Точка управления представляет собой базу SQL Server Utility. Она позволяет отслеживать с помощью среды SQL Server Management Studio (SSMS) состояние и использование ресурсов SQL Server. UCP дает возможность выполнять ряд действий, включая формирование политик использования ресурсов, которые отслеживают требования к расходованию ресурсов, принятые в данной организации.
- Utility Explorer. Этот интерфейс, доступный из среды SSMS, обеспечивает управление программой SQL Server Utility. С помощью Utility Explorer администратор может подключиться к той или иной утилите, создать точку управления UCP, зарегистрировать экземпляры SQL Server, которым предстоит стать объектами управления, просмотреть связанные с управляемыми экземплярами SQL Server представления «панель мониторинга» и «панель углубленной детализации», а также выполнять другие действия.
- Хранилище данных управления для утилит, utility management data warehouse (UMDW). В этой реляционной базе данных хранятся сведения, собранные управляемыми экземплярами SQL Server. Эта база данных (sysutility_mdw) автоматически формируется в экземпляре SQL Server при создании UCP. Она строится в соответствии с простой моделью восстановления, и для ее функционирования ежегодно требуется порядка 2 Гбайт дискового пространства в расчете на каждый управляемый экземпляр SQL Server.
- Набор элементов для сбора данных Utility Information. Когда управление экземпляром осуществляется с помощью точки управления UCP, устанавливается и автоматически запускается набор элементов для сбора данных Utility Information. Этот компонент выполняет сбор данных и перенаправляет их в хранилище UMDW.
- Приложение уровня данных, data-tier application (DAC). DAC представляет собой единый компонент программы, предназначенный для разработки, развертывания объектов уровня данных, а также для управления ими. В пакет DAC входят схемы приложений баз данных, таблицы, представления, хранимые процедуры и учетные имена, используемые для регистрации в системе. Приложения DAC создаются с помощью шаблона new SQL Server Data-tier Application project template в Visual Studio 2010 или посредством реконструкции существующей базы данных.
На приведенном рисунке отображены потоки заданий, связанные с SQL Server Utility. Из рисунка явствует, что в корпоративной сети была развернута точка UCP, которая управляет рядом экземпляров SQL Server. Администратор баз данных просматривает панель мониторинга в среде Management Studio, чтобы определить степень работоспособности и использования ресурсов. Наконец, разработчик уровня данных с помощью Visual Studio создал DAC-приложение, а администратор баз данных развернул это приложение на управляемом экземпляре SQL Server.
Рисунок. Управление несколькими экземплярами SQL Server с помощью SQL Server Utility |
Развертывание UCP
При использовании программы SQL Server Utility процессу развертывания UCP придается приоритетное значение. Простой способ создания и развертывания точки управления UCP обеспечивает мастер Create Utility Control Point Wizard, входящий в состав среды SSMS. Те, кто предпочитает работать со сценариями, могут создавать UCP средствами Windows PowerShell. Но вне зависимости от того, на каком методе вы остановите свой выбор, первым делом вам придется обеспечить выполнение ряда требований.
- В качестве ядра базы данных, на котором будет установлена точка UCP, необходимо использовать SQL Server 2008 R2 или более новой версии. Рекомендуется, чтобы параметры сортировки, связанные с процессором базы данных, были нечувствительны к регистру символов.
- В корпоративных сетях точки UCP должны устанавливаться на экземплярах SQL Server 2008 R2 Datacenter либо Enterprise Edition или более новой версии.
- Программа SQL Server Utility должна функционировать внутри одного домена Windows или в нескольких доменах, связанных двусторонними отношениями доверия.
- Должна быть запущена служба SQL Server Agent.
- В качестве учетной записи службы SQL Server Agent нельзя применять встроенные учетные записи, такие как Network Service. Необходимо использовать действительную учетную запись домена Windows на заданном экземпляре.
Убедившись, что указанные требования удовлетворены, откройте окно SSMS, перейдите в панель Utility Explorer и подключитесь к экземпляру базы данных SQL Server 2008 R2, на котором вы собираетесь разворачивать UCP. Если панель Utility Explorer не будет отображаться, в меню View выберите пункт Utility Explorer. Активируйте мастер Create Utility Control Point Wizard; для этого нужно выбрать значок Create Utility Control Point, расположенный на панели инструментов Utility Explorer, или перейти на вкладку Getting Started и щелкнуть на гиперссылке Create a Utility Control Point (UCP). Познакомьтесь с сообщением на странице Introduction, а затем нажмите Next, переходя к процессу создания точки UCP.
На странице Specify the Instance of SQL Server нажмите кнопку Connect и определите экземпляр SQL Server, на котором нужно создать новую точку UCP. Укажите имя, идентифицирующее UCP в сети. В рассматриваемом примере используется имя Production Utility, как показано на экране 1. Нажмите кнопку Next.
Экран 1. Определение места для создания точки UCP |
На странице Utility Collection Set Account укажите учетную запись домена Windows, которая будет использоваться в качестве записи-посредника SQL Server Agent для набора элементов сбора данных Utility Information. Альтернативный вариант: если учетная запись агента относится к домену Windows, вы можете выбрать учетную запись службы SQL Server Agent. Нажмите кнопку Next.
Просмотрите настройки на странице Summary of UCP Creation. Нажмите кнопку Next, после чего система начнет создавать точку UCP. На странице SQL Server Instance Validation познакомьтесь с результатами каждого действия, связанного с генерированием UCP, как показано на экране 2. Если то или иное действие завершается некорректно, устраните вызывающую сбой проблему и вновь запустите тест Validation. Убедившись, что все действия выполнены успешно, завершите процесс создания UCP нажатием кнопки Finish.
Экран 2. Пройдены ли проверочные испытания экземпляром SQL Server, выступающим в качестве точки UCP? |
Регистрация экземпляров SQL Server
После развертывания точки UCP настало время приступить к регистрации экземпляров SQL Server, которые станут объектами управления. Эту задачу можно выполнить посредством реализованного в среде SSMS мастера Enroll Instance Wizard или с помощью оболочки PowerShell. Если вам предстоит регистрировать множество экземпляров SQL Server, вы, возможно, выберете второй вариант, поскольку мастер не позволяет регистрировать экземпляры SQL Server группами. Обратите внимание: экземпляры SQL Server, определяемые как UCP, регистрируются автоматически в процессе создания.
Перед тем как приступать к регистрации того или иного экземпляра SQL Server, позаботьтесь о выполнении следующих условий:
- вы должны иметь права администратора на соответствующем экземпляре SQL Server;
- в качестве упомянутого экземпляра должна выступать система SQL Server 2008 R2 или более новой версии;
- используемая редакция SQL Server должна обеспечивать возможность регистрации экземпляров;
- рассматриваемый экземпляр SQL Server не должен быть зарегистрирован в какой-либо другой точке UCP;
- если рассматриваемый экземпляр SQL Server уже является точкой UCP, его регистрация невозможна;
- на экземпляре SQL Server должен быть установлен набор элементов для сбора данных служебной программы;
- функционирование набора элементов для сбора данных Utility Information на данном экземпляре SQL Server должно быть приостановлено;
- служба SQL Server Agent на указанном экземпляре должна быть запущена и настроена на автоматический запуск;
- встроенные учетные записи, такие как Network Service, не могут использоваться в качестве учетной записи-посредника SQL Server Agent;
- в качестве учетной записи-посредника SQL Server Agent должна использоваться действительная учетная запись домена Windows на указанном экземпляре.
После того как вы убедитесь, что все названные требования удовлетворены, раскройте только что созданную точку управления служебной программой в дереве Utility Explorer. Правой кнопкой мыши щелкните на узле Managed Instances и запустите мастер Enroll Instance Wizard, выбрав в раскрывающемся меню пункт Add Managed Instance. Просмотрев комментарии на странице Introduction, начните процесс регистрации с нажатия кнопки Next.
На странице Specify the Instance of SQL Server нажмите Connect и введите имя экземпляра SQL Server, который будет зарегистрирован в точке управления служебной программой. Нажмите Next.
На странице Utility Collection Set Account укажите учетную запись домена Windows, которой будете пользоваться при запуске набора элементов сбора данных Utility Information. Если же агент SQL Server использует учетную запись домена Windows, выберите учетную запись SQL Server Agent Service. Нажмите Next.
Проанализируйте данные, отображаемые на странице SQL Server Instance Validation, и удостоверьтесь, что все действия завершились успешно. Если в результате того или иного действия происходит сбой, устраните проблему и повторно проведите тест Validation. Убедившись, что все действия выполнены успешно, нажмите кнопку Finish.
На странице Summary of Instance Enrollment познакомьтесь с настройками регистрации экземпляра SQL Server и нажмите Next. На странице Enrolling the Instance of SQL Server просмотрите данные о состоянии операций по регистрации и завершите регистрацию нажатием кнопки Finish. Описанным выше способом зарегистрируйте дополнительные экземпляры SQL Server.
Работа с приложениями уровня данных
Утилита SQL Server позволяет осуществлять мониторинг работоспособности и использования ресурсов не только для управляемых экземпляров SQL Server, но и для развернутых приложений уровня данных. Администратор может просматривать метрики, связанные с файлами приложений, базами данных приложений или файлами журналов, с томами хранилищ приложений и с процессорами компьютеров. Перед тем как вы сможете просматривать данные, связанные с приложением уровня данных, это приложение должно быть развернуто на управляемом экземпляре SQL Server или зарегистрировано на таком экземпляре.
Для читателей, не знакомых с процедурами создания, развертывания и регистрации приложений DAC, ниже приводится описание базового процесса. Сначала создайте объект DAC. Эту задачу можно решить с помощью реализованного в среде Visual Studio 2010 шаблона SQL Server Data-tier Application project (который дает возможность построить объект DAC) или с использованием входящего в состав продукта SSMS мастера Extract Data-tier Application Wizard (который позволяет извлекать определение объекта DAC из существующей базы данных).
Завершив создание объекта DAC, можно приступать к развертыванию пакета DAC на управляемом экземпляре SQL Server; для этого нужно воспользоваться мастером Deploy Data-tier Application Wizard, поставляемым со средой SSMS. Мастер вызывается следующим образом: правой кнопкой мыши щелкните на узле Data-tier Applications (он расположен под папкой Management) и в открывшемся меню выберите пункт Deploy Data-tier Application. Другой вариант развертывания — зарегистрируйте объект DAC на управляемом экземпляре щелчком правой кнопкой мыши на существующей базе данных и далее выберите в меню Tasks пункт Register Data-tier Application Wizard. После успешного завершения развертывания или регистрации приложения DAC вы можете использовать его для мониторинга работоспособности и потребления ресурсов.
Мониторинг работоспособности и потребления ресурсов
Панель мониторинга Utility Explorer дает целостное представление о работоспособности ресурсов и их потреблении как управляемыми экземплярами SQL Server, так и приложениями DAC. Чтобы просмотреть панель мониторинга, достаточно щелкнуть на узле UCP в окне Utility Explorer. Сводные данные, а также детализированные представления о потреблении ресурсов отображаются на панели Utility Explorer Content, как показано на экране 3.
Экран 3. Проверка работоспособности и использования ресурсов на панели мониторинга Utility Explorer |
Данные, отображаемые на панели мониторинга, позволяют администратору составить значительно более полное представление о работоспособности и потреблении ресурсов. К примеру, познакомившись с представленными на этой панели сводными данными и сопоставив их с соответствующими графиками, а также с детализированными представлениями об использовании, вы сможете быстро установить, насколько рационально (а может быть, чрезмерно или недостаточно активно) используются процессор данного экземпляра, базы данных, тома хранилищ или процессоры компьютеров управляемых экземпляров либо приложений DAC. Возможно, что эта информация поможет вам оптимизировать процесс потребления ресурсов, что, в свою очередь, позволит снизить общую стоимость владения (total cost of ownership, TCO) инфраструктуры SQL Server.
Если вам требуется дополнительная, более подробная информация о приложениях DAC или об управляемых экземплярах SQL Server, можете щелкнуть на узле Data-tier Applications или на узле Managed Instances дерева иерархии. Допустим, вы щелкнули на узле Managed Instances. В этом случае на панели Utility Explorer Content появится список управляемых экземпляров и будут отображены ключевые метрики использования для каждого такого экземпляра, как показано на экране 4. Если вы выделите тот или иной управляемый экземпляр, то сможете увидеть подробные сведения об использовании этим экземпляром ресурсов процессора и памяти, а также детализированные сведения о политиках и свойствах. На экране 4 отображено представление Storage Utilization.
Экран 4. Проверка представления Storage Utilization для управляемого экземпляра |
Управление утилитой SQL Server Utility
Чтобы управлять настройками политик, безопасности и хранилищ данных SQL Server Utility, администратору следует обратиться к узлу Utility Administration в окне Utility Explorer. Когда вы щелкнете на этом узле, на панели Utility Explorer Content появятся вкладки Policy, Security и Warehouse.
Вкладка Policy. Используется для просмотра либо изменения настроек глобальных политик для управляемых экземпляров и объектов DAC. Кроме того, с помощью данной вкладки администратор может указать, как часто следует представлять отчеты о политиках использования. Как показано на экране 5, вкладка содержит три раздела.
Экран 5. Вкладка Policy |
- Global Policies for Data-tier Applications (глобальные политики для приложений DAC). В этом разделе администратор может просматривать или настраивать политики, определяющие утилизацию процессоров, файлового пространства, а также томов хранилищ для всех приложений DAC. Кроме того, здесь вы можете определять политику использования процессоров для упомянутых приложений. При настройке политики использования администратор задает верхний и нижний пределы. Скажем, вы можете указать, что процессор того или иного приложения DAC будет считаться перегруженным, если коэффициент его использования выше 65% и, соответственно, недогруженным — при коэффициенте ниже 10%. Вы можете в индивидуальном порядке регулировать настройки использования файлового пространства как для файла данных, так и для файла журнала.
- Global Policies for Managed Instances (глобальные политики для управляемых экземпляров). В этом разделе администратор может просматривать либо настраивать политики использования данного экземпляра, файлового пространства и томов хранилищ для всех управляемых экземпляров. Кроме того, вы можете указывать политику использования ресурсов процессоров для них. Так же как и в разделе Global Policies for Data-tier Applications, вы можете задавать верхний и нижний предел для чрезмерной и недостаточной нагрузки. Наконец, вы можете в индивидуальном порядке менять настройки использования файлового пространства как для файла данных, так и для файла журнала.
- Volatile Resource Policy Evaluation (вычисление политики для быстро изменяющихся ресурсов). Этот раздел, показанный на экране 5, содержит настройки, определяющие частоту предоставления отчетов об использовании ресурсов процессоров. После указания настроек под каждым разделом будут отображаться подробные сводные данные. К примеру, если вы установите ползунок Evaluate SQL Server Utility policies over this moving time window («Вычислять политики SQL Server Utility по истечении данного интервала времени») в положение «1 час», а ползунок Percent of SQL Server Utility policies in violation during the time window before CPU is reported as overutilized («Процент нарушенных в течение указанного интервала времени политик SQL Server Utility, по достижении которого процессор получает статус перегруженного») — в положение «20%», на экране будет отображена следующая справка: Over 1 hour, there will be 4 policy evaluations, and 1 must be in violation before the CPU is marked as overutilized («В течение часа будет выполнено 4 проверки политик, причем, для того чтобы данный процессор был помечен как перегруженный, одно из вычислений должно свидетельствовать о нарушении»).
Вкладка Security (безопасность). Используется для предоставления учетным именам, используемым для регистрации в системе, роли Utility Reader. Кроме того, вкладка Security позволяет просматривать атрибуты Utility Reader на существующих именах регистрации. Право Utility Reader дает администраторам баз данных возможность подключаться к SQL Server Utility, просматривать панели мониторинга и детализированные представления использования, а также следить за настройками, связанными с соответствующей точкой управления утилитой (UCP). Если окажется, что интересующее вас имя не существует, можете создать учетную запись нового пользователя. Для этого нужно добавить учетное имя для регистрации с помощью папки Security, доступной в обозревателе объектов Object Explorer, который поставляется со средой SSMS. По умолчанию пользователи с правами sysadmin могут осуществлять администрирование точкой UCP и всеми связанными с ней задачами управления.
Вкладка Data Warehouse (хранилище данных). Используется для просмотра и изменения настроек базы данных UMDW, связанной с точкой UCP. Администратор может, к примеру, изменить срок хранения данных для конкретной конфигурации UMDW. По умолчанию срок хранения устанавливается равным одному году, но его можно сократить до одного месяца, трех месяцев, шести месяцев или увеличить до двух лет.
С пользой потраченное время
Как вы могли убедиться, ни при настройке программы SQL Server Utility, ни в процессе ее эксплуатации каких-либо затруднений не возникает, а время, затраченное на освоение продукта, не пропало даром, ибо этот продукт может оказаться полезным при мониторинге и управлении процессом использования ресурсов всеми управляемыми экземплярами и приложениями DAC в вашей среде SQL Server. Используя данные, полученные с помощью панелей мониторинга и детализированных представлений использования, вы можете повысить уровень обслуживания и выявить возможности консолидации, которые позволят сократить общую стоимость владения системами SQL Server.
Росс Мистри (ross.mistry @ microsoft.com) — работал архитектором корпоративных решений в Microsoft, имеет звание SQL Server MVP, проектирует решения для крупных компаний в Кремниевой долине