Привет, Хабр! Представляю вашему вниманию перевод статьи «Как использовать 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
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
-
Полани, Карл
19 Oct, 24 -
Лазер Превосходит Ювелира?
19 Oct, 24 -
Ipb 3.0 Вышел Вчера
19 Oct, 24 -
Никакого Легкомыслия В Вопросах Безопасности
19 Oct, 24 -
Трудное Детство Теперь Myspace
19 Oct, 24