笔者在系统中配置了每 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;重点关注 enabled、state、last_start_date、next_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;
/通过任务配置、运行中状态和执行历史这三类查询,笔者可以较完整地确认定时向量化任务是否按预期执行。
到此这篇关于查看 oracle 数据库中的定时任务执行情况的文章就介绍到这了,更多相关查看 oracle 数据库中的定时任务执行情况内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论