DBAtlas · Atlas de operaciones de bases de datos

Monitorear el historial de ejecuciones y los fallos de los jobs del scheduler

OracleScheduler

Comando

-- 1) Recent runs: duration, CPU, error code and message
SELECT owner, job_name, status, error#,
       TO_CHAR(actual_start_date,'YYYY-MM-DD HH24:MI:SS') AS started,
       run_duration, cpu_used,
       SUBSTR(additional_info, 1, 200) AS info
FROM   dba_scheduler_job_run_details
WHERE  owner = 'CUSTOMER_APP'
ORDER  BY actual_start_date DESC
FETCH FIRST 20 ROWS ONLY;

-- 2) Failures in the last 24 hours (whole DB):
SELECT owner, job_name, error#, actual_start_date, SUBSTR(errors, 1, 300) AS errors
FROM   dba_scheduler_job_run_details
WHERE  status <> 'SUCCEEDED'
  AND  log_date > SYSTIMESTAMP - INTERVAL '1' DAY
ORDER  BY log_date DESC;

-- 3) Currently running:
SELECT owner, job_name, session_id, running_instance, elapsed_time, cpu_used
FROM   dba_scheduler_running_jobs;

-- 4) Lifecycle events (ENABLE/DISABLE/RUN/STOP...):
SELECT log_date, owner, job_name, operation, status
FROM   dba_scheduler_job_log
WHERE  owner = 'CUSTOMER_APP'
ORDER  BY log_date DESC
FETCH FIRST 20 ROWS ONLY;

-- Log retention (days): EXEC DBMS_SCHEDULER.SET_SCHEDULER_ATTRIBUTE('log_history', '30');

Qué hace

Lista, a partir de las vistas de log del scheduler, la hora de inicio, la duración, el uso de CPU, el estado y el mensaje de error de cada ejecución, además de los jobs en ejecución y los eventos del ciclo de vida de los jobs.

Cuándo usarlo

Cuando un job nocturno no se ejecutó o tardó demasiado, para el seguimiento del SLA de los jobs y al definir reglas de fallo en un sistema de monitoreo (OEM/Zabbix/Prometheus).

Precaución

Solo lectura; no requiere licencia. La retención de log por defecto es de 30 días, y los jobs con logging_level OFF no generan registros. La columna ERRORS existe en 12c+; en versiones anteriores revise ADDITIONAL_INFO. En RAC, RUNNING_INSTANCE muestra qué nodo ejecutó el job.

Abrir en DBAtlas →

Relacionado