スケジューラジョブの実行履歴と失敗を監視
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がどのノードでジョブが実行されたかを示す。