|
|
|||||||||||||||||||||||||||||
|
Диагноз системе ставит StatspackИсточник: Interface Ltd Владимир Пржиялковский, преподаватель УКЦ Interface Ltd.
Диагностика работы промышленно эксплуатируемой системы 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. Уже в версии 8.1.7 Statspack оказался несколько реорганизован и файлы переименованы, что безусловно есть проявление поспешности некоторых решений фирмы Oracle и, соответственно, их "сыроватости" - обычная практика для нынешнего рынка ! Список файлов приводится ниже.
Как с ним работать Несмотря на такое множество файлов, регулярная работа со Statspack сведется для вас только к вызову двух из них - spcreate.sql и spreport.sql (statscre.sql и statsrep.sql), а также к многократному вызову одной процедуры в промежутке. Прежде чем работать со Statspack, нужно установить его рабочую среду. Делается это запуском сценария spcreate.sql (statscre.sql) от имени пользователя SYS (маленькое упражнение по отвыканию от использования имени INTERNAL, к чему нас призывает фирма в связи с грозящей его отменой в будущих версиях). Сценарий создаст пользователя PERFSTAT и необходимые для него объекты (таблицы, пакет). Теперь от имени PERFSTAT вы можете вызвать процедуру из созданного пакета Exec statspack.snap; Процедура snap соберет статистику о состоянии системы на момент своего запуска и заполнит полученными данными таблицы Statspack. Всякий последующий вызов snap приведет к сбору и запоминанию очередного "среза" информации о системе. После вызова процедуры snap не менее двух раз можно попросить Statspack приготовить отчет. Для этого нужно вызвать сценарий spreport.sql (statsrep.sql). Сценарий перечислит вам все выполненные ранее моменты сбора информации и попросит указать какую-нибудь пару. По указанной паре сценарий spreport.sql (statsrep.sql) подготовит сравнительный отчет. Его можно посмотреть простым текстовым редактором. Сбор статистики можно автоматизировать с помощью встроенного пакета DBMS_JOB. Для облегчения жизни администратора фирма поставляет образец необходимых для этого действий в файле spauto.sql (statsauto.sql). Параметры статистики Объем собираемой при "снятии снимка" информации может быть разным. Во-первых, есть так называемый "уровень статистики", который может принимать значения 0, 5 или 10 (еще один намек на намерения разработчиков развивать Statspack). Чем больше уровень, тем больше собирается информации. Во-вторых, помимо этого имеется еще пять параметров, которые задают полноту статистики. Четыре параметра задают пороговые значения, так что Statspack будет помещать в отчет информацию обо всех превышениях этих значений. Еще один параметр указывает, будут ли данные сниматься в пределах одного конкретного сеанса, или же всех сеансов сразу. Ниже приводится сводка параметров для сбора статистики в Statspack.
Вообще-то параметры хранятся в таблице stats$statspack_parameters, созданной для пользователя PERFSTAT. Но изменять параметры на время снятия статистики можно и, например, так: Exec statspack.snap(i_snap_level=>10, i_modify_parameter=>’true’); Особенности употребления Работая (или пытаясь работать) со Statspack, нужно учесть следующее. Во-первых, он может применяться только начиная с версии 8.1.6, так как использует некоторые представления (views), в более ранних версиях отсутствующие. Во-вторых, одна из таблиц, которую заводит Statspack, совпадает по имени с таблицей из Estat/Bstat. По этой причине совместно применять оба средства следует с предосторожностью. Правила соблюдения предосторожности очевидны и весьма просты, а вот последствия от их несоблюдения могут вызвать у администратора недоумение.
|
|