SQL Server – это клиент-серверная система управления базами данных, которая лежит в основе большинства существующих программных продуктов. Наиболее популярной и распространенной СУБД такого типа считается клиент-серверная СУБД Microsoft SQL Server. Однако ее аналоги можно встретить и у других разработчиков софта: Oracle, IBM, Sybase и т.д.
Преимуществом SQL Server является то, что управление СУБД осуществляется централизованно. Это позволяет своевременно выявлять и устранять уязвимости, ошибки, попытки несанкционированного доступа. Именно поэтому клиент-серверные СУБД считаются наиболее надежными и безопасными среди существующих аналогов. Однако, чтобы ПО работало правильно, необходимо регулярно проводить мониторинг SQL Server, то есть наблюдать за основными показателями работы СУБД и их влиянием на работоспособность ПО.
Наблюдение за работой сервера проводится в первую очередь для предотвращения возможных неполадок. В процессе мониторинга оценивается производительность ПО и уровень информационной безопасности, выявляются ошибки и уязвимости. Если не проводить эту процедуру регулярно, ошибки будут накапливаться. Это неизбежно отразится на качестве работы приложения. Поэтому лучше периодически проводить диагностику СУБД в стандартных условиях, чем в срочном порядке выполнять восстановление базы данных на сервере.
Полный перечень параметров, оцениваемых в процессе диагностики, зависит от цели мониторинга. Однако есть базовый набор показателей, которые проверяют в любом случае. К ним относится состояние процессора, памяти и сетевого трафика. В зависимости от того, какие отклонения от эталона наблюдаются по этим показателям, определяется список дополнительных параметров проверки.
Обычно проверяются такие счетчики:
На основании собранных данных делается заключение о производительности СУБД, выявленных ошибках и уязвимостях. Оценивание ведется путем сравнения полученных показателей с эталоном – шаблоном параметров, при которых ПО работает правильно и без сбоев.
Администраторы баз данных проводят диагностику SQL Server с помощью встроенных инструментов и скриптов, облегчающих использование этих инструментов. Скрипты в данном случае могут быть как отдельными программами, так и программными файлами, интегрируемыми в структуру софта.
В SQL Server встроено два инструмента: Activity Monitor (монитор активности) и Data Collector (сборщик данных). С их помощью выполняются практически все задачи диагностики.
Activity Monitor – это утилита, позволяющая оценивать активность пользователей приложения или сети. Она показывает текущее состояние SQL Server, осуществляемые на момент проверки процессы и то, как они отражаются на производительности СУБД.
Activity Monitor выглядит как окно с несколькими вкладками. Администратор базы данных может открыть такие панели:
1. Overview (обзор). На этой панели демонстрируется время обработки запросов процессором, количество ожидающих запросов, количество запросов в секунду, ввод и вывод данных.
2. Processes (процессы). На этой панели отражаются все активные процессы и подробная информация по ним. В Processes также можно запустить скрипт, который автоматически анализирует выбранный процесс.
3. Resource Waits (ожидающие ресурсы). На этой панели отображается, какие ресурсы необходимы СУБД для выполнения заданных функций. В перечень ресурсов входит объем оперативной памяти и сервера, сети, компиляция и др. В этой же панели администратор базы данных может просмотреть общий и средний промежуток времени ожидания ресурсов.
4. Data File I/O (ввод-вывод данных). На этой панели отражаются все операции, связанные с внесением изменений в файлы БД, а также полная информация об этих файлах.
5. Recent Expensive Queries (последние ресурсоемкие запросы). На этой панели отражаются те запросы, которые были выполнены в течение ближайших 30 секунд, и обработка которых затребовала наибольшего числа ресурсов. В некоторых версиях SQL Server эта панель называется Activity Expensive Queries (активные ресурсоемкие запросы).
Сбор и обработка данных с помощью Activity Monitor ведется в режиме реального времени и только при условии развертывания панели. Если администратор базы данных сворачивает панель, обработка информации прекращается. При этом на экране можно развернуть все пять панелей, чтобы оценить активность пользователей по разным параметрам.
Для облегчения процесса использования Activity Monitor можно фильтровать, сортировать и менять местами столбцы с данными диагностики. Это делается с помощью компьютерной мышки прямо на развернутой панели.
Преимуществом использования Activity Monitor является то, что использование этого инструмента практически не отражается на производительности СУБД.
Что касается недостатков этого инструмента, в их число можно включить:
Из этого можно сделать вывод, что Activity Monitor – это прекрасный инструмент для проведения быстрой диагностики и поиска запросов, затратных с точки зрения потребления ресурсов.
Data Collector – это утилита, позволяющая собирать метрики производительности со всех клиентских устройств и передавать их на сервер для дальнейшей обработки. Работа Data Collector основывается на хранилище базы данных и таких компонентов программного обеспечения как Integration Services и SQL Server Agent.
Data Collector – это полная противоположность Activity Monitor. С помощью Data Collector можно определить список необходимых параметров проверки, установить интервал сбора данных, сохранять собранную информацию и использовать ее для дальнейшего анализа.
Для администраторов баз данных, которые недавно работают с SQL Server, в Data Collector есть три шаблона диагностики. В них перечисляются основные параметры, которые отражаются на производительности СУБД. Их можно дополнить с помощью встроенного API.
Перечень параметров в каждом наборе небольшой. Так, например, шаблон Disk Usage содержит показатели, идентичные по содержанию Data File I/O Activity Monitor. Данные анализа, проведенного с помощью Disk Usage, можно расширить путем просмотра отчета Disk Usage built-in в меню Data Collection. Набор Query Statistics показывает наиболее ресурсоемкие запросы, а шаблон Server Activity содержит основные параметры работы СУБД.
Преимуществом использования Data Collector является то, что сбор данных для анализа осуществляется не постоянно, а с заданной администратором базы данных периодичностью. Поэтому нагрузка сервера увеличивается только в период проверки.
В перечень недостатков Data Collector можно включить:
Так как настройка Data Collector осуществляется с помощью кодов, использовать этот инструмент для детальной диагностики могут только специалисты в области разработки софта. Кроме этого, Data Collector можно использовать только в версиях SQL Server, разработанных после 2008 года и только в ограниченном количестве редакций. Это также является недостатком данного инструмента.
Во все существующие версии SQL Server встроен такой инструмент как Transact-SQL. Это расширение, разработанное совместными усилиями Microsoft и Sybase для увеличения возможностей клиент-серверных СУБД. Использование встроенных инструментов невозможно без применения T-SQL. С его помощью собираются, рассчитываются и анализируются все параметры работоспособности СУБД. Кроме этого, T-SQL используется для настройки Data Collector и дополнения перечня параметров проверки.
Для новичков существуют готовые пакеты с наборами T-SQL скриптов. Они применяются для ускорения процедуры диагностики.
Также администраторы баз данных часто используют скрипты Brentozar. Для диагностики чаще всего применяется скрипт sp_blitz. Он автоматизирует процесс поиска ошибок и уязвимостей, а также предоставляет варианты решения выявленных проблем. Скрипты Brentozar относятся к Open Source, то есть к бесплатным программным продуктам. Как и готовые пакеты с наборами T-SQL скриптов, их можно скачать на сайтах разработчиков.
Для разработанных компанией Microsoft СУБД также используется SQL Server Management Studio – компонент ПО, автоматизирующий процесс обработки команд администратора. С помощью SSMS запускается окно Activity monitor, просматриваются параметры сервера и СУБД, оцениваются результаты диагностики. Также SSMS используется для просмотра журнала ошибок СУБД.
Функционал SSMS расширяется за счет установки сторонних коммерческих приложений и Open Source. Одним из них является бесплатный программный продукт dbForge Monitor, разработанный компанией Devart. Эта утилита упрощает процесс диагностики за счет выведения на экран всех наиболее значимых параметров: процессах, нагрузках, ресурсоемких запросах, блокировках и т.д.
Администраторы баз данных, оценивающие работу программных продуктов компании Microsoft, также часто используют:
1. Database Tuning Advisor (помощник по настройке ядра). Этот инструмент выглядит как командная строка и применяется для анализа работы T-SQL. В ответ на запрос администратора DTA показывает перечень рекомендаций, касающихся корректировки индексов.
2. Database Experimentation Assistant (помощник по экспериментам с БД). Проводит сравнительный анализ и показывает его результаты, позволяет продиагностировать работу компонентов СУБД.
3. Query Tuning Assistant (помощник по настройке запросов). Этот инструмент применяется для стабилизации работы приложений в процессе обновления ПО.
Для мониторинга SQL Server используются и другие программные продукты. Обычно софт подбирается от тех разработчиков, которые создавали СУБД. Однако в Open Source можно найти и универсальные решения. Конечный выбор инструментов мониторинга SQL Server зависит от целей проверки.
21.08.2020
Подпишитесь на нашу рассылку и получите
свод правил информационной безопасности
для сотрудников в шуточных