ADDM (Automatic Database Diagnostic Monitor): различия между версиями

Материал из sysadm
Перейти к навигации Перейти к поиску
(Новая страница: « '''Отчеты ADDM''' <pre> # отчет ADDM для одного экземпляра базы данных $ORACLE_HOME/rdbms/admin/addmrpt.sql # отчет...»)
 
Строка 11: Строка 11:
 
'''Пример bash скрипта, для генерации отчета в не интерактивном режиме (НЕ ПРОВЕРЕНО)'''
 
'''Пример bash скрипта, для генерации отчета в не интерактивном режиме (НЕ ПРОВЕРЕНО)'''
 
<pre>
 
<pre>
 +
 +
REPORT_DIR="/tmp/addm_reports"
 +
REPORT_NAME="addm_report_$(date +'%Y%m%d').html"
 +
FULL_REPORT_PATH="${REPORT_DIR}/${REPORT_NAME}"
 +
 
sqlplus -S "$DB_USER/$DB_PASS@$CONNECT_STRING" AS SYSDBA <<EOF
 
sqlplus -S "$DB_USER/$DB_PASS@$CONNECT_STRING" AS SYSDBA <<EOF
 
SET HEAD OFF
 
SET HEAD OFF
Строка 19: Строка 24:
 
SET PAGESIZE 0
 
SET PAGESIZE 0
  
-- Определяем Start ID (24 часа назад) и End ID (текущий)
+
-- определение start/end номеров снимков
 
VAR start_snap NUMBER;
 
VAR start_snap NUMBER;
 
VAR end_snap NUMBER;
 
VAR end_snap NUMBER;
Строка 31: Строка 36:
 
/
 
/
  
-- Запускаем addmrpt.sql, передавая параметры с помощью подстановок SQL*Plus (&&)
 
-- Скрипт addmrpt.sql использует ряд внутренних переменных для интерактивного ввода.
 
-- Мы заранее задаем эти переменные, чтобы он выполнялся неинтерактивно.
 
 
-- 1. Тип отчета (html/text)
 
 
DEFINE rpt_type = 'HTML'
 
DEFINE rpt_type = 'HTML'
-- 2. Имя файла отчета
 
 
DEFINE rpt_file = '${FULL_REPORT_PATH}'
 
DEFINE rpt_file = '${FULL_REPORT_PATH}'
-- 3. Начальный Snapshot ID
 
 
DEFINE begin_snap = :start_snap
 
DEFINE begin_snap = :start_snap
-- 4. Конечный Snapshot ID
 
 
DEFINE end_snap = :end_snap
 
DEFINE end_snap = :end_snap
-- 5. Имя экземпляра (оставляем пустым для текущего)
 
 
DEFINE inst_num = ''
 
DEFINE inst_num = ''
  
-- Запуск основного скрипта (символ @ указывает на выполнение внешнего файла)
 
 
@?/rdbms/admin/addmrpt.sql
 
@?/rdbms/admin/addmrpt.sql
  

Версия 13:44, 11 декабря 2025

Отчеты ADDM

# отчет ADDM для одного экземпляра базы данных
$ORACLE_HOME/rdbms/admin/addmrpt.sql

# отчет ADDM для конкретного экземпляра в среде Oracle RAC
$ORACLE_HOME/rdbms/admin/addmrpti.sql

Пример bash скрипта, для генерации отчета в не интерактивном режиме (НЕ ПРОВЕРЕНО)


REPORT_DIR="/tmp/addm_reports"
REPORT_NAME="addm_report_$(date +'%Y%m%d').html"
FULL_REPORT_PATH="${REPORT_DIR}/${REPORT_NAME}"

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/end номеров снимков
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;
/

DEFINE rpt_type = 'HTML'
DEFINE rpt_file = '${FULL_REPORT_PATH}'
DEFINE begin_snap = :start_snap
DEFINE end_snap = :end_snap
DEFINE inst_num = ''

@?/rdbms/admin/addmrpt.sql

EXIT;
EOF