ADDM (Automatic Database Diagnostic Monitor)
Версия от 13:38, 11 декабря 2025; Admin (обсуждение | вклад) (Новая страница: « '''Отчеты ADDM''' <pre> # отчет ADDM для одного экземпляра базы данных $ORACLE_HOME/rdbms/admin/addmrpt.sql # отчет...»)
Отчеты ADDM
# отчет ADDM для одного экземпляра базы данных $ORACLE_HOME/rdbms/admin/addmrpt.sql # отчет ADDM для конкретного экземпляра в среде Oracle RAC $ORACLE_HOME/rdbms/admin/addmrpti.sql
Пример bash скрипта, для генерации отчета в не интерактивном режиме (НЕ ПРОВЕРЕНО)
sqlplus -S "$DB_USER/$DB_PASS@$CONNECT_STRING" AS SYSDBA <<EOF
SET HEAD OFF
SET FEEDBACK OFF
SET TERM OFF
SET VERIFY OFF
SET LINESIZE 300
SET PAGESIZE 0
-- Определяем Start ID (24 часа назад) и End ID (текущий)
VAR start_snap NUMBER;
VAR end_snap NUMBER;
DECLARE
v_start_time TIMESTAMP := SYSTIMESTAMP - INTERVAL '24' HOUR;
v_end_time TIMESTAMP := SYSTIMESTAMP;
BEGIN
SELECT MAX(snap_id) INTO :start_snap FROM dba_hist_snapshot WHERE begin_interval_time <= v_start_time;
SELECT MAX(snap_id) INTO :end_snap FROM dba_hist_snapshot WHERE end_interval_time >= v_end_time;
END;
/
-- Запускаем addmrpt.sql, передавая параметры с помощью подстановок SQL*Plus (&&)
-- Скрипт addmrpt.sql использует ряд внутренних переменных для интерактивного ввода.
-- Мы заранее задаем эти переменные, чтобы он выполнялся неинтерактивно.
-- 1. Тип отчета (html/text)
DEFINE rpt_type = 'HTML'
-- 2. Имя файла отчета
DEFINE rpt_file = '${FULL_REPORT_PATH}'
-- 3. Начальный Snapshot ID
DEFINE begin_snap = :start_snap
-- 4. Конечный Snapshot ID
DEFINE end_snap = :end_snap
-- 5. Имя экземпляра (оставляем пустым для текущего)
DEFINE inst_num = ''
-- Запуск основного скрипта (символ @ указывает на выполнение внешнего файла)
@?/rdbms/admin/addmrpt.sql
EXIT;
EOF