从此

🏠 » 📄文章 » 内容

 欢迎来访!

Oracle 数据库定时任务 Scheduler 执行历史状态排查 甲骨文关系型数据库高级用法

🕗2026-08-30👁️0

在系统中配置了每 8 小时自动执行一次向量化的定时任务后,可以通过 Oracle Scheduler 相关视图,查看任务配置、运行状态与执行历史。

01 | 查看已创建的定时任务

下面的 SQL 可查看当前用户下任务是否启用、执行状态、任务动作、重复规则,以及最近和下一次执行时间:

 
SELECT job_name,
enabled,
state,
job_type,
job_action,
repeat_interval,
last_start_date,
last_run_duration,
next_run_date,
failure_count
FROM user_scheduler_jobs
ORDER BY job_name;
 

重点关注 enabledstatelast_start_datenext_run_date 和 failure_count,可初步判断任务是否正常调度。

02 | 查看当前正在运行的任务

如果需要确认任务是否仍在执行,可查询:

 
SELECT job_name,
running_instance,
session_id,
elapsed_time,
slave_os_process_id
FROM user_scheduler_running_jobs;
 

查询结果为空,表示当前没有正在运行的 Scheduler 任务。

03 | 查看近 7 天执行记录

任务的实际开始时间、运行时长、执行状态与错误信息,可通过执行明细查看:

 
SELECT job_name,
status,
actual_start_date,
run_duration,
additional_info,
errors
FROM user_scheduler_job_run_details
WHERE actual_start_date >= SYSTIMESTAMP - INTERVAL '7' DAY
ORDER BY actual_start_date DESC;
 

若只想查看向量化相关任务,可按任务名称过滤:

 
SELECT job_name,
status,
actual_start_date,
run_duration,
errors
FROM user_scheduler_job_run_details
WHERE UPPER(job_name) LIKE '%VECTOR%'
ORDER BY actual_start_date DESC;
 

04 | 调整每 8 小时执行的时间点

例如,任务 TK_REFRESH_VECTORS_8H 需要在每天 2 点、10 点、18 点执行,可修改其重复规则:

 
BEGIN
DBMS_SCHEDULER.SET_ATTRIBUTE(
name => 'TK_REFRESH_VECTORS_8H',
attribute => 'repeat_interval',
value => 'FREQ=DAILY;BYHOUR=2,10,18;BYMINUTE=0;BYSECOND=0'
);
END;
/
 
 

通过任务配置、运行中状态与执行历史这三类的查看,可以比较完整地知道定时向量化任务是否按预期执行。