Oracle:job任务

XXL-JOB Oracle版本:任务调度平台的实践部署 在现代的IT应用架构中,分布式任务调度扮演着至关重要的角色。XXL-JOB是一个轻量级、易于使用且功能强大的分布式任务调度平台。它提供了简单而强大的调度能力,支持集群部署以及多种执行方式,如定时任务、依赖任务等。Oracle版本的主要功能包括但不限于:任务管理:支持任务的创建、修改、删除和执行。触发器管理:根据时间或事件来触发任务执行。执行日志:记录任务执行的详细过程和结果。权限控制:提供多级权限管理,确保任务调度的安全性。 阅读详情

Oracler的JOB可用来定时做一些工作,如定时执行某个存储过程以完成某些特定功能。

与触发器的区别:

JOB以时间驱动——定时;而触发器以特定对象(如表)的增删改动作驱动——触发

下面是一个创建JOB的DEMO——每天执行存储过程BMMS_PK_STATISTICS.bmmsp_report_send:

DECLARE
  X NUMBER;
BEGIN
  SYS.DBMS_JOB.SUBMIT
  ( job       => X 
   ,what      => 'BMMS_PK_STATISTICS.bmmsp_report_send;'
   ,next_date => to_date('31/05/2008 00:00:00','dd/mm/yyyy hh24:mi:ss')
   ,interval  => 'TRUNC(SYSDATE+1)'
   ,no_parse  => FALSE
  );
  SYS.DBMS_OUTPUT.PUT_LINE('Job Number is: ' || to_char(x));
  COMMIT;
END;
=====详细解说=========================

一、设置初始化参数

job_queue_processes

sql> alter system set job_queue_processes=n;(n>0)

job_queue_processes最大值为1000

查看job queue 后台进程

sql>select name,description from v$bgprocess;


二,dbms_job package 用法介绍
包含以下子过程:
Broken()过程。change()过程。Interval()过程。Isubmit()过程。

Next_Date()过程。Remove()过程。Run()过程。Submit()过程。

User_Export()过程。What()过程。
1、Broken()过程更新一个已提交的工作的状态,典型地是用来把一个已破工作标记为未破工作。

这个过程有三个参数:job 、broken与next_date。

PROCEDURE Broken (jobIN binary_integer,

Broken IN boolean,next_date IN date :=SYSDATE)

job参数是工作号,它在问题中唯一标识工作。broken参数指示此工作是否将标记为破——TRUE说明此工作将标记为破,而FLASE说明此工作将标记为未破。next_date参数指示在什么时候此工作将再次运行。此参数缺省值为当前日期和时间。job如果由于某种原因未能成功之行,oracle将重试16次后,还未能成功执行,将被标记为broken.重新启动状态为broken的job,有如下两种方式;a、利用dbms_job.run()立即执行该job

sql>begin

sql>dbms_job.run(:jobno) 该jobno为submit过程提交时返回的job number

sql>end;

sql>/

b、利用dbms_job.broken()重新将broken标记为false

sql>begin

sql>dbms_job.broken (:job,false,next_date)

sql>end;

sql>/


2、Change()过程用来改变指定工作的设置。这个过程有四个参数:job、what 、next_date与interval。

PROCEDURE Change (jobIN binary_integer,

What IN varchar2,next_dateIN date,interval IN varchar2)



此job参数是一个整数值,它唯一标识此工作。What参数是由此工作运行的一块PL/SQL代码块。next_date参数指示何时此工作将被执行。

interval参数指示一个工作重执行的频度。
3、Interval()过程用来显式地设置重执行一个工作之间的时间间隔数。这个过程有两个参数:job与interval。

PROCEDURE Interval (job IN binary_integer,Interval IN varchar2)

job参数标识一个特定的工作。interval参数指示一个工作重执行的频度。
4、ISubmit()过程用来用特定的工作号提交一个工作。这个过程有五个参数:job、what、next_date、interval与no_parse。

PROCEDURE ISubmit (job IN binary_ineger,What IN varchar2,

next_date IN date, intervalIN varchar2, no_parseIN booean:=FALSE)



这个过程与Submit()过程的唯一区别在于此job参数作为IN型参数传递且包括一个由开发者提供的工作号。如果提供的工作号已被使用,将产生一个错误。
5、Next_Date()过程用来显式地设定一个工作的执行时间。这个过程接收两个参数:job与next_date。

