课 程 推 荐 我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈 入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈 虚 拟 环 境 搭 建 :👉👉 Python项目虚拟环境(超详细讲解) 👈👈 PyQt5 系 列 教 程:👉👉 Python GUI(PyQt5)教程合集 👈👈 Oracle数据库教程:👉👉 Oracle数据库教程合集 👈👈 MySQL数据库教程:👉👉 MySQL数据库教程合集 👈👈 优 质 资 源 下 载 :👉👉 资源下载合集 👈👈 优 质 教 程 推 荐:👉👉 Python爬虫从入门到入狱系列 合集 👈👈 .
DBMS_job定时任务
- DBMS_JOBS
- job的定时执行和时间间隔说明
- Oracle中DBMS\_jobs(自动任务/定时任务)运行时候一直显示正在执行1%
- DBMS_SCHEDULER
DBMS_JOBS
job的定时执行和时间间隔说明
- 间隔/interval是指上一次执行结束到下一次开始执行的时间间隔,当interval设置为null时,该job执行结束后,就被从队列中删除。假如我们需要该job周期性地执行,则要用‘sysdate+m’表示
- 每分钟执行
TRUNC(sysdate,'mi') + 1/ (24*60)
- 每小时执行
Interval => TRUNC(sysdate,'hh') + 1/ (24)
- 每天定时执行
-- 例如:每天的凌晨1点执行 TRUNC(sysdate+ 1) +1/ (24)
- 每周定时执行
-- 例如:每周一凌晨1点执行 TRUNC(next_day(sysdate,'星期一'))+1/24
- 每月定时执行
-- 例如:每月1日凌晨1点执行 TRUNC(LAST_DAY(SYSDATE))+1+1/24
- 每季度定时执行
-- 例如每季度的第一天凌晨1点执行 TRUNC(ADD_MONTHS(SYSDATE,3),'Q') + 1/24
- 每半年定时执行
-- 例如:每年7月1日和1月1日凌晨1点 ADD_MONTHS(trunc(sysdate,'yyyy'),6)+1/24
- 每年定时执行
-- 例如:每年1月1日凌晨1点执行 ADD_MONTHS(trunc(sysdate,'yyyy'),12)+1/24
- 查看任务
- 如果想查看一些脚本,处理通过打开文件夹的方式,也可以使用更方便的sql语句进行查看。
- 查询job,BROKEN为Y表示停止,,BROKEN为N表示运行中。
select * from all_jobs; --查到job的id号
- 启动job
begin-- dbms_job.run(job_id);dbms_job.run(3); end;
- 停止job
begin-- dbms_job.broken(job_id, true);dbms_job.broken(3, true); end;
- 删除任务
begin-- dbms_job.remove(job_id);dbms_job.remove(3); end;
Oracle中DBMS_jobs(自动任务/定时任务)运行时候一直显示正在执行1%
- 关于
job_queue_processes
job_queue_processes
指每个实例中job进程的最大值。这个job包括dbms_job
与dbms_scheduler_job
。这两者共享相同的job协调进程与job 执行进程job_queue_processes
设置为0,不会执行任何jobjob_queue_processes
设置成1~1000之间的值,实际的job进程数量受很多因素的影响,包括可用资源、资源管理设置,当前处于运行中job。- 运行job的总的job进程数不会超过
job_queue_processes
的设置。 job_queue_process
可以表示为oracle能够并发的job的数量,当job_queue_process
值为0时表示全部停止oracle的job
-
查询
job_queue_processes
的值- 进入PL/SQL,新建命令窗口,执行:
show parameter job;
- 进入PL/SQL,新建命令窗口,执行:
-
修改
job_queue_processes
的值- PL/SQL命令窗口,执行:
alter system set job_queue_processes = 1000;-- 1000是设置job进程的最大值
- PL/SQL命令窗口,执行:
DBMS_SCHEDULER
- Oracle 10g开始提供了一个新的
job
管理包:DBMS_SCHEDULER
- Oracle 10g引入的这个
dbms_scheduler包
,替代了之前的dbms_job
包,该包功能更强大,可以将job需要的各种资源分开再进行组合 - 1、
dbms_scheduler包
概念: “分而治之”- 替代了之前的
dbms_job
包,功能更加强大,可以将job
需要的各种资源分开再进行组合 - 核心三要素:
schedule
,program
和job
其它都是围绕它们来的 - 除了单个
job
,还能设置job组
- 替代了之前的
- 2、主要视图
- 基础信息查询
select * from dba_scheduler_programs; select * from dba_scheduler_program_args; -- 过程参数 select * from dba_scheduler_schedules; select * from dba_scheduler_jobs;
- 执行信息查询
select * from dba_scheduler_running_jobs; select * from dba_scheduler_job_log; select * from dba_scheduler_job_run_details;
- 基础信息查询
- 思维导图