Как Использовать Statspack Вместо Awr В Oracle Standard Edition

Привет, Хабр! Представляю вашему вниманию перевод статьи «Как использовать statspack вместо awr в стандартной версии Oracle» .

Как использовать STATSPACK вместо AWR в Oracle Standard Edition.



Проблема с отчетами

Я собирал данные о производительности в незнакомой базе данных.

После того, как я запустил отчет AWR, выполнив команду

  
  
  
  
  
  
  
  
  
  
   

@?/Rdbms/admin/awrrpt.sql

Получил ошибку:

WARNING (-20023) ORA-20023: Missing start and end values for time model stat: parse time elapsed WARNING (-20023) ORA-20023: Missing start and end values for time model stat: DB CPU WARNING (-20016) ORA-20016: Missing value for SGASTAT: free memory .



Возможно ли, что диагностический пакет отключен? Давайте посмотрим на параметр CONTROL_MANAGEMENT_PACK_ACCESS.

SQL> show parameter control_management_pack_access NAME TYPE ------------------------------------ ---------------------- VALUE ------------------------------ control_management_pack_access string NONE

Я немного опасался значения NONE. Поскольку Oracle Enterprise Edition включает лицензию на пакет диагностики, а Standard Edition — нет, мне не разрешили ее использовать.

Давайте посмотрим на информацию о версии.



.

SQL> select * from v$version; BANNER -------------------------------------------------------------------------------- Oracle Database 11g Release 11.1.0.6.0 - 64bit Production PL/SQL Release 11.1.0.6.0 - Production CORE 11.1.0.6.0 Production TNS for 64-bit Windows: Version 11.1.0.6.0 - Production NLSRTL Version 11.1.0.6.0 - Production

Как мы видим, «Enterprise Edition» в консоли не появилось.

Это определенно стандартное издание.

Ну, по крайней мере, я знаю, что не имею права этим пользоваться.

Когда я снова заглянул в /rdbms/admin, я обнаружил, что STATSPACK все еще существует — оригинальный инструмент сбора данных о производительности для старых баз данных, который по функциям очень похож на AWR. Самое приятное то, что мы можем использовать STATSPACK в качестве замены AWR в Standard Edition без ограничений.



Установка СТАТСПАК

Чтобы создать STATSPACK с запланированным заданием, необходимо выполнить как минимум два шага.

1) Запускаем скрипт spcreate.sql Я предлагаю вам пойти в /rdbms/admin в качестве вашего текущего рабочего каталога, поскольку все журналы времени выполнения останутся в этом каталоге.

Запустим скрипт:

SQL> @spcreate.sql;

Давайте посмотрим, что у нас есть в этом скрипте:

@@spcusr connect perfstat/&&perfstat_password @@spctab @@spcpkg

Для запуска требуется 3 основных сценария SQL. spcusr.sql

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

  • Вам необходимо запомнить пароль, если вы хотите выполнить некоторые процедуры позже.

    spctab.sql

В таблице spctab.sql будет создана 71 таблица STATSPACK.

STATS$DATABASE_INSTANCE STATS$LEVEL_DESCRIPTION STATS$SNAPSHOT STATS$DB_CACHE_ADVICE STATS$FILESTATXS STATS$TEMPSTATXS STATS$LATCH STATS$LATCH_CHILDREN STATS$LATCH_PARENT STATS$LATCH_MISSES_SUMMARY STATS$LIBRARYCACHE STATS$BUFFER_POOL_STATISTICS STATS$ROLLSTAT STATS$ROWCACHE_SUMMARY STATS$SGA STATS$SGASTAT STATS$SYSSTAT STATS$SESSTAT STATS$SYSTEM_EVENT STATS$SESSION_EVENT STATS$WAITSTAT STATS$ENQUEUE_STATISTICS STATS$SQL_SUMMARY STATS$SQLTEXT STATS$SQL_STATISTICS STATS$RESOURCE_LIMIT STATS$DLM_MISC STATS$CR_BLOCK_SERVER STATS$CURRENT_BLOCK_SERVER STATS$INSTANCE_CACHE_TRANSFER STATS$UNDOSTAT STATS$SQL_PLAN_USAGE STATS$SQL_PLAN STATS$SEG_STAT STATS$SEG_STAT_OBJ STATS$PGASTAT STATS$PARAMETER STATS$INSTANCE_RECOVERY STATS$STATSPACK_PARAMETER STATS$SHARED_POOL_ADVICE STATS$SQL_WORKAREA_HISTOGRAM STATS$PGA_TARGET_ADVICE STATS$JAVA_POOL_ADVICE STATS$THREAD STATS$FILE_HISTOGRAM STATS$EVENT_HISTOGRAM STATS$TIME_MODEL_STATNAME STATS$SYS_TIME_MODEL STATS$SESS_TIME_MODEL STATS$STREAMS_CAPTURE STATS$STREAMS_APPLY_SUM STATS$PROPAGATION_SENDER STATS$PROPAGATION_RECEIVER STATS$BUFFERED_QUEUES STATS$BUFFERED_SUBSCRIBERS STATS$RULE_SET STATS$OSSTATNAME STATS$OSSTAT STATS$PROCESS_ROLLUP STATS$PROCESS_MEMORY_ROLLUP STATS$SGA_TARGET_ADVICE STATS$STREAMS_POOL_ADVICE STATS$MUTEX_SLEEP STATS$DYNAMIC_REMASTER_STATS STATS$IOSTAT_FUNCTION_NAME STATS$IOSTAT_FUNCTION STATS$MEMORY_TARGET_ADVICE STATS$MEMORY_DYNAMIC_COMPS STATS$MEMORY_RESIZE_OPS STATS$INTERCONNECT_PINGS STATS$IDLE_EVENT

spcpkg.sql Он создаст необходимые хранимые процедуры STATSPACK для PERFSTAT. 2. Запустите скрипт spauto.sql. Этот скрипт отправит задание через указанный интервал (1 час).



SQL> @spauto.sql;

В котором он представляет следующую работу:

SQL> begin 2 select instance_number into :instno from v$instance; 3 dbms_job.submit(:jobno, 'statspack.snap;', trunc(sysdate+1/24,'HH'), 'trunc(SYSDATE+1/24,''HH'')', TRUE, :instno); 4 commit; 5 end; 6 /

А затем покажите следующее время выполнения.



SQL> select job, next_date, next_sec 2 from user_jobs 3 where job = :jobno;



Дополнительные соображения

Для более «глубокой» статистики вам необходимо изменить уровень снимка на 7 вместо уровня по умолчанию 5.

SQL> exec statspack.snap(i_snap_level => 7, i_modify_parameter => 'true');

Эта команда изменит уровень привязки на 7 и одновременно сделает снимок.

Теги: #oracle #awr #STATSPACK

Вместе с данным постом часто просматривают: