DBAtlas · 数据库运维图谱

监控调度程序作业运行历史和失败

Oracle调度程序

命令

-- 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');

作用

从调度程序日志视图中列出每次运行的开始时间、持续时间、CPU 使用、状态和错误消息,以及正在运行的作业和作业生命周期事件。

适用场景

当夜间作业没有运行或运行时间过长时、用于作业 SLA 跟踪,以及在监控系统(OEM/Zabbix/Prometheus)中定义失败规则时。

注意

只读;无需许可。默认日志保留期为 30 天,logging_level 为 OFF 的作业不产生记录。ERRORS 列在 12c+ 中存在;在更早的版本中请检查 ADDITIONAL_INFO。在 RAC 上,RUNNING_INSTANCE 显示作业在哪个节点上运行。

在 DBAtlas 中打开 →

相关内容