Surveiller l'historique d'exécution et les échecs des jobs du scheduler
OracleSchedulerCommande
-- 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');Ce que fait la commande
Liste, depuis les vues de journal du scheduler, l'heure de début, la durée, l'utilisation CPU, l'état et le message d'erreur de chaque exécution, ainsi que les jobs en cours et les événements du cycle de vie des jobs.
Quand l'utiliser
Lorsqu'un job nocturne ne s'est pas exécuté ou a duré trop longtemps, pour le suivi des SLA des jobs, et lors de la définition de règles d'échec dans un système de supervision (OEM/Zabbix/Prometheus).
Attention
Lecture seule ; aucune licence requise. La rétention par défaut des journaux est de 30 jours, et les jobs avec logging_level OFF ne produisent aucun enregistrement. La colonne ERRORS existe en 12c+ ; dans les versions plus anciennes, consultez ADDITIONAL_INFO. En RAC, RUNNING_INSTANCE indique quel nœud a exécuté le job.