阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

关于Oracle Job定时任务配置讲解

486次阅读
没有评论

共计 3215 个字符,预计需要花费 9 分钟才能阅读完成。

几天前,公司的 job 调度出现了问题,由于权限管的严,没有查看 Oracle 一些重要的数据字典,后面联系 DBA,是由于数据库切换到备机时,参数设置不对,导致 db job 没有正常调度。

今天刚好有时间,想总结下 Oracle 的定时任务,写的不好的地方,请多多指教!

–1. 先检查 oracle job 两个重要参数 job_queue_processes 和 aq_tm_processes

SQL> show parameter job_queue_processes;
NAME TYPE VALUE
———————————— ———– ——————————
job_queue_processes integer 0

SQL> show parameter aq_tm_processes;
NAME TYPE VALUE
———————————— ———– ——————————
aq_tm_processes integer 0

–2. 新建一个序列,作为数据来源

— Create sequence
create sequence s_seq
minvalue 0
maxvalue 10000
start with 1
increment by 1
order;

–3. 新建一张测试表

–create table

create table t_job(
id number,
record_time date
);

–4. 创建一个存储过程;

create or replace procedure proc_test_job as
begin
 insert into t_job
 (id,record_time)
 select s_seq.nextval,sysdate from dual;
 commit;
end proc_test_job;
/

–5. 创建一个定时任务

declare
 job_number number;
 cursor job_cursor is select * from user_jobs where what like ‘%proc_test_job%’;
begin
 for x in job_cursor loop
 job_number:=x.job;
 sys.dbms_job.remove(job_number);
 end loop;
 commit;
 — Call the procedure
 sys.dbms_job.submit(job => job_number,  –out 参数,job 编号
what => ‘proc_test_job;’, – 注意有分号
next_date => sysdate + 5/(24*60), – 下一个 5 分钟执行
interval => ‘trunc(sysdate,”mi”)+1/(24*60)’ – 每隔一分钟执行
);
commit;
end;
/

–6. 查看 job 的信息

select t.JOB, t.NEXT_DATE, t.WHAT, t.INTERVAL, t.*
 from user_jobs t
 where t.WHAT like ‘%proc_test_job%’;

关于 Oracle Job 定时任务配置讲解

–7. 设置 第 1 步中的两个参数

SQL> alter system set job_queue_processes = 10 scope = both;
System altered

SQL> alter system set aq_tm_processes = 1 scope = both;
System altered

–8. 查看 job 的信息以及目标表的数据, 从以下查看,确实是每隔 1 分中执行一次

关于 Oracle Job 定时任务配置讲解

这样就完成了一个 Oracle Job 定时任务的配置了。

在实际工作,由于业务的需要,比如公司经常做活动,那可能会经常调整 db job 调度时间。下面讲解一些在工作当中操作 job 的 sp

1. 要修改 job 的下次启动时间;

begin
 — Call the procedure
 sys.dbms_job.next_date(job => :job,    –job 是入参,对应的是 user_jobs 中的 job 字段信息
next_date => :next_date);                    –job 下次启动时间
end;

2. 要停止调度 job;

begin
 — Call the procedure
 sys.dbms_job.broken(job => :job,
 broken => broken,
 next_date => :next_date);        — next_date(指定某一时刻停止) sysdate(立刻停止)
end;

3. 删除 job

begin
 — Call the procedure
 sys.dbms_job.remove(job => :job);
end;

4. 启动 job

begin
 — Call the procedure
 sys.dbms_job.run(job => :job, force => force);
end;

5. 修改要执行的 job

begin
 — Call the procedure
 sys.dbms_job.what(job => :job,
 what => :what);
end;

–6. 修改 job 的执行间隔

begin
 — Call the procedure
 sys.dbms_job.interval(job => :job,
 interval => :interval);
end;

一些常用的时间设置

1: 每分钟执行
Interval => TRUNC(sysdate,’mi’) + 1/ (24*60) – 每分钟执行
interval => ‘sysdate+1/(24*60)’ – 每分钟执行
interval => ‘sysdate+1’ – 每天
interval => ‘sysdate+1/24’ – 每小时
interval => ‘sysdate+2/24*60’ – 每 2 分钟
interval => ‘sysdate+30/24*60*60’ – 每 30 秒
2: 每天定时执行
Interval => TRUNC(sysdate+1) – 每天凌晨 0 点执行
Interval => TRUNC(sysdate+1)+1/24 – 每天凌晨 1 点执行
Interval => TRUNC(SYSDATE+1)+(8*60+30)/(24*60) – 每天早上 8 点 30 分执行
3: 每周定时执行
Interval => TRUNC(next_day(sysdate,’ 星期一 ’))+1/24 – 每周一凌晨 1 点执行
Interval => TRUNC(next_day(sysdate,1))+2/24 – 每周一凌晨 2 点执行
4: 每月定时执行
Interval =>TTRUNC(LAST_DAY(SYSDATE)+1) – 每月 1 日凌晨 0 点执行
Interval =>TRUNC(LAST_DAY(SYSDATE))+1+1/24 – 每月 1 日凌晨 1 点执行
5: 每季度定时执行
Interval => TRUNC(ADD_MONTHS(SYSDATE,3),’q’) – 每季度的第一天凌晨 0 点执行
Interval => TRUNC(ADD_MONTHS(SYSDATE,3),’q’) + 1/24 – 每季度的第一天凌晨 1 点执行
Interval => TRUNC(ADD_MONTHS(SYSDATE+ 2/24,3),’q’)-1/24 – 每季度的最后一天的晚上 11 点执行
6: 每半年定时执行
Interval => ADD_MONTHS(trunc(sysdate,’yyyy’),6)+1/24 – 每年 7 月 1 日和 1 月 1 日凌晨 1 点
7: 每年定时执行
Interval =>ADD_MONTHS(trunc(sysdate,’yyyy’),12)+1/24 – 每年 1 月 1 日凌晨 1 点执行

更多 Oracle 相关信息见 Oracle 专题页面 https://www.linuxidc.com/topicnews.aspx?tid=12

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计3215字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19350
评论数
4
阅读量
7965242
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
升级自动部署更新SSL证书系统、申请godaddy的APIKEY

升级自动部署更新SSL证书系统、申请godaddy的APIKEY

升级自动部署更新 SSL 证书系统、申请 godaddy 的 APIKEY 公司之前花钱购买的 ssl 证书快...
CSDN,你是老太太喝粥——无齿下流!

CSDN,你是老太太喝粥——无齿下流!

CSDN,你是老太太喝粥——无齿下流! 大家好,我是星哥,今天才思枯竭,不写技术文章了!来吐槽一下 CSDN。...
自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个 AI 智能体 — 跟创业大佬对话 前言 智能体(Agent)已经成为创业者和技术人绕...
每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站 - 手机博物馆 -CHAZ 3D Experience 一句话介绍:一个用 3D 方式重温...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸

一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸

一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸 前言 作为天天跟架构图、拓扑图死磕的...
支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare 也瘫了连监控都挂,根因藏在哪? 最近两天的互联网堪称“故障...
星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛 NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手! 作为动漫爱好者,你是否还在为...
告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

  告别 Notion 焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁” 引言 在数字笔记工...
星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛 NAS 硬件 03:五盘位 +N5105+ 双网口的成品 NAS 值得入手吗 前言 大家好,我...