PROCEDURE Next_Date(jobIN binary_ineger,next_date IN date)



job标识一个已存在的工作。next_date参数指示了此工作应被执行的日期与时间。
6、Remove()过程来删除一个已计划运行的工作。这个过程接收一个参数:

PROCEDURE Remove(job INbinary_ineger);

job参数唯一地标识一个工作。这个参数的值是由为此工作调用Submit()过程返回的job参数的值。已正在运行的工作不能由调用过程序删除。
7、Run()过程用来立即执行一个指定的工作。这个过程只接收一个参数:

PROCEDURE Run(job IN binary_ineger)



job参数标识将被立即执行的工作。
8、使用Submit()过程,工作被正常地计划好。这个过程有五个参数:job、what、next_date、interval与no_parse。

PROCEDURE Submit ( job OUT binary_ineger,

What INvarchar2, next_date INdate, intervalINvarchar2, no_parseINbooean:=FALSE)



job参数是由Submit()过程返回的binary_ineger。这个值用来唯一标识一个工作。what参数是将被执行的PL/SQL代码块。next_date参数指识何时将运行这个工作。interval参数何时这个工作将被重执行。no_parse参数指示此工作在提交时或执行时是否应进行语法分析——TRUE

指示此PL/SQL代码在它第一次执行时应进行语法分析,而FALSE指示本PL/SQL代码应立即进行语法分析。
9、User_Export()过程返回一个命令,此命令用来安排一个存在的工作以便此工作能重新提交。此程序有两个参数:job与my_call。

PROCEDURE User_Export(job IN binary_ineger, my_call IN OUT varchar2)



job参数标识一个安排了的工作。my_call参数包含在它的当前状态重新提交此工作所需要的正文。
10、What()过程应许在工作执行时重新设置此正在运行的命令。这个过程接收两个参数:job与what。

PROCEDURE What (jobIN binary_ineger, What IN OUT varchar2)



job参数标识一个存在的工作。what参数指示将被执行的新的PL/SQL代码。
三、查看相关job信息
1、相关视图

dba_jobs

all_jobs

user_jobs

dba_jobs_running 包含正在运行job相关信息


2、查看相关信息

SQL>SELECT JOB, NEXT_DATE, NEXT_SEC, FAILURES, BROKEN

SQL>FROM DBA_JOBS;

JOB NEXT_DATE NEXT_SEC FAILURES B

------- --------- -------- -------- -

9125 01-JUN-01 00:00:00 4 N

14144 24-OCT-01 16:35:35 0 N

9127 01-JUN-01 00:00:00 16 Y

3 rows selected.

正在运行的JOB相关信息

SELECT SID, r.JOB, LOG_USER, r.THIS_DATE, r.THIS_SEC

FROM DBA_JOBS_RUNNING r, DBA_JOBS j

WHERE r.JOB = j.JOB;

SID JOB LOG_USER THIS_DATE THIS_SEC

----- ---------- ------------- --------- --------

12 14144 HR 24-OCT-94 17:21:24

25 8536 QS 24-OCT-94 16:45:12

2 rows selected.

JOB QUEUE LOCK相关信息

SELECT SID, TYPE, ID1, ID2

FROM V$LOCK

WHERE TYPE = 'JQ';

SID TY ID1 ID2

--------- -- --------- ---------

12 JQ 0 14144

1 row selected.


四、简单例子
一个简单例子:创建测试表

SQL> create table TEST(a date);表已创建。


创建一个自定义过程

SQL> create or replace procedure MYPROC as

2begin

3insert into TEST values(sysdate);

4end;

5/

过程已创建。
创建JOB

SQL> variable job1 number;

SQL>

SQL> begin

2dbms_job.submit(:job1,'MYPROC;',sysdate,'sysdate+1/1440');

--每天1440分钟,即一分钟运行test过程一次

3end;

4/

PL/SQL 过程已成功完成。

运行JOB

SQL> begin

2dbms_job.run(:job1);

3end;

4/

PL/SQL 过程已成功完成。

SQL> select to_char(a,'yyyy/mm/dd hh24:mi:ss') 时间 from TEST;

时间

-------------------

2001/01/07 23:51:21

2001/01/07 23:52:22

2001/01/07 23:53:24

删除JOB

SQL> begin

2dbms_job.remove(:job1);

