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

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

Время на прочтение4 мин
Количество просмотров5.4K
Привет, Хабр! представляю вашему вниманию перевод статьи «How to use statspack instead of awr in oracle standard edition».

Как использовать 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 включает лицензию диагностического пакета, а Standart 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» не отобразилась в консоли. Это определенно Standart Edition. Ну, по крайней мере, я знаю, что я не имею права использовать его.

Когда я снова посмотрел в директорию <ORACLE_HOME>/rdbms/admin, я обнаружил, что STATSPACK все еще там, что является оригинальным инструментом сбора данных о производительности для более старых баз данных и очень похож на AWR в функциях. Лучше всего, что мы можем использовать STATSPACK в качестве замены AWR в Standart Edition без ограничений.

Установка STATSPACK


Для создания STATSPACK с запланированным заданием необходимо выполнить по крайней мере два шага.

1) Выполнить скрипт spcreate.sql
Я предлагаю вам перейти в директорию <ORACLE_HOME>/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 и одновременно сделает снимок.
Теги:
Хабы:
Всего голосов 8: ↑8 и ↓0+8
Комментарии1

Публикации

Истории

Работа

Ближайшие события

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
19 сентября
CDI Conf 2024
Москва
20 – 22 сентября
BCI Hack Moscow
Москва
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн
24 сентября
Astra DevConf 2024
МоскваОнлайн
25 сентября
Конференция Yandex Scale 2024
МоскваОнлайн
28 – 29 сентября
Конференция E-CODE
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн
3 – 18 октября
Kokoc Hackathon 2024
Онлайн