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

Материал из sysadm
Перейти к навигации Перейти к поиску
Строка 16: Строка 16:
 
FULL_REPORT_PATH="${REPORT_DIR}/${REPORT_NAME}"
 
FULL_REPORT_PATH="${REPORT_DIR}/${REPORT_NAME}"
  
sqlplus -S "$DB_USER/$DB_PASS@$CONNECT_STRING" AS SYSDBA <<EOF
+
sqlplus -S / AS SYSDBA << EOF
 
SET HEAD OFF
 
SET HEAD OFF
 
SET FEEDBACK OFF
 
SET FEEDBACK OFF
Строка 27: Строка 27:
 
VAR start_snap NUMBER;
 
VAR start_snap NUMBER;
 
VAR end_snap NUMBER;
 
VAR end_snap NUMBER;
DECLARE
 
    v_start_time TIMESTAMP := SYSTIMESTAMP - INTERVAL '24' HOUR;
 
 
BEGIN
 
BEGIN
     SELECT MAX(snap_id) INTO :start_snap FROM dba_hist_snapshot WHERE begin_interval_time <= v_start_time;
+
     SELECT MAX(snap_id) INTO :start_snap FROM dba_hist_snapshot WHERE begin_interval_time <= sysdate-1;
 
     SELECT MAX(snap_id) INTO :end_snap FROM dba_hist_snapshot;
 
     SELECT MAX(snap_id) INTO :end_snap FROM dba_hist_snapshot;
 
END;
 
END;

Версия 14:06, 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 / 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;
BEGIN
    SELECT MAX(snap_id) INTO :start_snap FROM dba_hist_snapshot WHERE begin_interval_time <= sysdate-1;
    SELECT MAX(snap_id) INTO :end_snap FROM dba_hist_snapshot;
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