3end;

4/

PL/SQL 过程已成功完成。


五、相关注意事项
1、执行dbms_job包相关过程如remove、Change、broken时,登陆的用户要同建立该JOB的用户一致

2、当执行dbms_job.change过程时,如果参数what,next_date,interval值为null,则表示原参数值不变

如:

BEGIN

DBMS_JOB.CHANGE(14144, NULL, NULL, 'SYSDATE + 3');

END;


3、如果利用database link来提交job,则该link必须包含合适的用户名和密码。

4、执行job的用户必须具有作业过程中所涉及对象的相应权限。

5、数据库在restricted mode下,不能执行job

还要注意执行象

remove     Change    broken

这些功能时登陆的用户要同建立该JOB的用户一致

kettle资源库数据字典.xls Kettle资源库数据字典明细:R_DATABASE:数据库连接信息 R_DIRECTORY:kettle程序目录 R_JOB:作业 R_JOB_ATTRIBUTE:作业属性 R_JOB_HOP:作业跳 R_JOB_NOTE:作业注解 R_JOBENTRY:作业项 R_JOBENTRY_ATTRIBUTE:作业项属性 R_JOBENTRY_COPY:拷贝的作业项 立即下载

相关推荐

深入探索前端调试神器vConsole

vConsole作为一款前端调试神器,为前端开发者提供了一个便捷的调试解决方案。通过本文的介绍和示例,相信你已经对vConsole有了更深入的了解。然而,vConsole的功能远不止于此,它还有许多高级用法和技巧等待你去发掘。讨论:你在前端开发中是如何使用vConsole的?你有没有发现vConsole的一些隐藏功能或技巧?欢迎在评论区分享你的经验和见解!💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!

一个做过前端开发的产品经理,经历过睿智产品的折磨导致脱发之后,励志要翻身"农奴"把歌唱,一边打入敌人内部一边持续提升自己,为我们广大开发同胞谋福祉,坚决抵制睿智产品折磨我们码农兄弟! 8525

trunc函数的使用

