DBAtlas · 데이터베이스 운영 아틀라스

스케줄러 job 실행 이력 및 실패 모니터링

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 사용량, 상태, 오류 메시지와 실행 중인 job, job 수명 주기 이벤트를 나열한다.

사용 시점

야간 job이 실행되지 않았거나 오래 걸렸을 때, job SLA 추적, 모니터링 시스템(OEM/Zabbix/Prometheus)에 실패 규칙을 정의할 때.

주의

읽기 전용이며 라이선스가 필요 없다. 기본 로그 보존 기간은 30일이며 logging_level이 OFF인 job은 레코드를 남기지 않는다. ERRORS 컬럼은 12c+에 있으며 이전 릴리스에서는 ADDITIONAL_INFO를 확인한다. RAC에서는 RUNNING_INSTANCE가 job을 실행한 노드를 보여 준다.

DBAtlas에서 열기 →

관련 항목