On-Line Библиотека www.XServer.ru - учебники, книги, статьи, документация, нормативная литература.
       Главная         В избранное         Контакты        Карта сайта   
    Навигация XServer.ru






 

Версия 8.1.6: диагноз системе ставит Statspack

Владимир Пржиялковский

Диагностика работы промышленно эксплуатируемой системы Oracle является важной ответственностью АБД и служит отправной точкой для действий по настройке или переконфигурации. Если оставить в стороне существующие на рынке средства диагностики, требующие отдельных затрат на приобретение и сопровождение, то можно напомнить об издавна поставлявшимся вместе с системой средством, состоящим из двух сценариев: utlbstat.sql и utlestat.sql. В обиходе их называют часто Estat/Bstat. Они и сейчас присутствуют в каталоге $ORACLE_HOME/rdbms/admin и ими, как прежде, можно пользоваться.

Тем, кто этого не делал, можно сообщить, что они образуют пару. Сначала (рекомендуется для этого использовать время, когда система загружена работой) запускается сценарий utlbstat.sql, который создает временные таблицы и заполняет их всяческой информацией из V$-таблиц. Потом, через некоторое время (рекомендуется также выбирать его в рабочий момент) запускается utlestat.sql, создающий свои таблицы, заполняя их результатом обработки информации, полученной ранее и такой же информации, но полученной на другой момент времени. После сравнительной обработки сценарий utlestat.sql выдает результаты в файл report.txt, который может изучать администратор.

Файл report.txt содержит много разной информации о работе системы; настолько много, что для расхожего использования достаточно бывает только процентов 10 всего отчета. Такое изобилие оборачивается недостатком: в тексте отчета довольно трудно разобраться, а поясняющую документацию фирма Oracle не поставляет.

Учитывая ли указанный недостаток (вкупе с некоторыми другими) Estat/Bstat, или что-то еще, но начиная с версии сервера 8.1.6 фирма поставляет одновременно еще и другое средство под общим названием Statspack. Statspack, по большому счету, делает то же самое, что его предшественник, но, по утверждению разработчиков, представляет результаты в более понятном виде, а во-вторых, более развит по своим возможностям. Читатель в состоянии судить сам, насколько это действительно так, а также убедиться в том, что на документировании Statspack фирма Oracle, по своему обыкновению, явно сэкономила. Еще простота и большая функциональная гибкость обернулись несколько большей сложностью в употреблении.

Из чего он состоит

Statspack представляет собой набор файлов со сценариями и сопроводительной документации, располагающийся так же в $ORACLE_HOME/rdbms/admin. Ниже приводится список файлов.

Файл

Описание

Statspack.doc

Файл с текстом документации по Statspack

Statscre.sql

Сценарий создания окружения для работы Statspack. В свою очередь вызывает сценарии

  • statscursr.sql
  • statsctab.sql
  • statspack.sql,

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

Запускается от имени SYS или INTERNAL.

Statsdrp.sql

Сценарий удаления окружения для работы Statspack. (Удаляются все созданные объекты БД).

Запускается от имени SYS или INTERNAL.

Statsrep.sql

Сценарий запуска задания на подготовку сравнительного отчета (делается сравнение по двум указанным моментам времени).

Запускается от имени PERFSTAT.

Statsauto.sql

Заготовка сценария для запуска задания по автоматическому периодическому сбору статистики для Statspack.

Запускается от имени PERFSTAT.

Statsuexp.par

Пример файла параметров для программы exp, с помощью которой можно экспортировать данные пользователя PERFSTAT.

Экспорт выполняется от имени PERFSTAT.

Как с ним работать

Прежде чем работать со Statspack, нужно установить его рабочую среду. Делается это запуском сценария statscre.sql от имени пользователя SYS (маленькое упражнение по отвыканию от использования имени INTERNAL, к чему нас призывает фирма в связи с грозящей его отменой в будущих версиях). Сценарий создаст пользователя PERFSTAT и необходимые для него объекты (таблицы, пакет).

Теперь от имени PERFSTAT вы можете вызвать процедуру из созданного пакета

Exec statspack.snap; 

Процедура snap соберет статистику о состоянии системы на момент своего запуска и заполнит полученными данными таблицы Statspack. Всякий последующий вызов snap приведет к сбору и запоминанию очередного 'среза' информации о системе.

После вызова процедуры snap не менее двух раз можно попросить Statspack приготовить отчет. Для этого нужно вызвать сценарий statsrep.sql. Сценарий перечислит вам все выполненные ранее моменты сбора информации и попросит указать какую-нибудь пару. По указанной паре сценарий statsrep.sql подготовит сравнительный отчет. Его можно посмотреть простым текстовым редактором.

Сбор статистики можно автоматизировать с помощью встроенного пакета DBMS_JOB. Для облегчения жизни администратора фирма поставляет образец необходимых для этого действий в файле Statsauto.sql.

Параметры статистики

Объем собираемой при 'снятии снимка' информации может быть разным. Во-первых, есть так называемый 'уровень статистики', который может принимать значения 0, 5 или 10 (еще один намек на намерения разработчиков развивать Statspack). Чем больше уровень, тем больше собирается информации.

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

Ниже приводится сводка параметров для сбора статистики в Statspack.

Параметр

Допустимые значения

Значение по умолчанию

Смысл

I_snap_level

0, 5, 10

5

'Уровень статистики'

I_ucomment

Текст

Пусто

Комментарий для снимка

I_executions_th

Целое, >=0

50

Пороговое значение для числа выполнений SQL-запроса

I_disk_reads_th

Целое, >=0

1000

Пороговое значение для числа чтений диска при выполнении SQL-запроса

I_parse_calls_th

Целое, >=0

1000

Пороговое значение числа вызовов анализатора для SQL-запроса

I_buffer_gets_th

Целое, >=0

10000

Пороговое значение для числа чтений буфера данных при выполнении SQL-запроса

I_session_id

ID сеанса

0

Идентфикатор сеанса работы

I_modify_parameter

True, false

True

Сохранять ли параметры для будущих 'снятий снимков'

Вообще-то параметры хранятся в таблице stats$statspack_parameters, созданной для пользователя PERFSTAT. Но изменять параметры на время снятия статистики можно и, например, так:

Exec statspack.snap(i_snap_level=>10, i_modify_parameter=>'true'); 

Особенности применения

Работая (или пытаясь работать) со Statspack, нужно учесть следующее.

Во-первых, он может применяться только начиная с версии 8.1.6, так как использует некоторые представления, в более ранних версиях отсутствующие.

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



Литература по Oracle