场景 oracle dbms_jobs中见到 trunc(sysdate)+1+1/(24) ,瞬间一脸懵。 是该学习的时候了。 用法 1.TRUNC(for dates)   TRUNC函数为指定元素而截去的日期值。 其具体的语法格式如下: TRUNC(date[,fmt]) 其中: date 一个日期值 fmt 日期格式,该日期将由指定的元素格式所截去。忽略它则由最近的日期截去 下面是该函数的使用情况: TRUNC(TO_DATE(‘24-Nov-1999 08:00 pm’),‘dd-mon-yy

enthan809882的博客 1万+

新手避坑指南:用COMSOL Multiphysics仿真气体放电(汤逊vs.流注)

本文详细介绍了使用COMSOL Multiphysics仿真气体放电的实战指南,涵盖汤逊理论和流注模型的实现方法。通过对比两种放电模型的关键参数和物理场配置,帮助新手避免常见错误,准确预测气体击穿过程。文章还提供了工程应用案例,如高压绝缘子设计优化,展示了仿真技术在电力设备绝缘设计中的实际价值。

weixin_28716181的博客 478

oracle执行计划remote,ORACLE执行计划(7)---采用TRUNC(SYSDATE)-1方法 无法确定分区

在看分区的执行计划当中 说明字段有各种不同的分区操作其中有两个PARTITION RANGE ITERATORPARTITION RANGE singleITERATOR的成本高于SINGLE 好像ITERATOR是跨分区,当没有跨多个分区似的还有个PARTITION RANGE ITERATOR ALL 这就是访问所有分区.不管怎么样,不太喜欢PARTITION RANGE ITERATORse...

weixin_34315264的博客 1081

[比赛]新冠期间饿了么骑士行为预估-数据理解

写在前面 饿了么的比赛的赛题数据理解。 一、骑士行为数据 courier_id 骑士id wave_index 波次index tracking_id 订单id courier_wave_start_lng 波次起始时刻骑士位置 courier_wave_...

Helslie的博客 2944

使用Qt和MX Component插件实现与菱PLC的通信

在本文中,我们介绍了如何使用Qt和MX Component插件实现与菱PLC的通信。我们首先安装和配置了MX Component插件,并在Qt项目中初始化和使用MX Component来连接、读取和写入PLC的数据。安装完成后,您需要在Qt项目中配置MX Component的路径,以便Qt可以找到所需的库文件。在本文中,我们将探讨如何使用Qt和MX Component插件来实现与菱PLC的通信。在主函数中,我们将初始化MX Component,并创建一个与PLC通信的示例。在上面的代码中,我们使用了。

TlScratch的博客 996

TRUNC(SYSDATE+1)+8.5/24 什么意思

涉及到Oracle数据库中的日期和时间计算。简而言之,这个表达式计算的是从明天开始(午夜)加上8.5小时的时间点。

weixin_41203765的博客 1165

手机端实时检测:YOLOv8n轻量化改进,骁龙865上35FPS,mAP+3.2%

YOLOv8n-Lite的改进不是简单的“砍通道、降分辨率”,而是结合手机端硬件特性(NPU加速、内存限制)和场景需求(小目标检测),通过“卷积拆分减少计算、通道瘦身适配内存、特征强化保留精度”的协同策略,在骁龙865上实现35FPS实时性与mAP+3.2%的双赢。该方案已在手机端AR应用中落地,支持实时手势识别、物体测量等功能,功耗比原始模型降低40%(连续检测1小时仅耗电12%)。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 727

在kettle资源库中找某一个表或sql在哪个job中使用的

--1.在步骤属性表r_step_attribute寻找需要查询的sql select * from r_step_attribute aa where aa.value_str like '%join ucweb_user_info%' ; ID_TRANSFORMATION 就是转换的id,VALUE_STR 字段中存放相关的sql; --2.根据转换id查询job的id se

wang12345566的博客 4384

【乐企】开票控制服务

例子:企业信息初始化。

九七的博客 456

第六部分:VTK进阶(第182章 体素化与隐式建模)

本文系统介绍了基于点云构建有符号距离场(SDF)的核心原理与VTK实现方法。主要内容包括:1)SDF的基本概念与算法原理,通过体素网格隐式表达几何表面;2)关键参数配置指南,如体素分辨率、边界范围和影响半径的选择;3)点云法向估计、SDF计算与等值面提取的完整工作流程;4)常见问题解决方案与性能优化建议。文中提供了详细的C++代码示例,展示从随机点云生成SDF并重建曲面的完整过程,特别强调了法向估计、参数调优和后处理等关键环节。该方法适用于点云表面重建、几何处理等应用场景。

仰望星空的博客 530

oracle:job 建立调度任务

<br />众所周知,一般操作系统会提供定时执行任务的方法,例如:Unix平台上提供了让系统定时执行任务的命令 Crontab。但是,对于某些需求,例如:一些对数据库表的操作,最为典型的是证券交易所每日收盘后的结算,它涉及大量的数据库表操作,如果仍然利用操作系统去定时执行,不仅需要大量的编程工作,而且还会出现用户不一致等运行错误,甚至导致程序无法执行。 <br /><br />       事实上,对于以上需求,我们可以利用数据库本身拥有的功能Job Queue(任务队列管理器)去实现。Job允许用户提前调

hjay0715的专栏 702

北斗导航 | 接收机自主完好性监测(RAIM)算法近三年研究现状总结(2022-2025)

近三年RAIM算法已从传统的单故障检测演进为多星座协同、智能融合的复杂系统,在航空、自动驾驶等安全关键领域实现规模化应用。未来需重点突破城市复杂环境适应性和标准化体系建设,推动技术从"可用"向"可信"跨越。

尘世冰封的专栏 440

oracle中job任务停用启用,Oracle案例详细分析:Job任务停止执行

CJQ0正常启动,但是Job仍然不执行。发现Oralce有这样一个Bug:1. Clear description of the problem encountered:slgcsf() / slgcs() on Solaris will stop incrementing after497 days 2 hrs 28 mins (approx) machine uptime.2. Pertine...

weixin_29585933的博客 706

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

oracle gather_stats_job,Oracle经验分享:GATHER_STATS_JOB 任务

应该有开发测试相关的兄弟常常发现,某些半夜跑的报表系统,在系统开始时候好好的,但是数据量越来越大的情况下,报表系统会越来越慢。一般我们可以理解为sql需要优化,存储需要优化等等。这里,如果我们使用的是Oracle 10G以上版本,就要小心了,有可能是Oracle自己搞的鬼。Oracle10g增加了一个新的任务,用来自动分析数据库,已增加CBO执行的正确性。这个任务就是GATHER_STATS_JO...

weixin_34024811的博客 342

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

oracle停止所有任务,Oracle案例详细分析:Job任务停止执行

)执行没有任何问题。进行恢复尝试怀疑是CJQ0进程失效,首先设置JOB_QUEUE_PROCESSES为0,Oracle会杀掉CJQ0及相应job进程:SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES = 0;等2~3分钟,重新设置:SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES = 5;此时PMON会重起CJQ0进...

weixin_30260191的博客 541

oracle 调优任务,Oracle优化:GATHER_STATS_JOB 任务详解

应该有开发测试相关的兄弟常常发现,某些半夜跑的报表系统,在系统开始时候好好的,但是数据量越来越大的情况下,报表系统会越来越慢。一般我们可以理解为sql需要优化,存储需要优化等等。这里,如果我们使用的是Oracle 10G以上版本,就要小心了,有可能是Oracle自己搞的鬼。Oracle10g增加了一个新的任务,用来自动分析数据库,已增加CBO执行的正确性。这个任务就是GATHER_STATS_JO...

weixin_36062835的博客 604

Oracle诊断案例:Job任务停止执行

  摘要:  本文通过一次Oracle Job任务异常案例诊断,分析其原因及解决过程,从内部揭示Oracle Job任务调度及内部计时机制。  问题及环境  接到研发人员报告,数据库定时任务未正常执行,导致某些操作失败。  开始介入处理该事故.  系统环境:  以下为引用的内容:SunOS DB 5.8 Generic_108528-21 sun4u sparc SUN

fjnu105022004005的专栏 483

oracle gather_stats_job,Oracle经验分享:GATHER_STATS_JOB任务

应该有开发测试相关的兄弟常常发现,某些半夜跑的报表系统,在系统开始时候好好的,但是数据量越来越大的情况下,报表系统会应该有开发测试相关的兄弟常常发现,某些半夜跑的报表系统,在系统开始时候好好的,但是数据量越来越大的情况下,报表系统会越来越慢。一般我们可以理解为sql需要优化,存储需要优化等等。这里,如果我们使用的是Oracle 10G以上版本,就要小心了,有可能是Oracle自己搞的鬼。Oracl...

weixin_39568133的博客 227

oracle9i 停止job,Oracle诊断案例:Job任务停止执行(转)

问题及环境接到研发人员报告,数据库定时任务未正常执行,导致某些操作失败。开始介入处理该事故.系统环境:SunOS DB 5.8 Generic_108528-21 sun4u sparc SUNW,Ultra-4Oracle9i Enterprise Edition Release 9.2.0.3.0 - Production解决过程首先介入检查数据库任务$ sqlplus "/ as sysdb...

weixin_32523999的博客 210

Oracle诊断案例:Job任务住手实施

根源:优快云  摘要:    本文经由历程一次Oracle Job任务异常案例诊断,阐明其缘故原由及措置奖励历程,从外部展现Oracle Job任务调剂及外部计机遇制。    效果及环境    接到研发职员讲演,数据库按时任务未正常实施,招致某些操纵失败。    发源劈脸介入措置奖励该变乱.    系统环境: SunOS DB 5.8 Generic_108528...

weixin_30556959的博客 122

Oracle DBMS_JOB:每隔特定时间执行特定任务

Oracle JOB:   一、设置初始化参数 job_queue_processes   sql> alter system set job_queue_processes=n;(n>0)   job_queue_processes最大值为1000   查看job queue 后台进程   sql>select name,description from v$bgprocess;   二、dbm

Ping的专栏 885

探索高效任务调度:xxl-job-oracle 开源项目推荐

探索高效任务调度:xxl-job-oracle 开源项目推荐 项目介绍 在现代软件开发中,任务调度是一个不可或缺的环节。无论是定时任务、批处理作业还是异步任务,都需要一个稳定、高效的任务调度系统来保证业务的顺利运行。xxl-job-oracle 是一个专为 Oracle 数据库优化的任务调度系统,基于广受欢迎的 xxl-job 框架开发。它不仅继承了 xxl-job 的强大功能,还针对 Oracl...

gitblog_00390的博客 415
上一篇: UNIX/C:core dump
下一篇: Oracle:数据库字典
prstat
博客等级 码龄19年 4粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值