精华内容
下载资源
问答
  • 数据库Job定时任务

    2017-05-03 20:36:00
    数据库Job再熟悉不过了,因为经常要数据库定时的自动执行一些脚本,或做数据库备份,或做数据的提炼,或做数据库的性能优化,包括重建索引等等的工作。但是,Oracle定时器Job时间的处理上,千变万化,今天我把比较...

    数据库Job再熟悉不过了,因为经常要数据库定时的自动执行一些脚本,或做数据库备份,或做数据的提炼,或做数据库的性能优化,包括重建索引等等的工作。但是,Oracle定时器Job时间的处理上,千变万化,今天我把比较常用写法汇总如下:

    在总结之前,先把Job的参数一一说明一下:

    job参数是由Submit()过程返回的binary_ineger。这个值用来唯一标识一个工作;

    what参数是将被执行的PL/SQL代码块;

    next_date参数指识何时将运行这个工作。写Job的时候可以不指定该值;

    interval参数何时这个工作将被重执行。

    其中Interval这个值是决定Job何时,被重新执行的关键。

    例如:有存储过程 userdatacopytoeseg,需要被不同的时间间隔执行。

    declare
    jobno number;

    begin

    sys.dbms_job.submit(job => :job,
    what => 'userdatacopytoeseg;',
    next_date => to_date('04-05-2017 02:00:00', 'dd-mm-yyyy hh24:mi:ss'),
    interval => 'TRUNC(sysdate) + 1 +2 / (24)');
    commit;
    end;

    查询Job任务

    select * from DBA_JOBS

    修改进程数
    alter system set job_queue_processes=10 scope=both;
     

    1、 每分钟执行

    Interval => TRUNC(sysdate,’mi’) + 1 / (24*60)

    2、 每天定时执行

    例如:每天的凌晨2点执行

    Interval => TRUNC(sysdate) + 1 +2 / (24)

    3、 每周定时执行

    例如:每周一凌晨2点执行

    Interval => TRUNC(next_day(sysdate,2))+2/24 --星期一,一周的第二天

    4、 每月定时执行

    例如:每月1日凌晨2点执行

    Interval =>TRUNC(LAST_DAY(SYSDATE))+1+2/24

    5、 每季度定时执行

    例如每季度的第一天凌晨2点执行

    Interval => TRUNC(ADD_MONTHS(SYSDATE,3),'Q') + 2/24

    6、 每半年定时执行

    例如:每年7月1日和1月1日凌晨2点

    Interval => ADD_MONTHS(trunc(sysdate,'yyyy'),6)+2/24

    7、 每年定时执行

    例如:每年1月1日凌晨2点执行

    Interval =>ADD_MONTHS(trunc(sysdate,'yyyy'),12)+2/24

    当然上面罗列不可能照顾到方方面面,但是稍微变化一下,就能衍生出无数的例子,聪明的你一定会的吧,我这里就不多罗嗦了。

    转载于:https://www.cnblogs.com/shangshen/p/6803762.html

    展开全文
  • oracle数据库job每隔固定时间执行内容,详细介绍和使用
  • oracle数据库job的创建和使用oracle中job的作用准备数据库表准备存储过程创建job查看job删除job oracle中job的作用 oracle中的job主要用来运行一些定时任务,如每天凌晨00:00在数据库表中新增一条数据。job的运行,...

    oracle中job的作用

    oracle中的job主要用来运行一些定时任务,如每天凌晨00:00在数据库表中新增一条数据。job的运行,依赖存储过程。

    准备数据库表

    准备一张数据库表(mytest)。
    在这里插入图片描述
    在这里插入图片描述

    准备存储过程

    准备一个存储过程(myproc),存储过程实现对数据库表新增一条记录。

    create or replace procedure myproc is
    begin
      insert into mytest(id,name) values(1,'张三');
    end myproc;
    
    

    创建job

    创建一个job,可以通过oracle代码或PL/SQL可视化界面新建,创建成功后,数据库表mytest中将会每分钟新增一条数据。

    /*创建job示例*/
    declare job_n number;
    begin
      dbms_job.submit(job_n,'MYPROC;',sysdate,'TRUNC(sysdate,''mi'')+1/(24*60)');
      commit;
    end;
    

    在这里插入图片描述
    其中:

    1. job_n为job的编号。
    2. MYPROC为存储过程名称。
    3. TRUNC作为为执行时间间隔函数,这里为1分钟。

    查看job

    查看job,可以通过oracle代码或者PL/SQL中DBMS_Jobs栏下查找。

    /*查看job*/
    select * from dba_jobs s;
    

    在这里插入图片描述
    在这里插入图片描述

    删除job

    删除job可通过代码删除或PL/SQL的删除功能删除。

    /*删除job*/
    begin
      dbms_job.remove(4);
      commit;
    end;
    

    其中删除job是通过job的编号来删除的,这里删除的是编号为4的job。

    展开全文
  • 数据库Job 定时器

    千次阅读 2011-03-14 10:44:00
    <br />对于DBA来说,数据库Job再熟悉不过了,因为经常要数据库定时的自动执行一些脚本,或做数据库备份,或做数据的提炼,或做数据库的性能优化,包括重建索引等等的工作。但是,Oracle定时器Job时间的处理上...

    对于DBA来说,数据库Job再熟悉不过了,因为经常要数据库定时的自动执行一些脚本,或做数据库备份,或做数据的提炼,或做数据库的性能优化,包括重建索引等等的工作。但是,Oracle定时器Job时间的处理上,千变万化,今天我把比较常用写法汇总如下: 

     

    在总结之前,先把Job的参数一一说明一下: 

     

    job参数是由Submit()过程返回的binary_ineger。这个值用来唯一标识一个工作; 

     

    what参数是将被执行的PL/SQL代码块; 

     

    next_date参数指识何时将运行这个工作。写Job的时候可以不指定该值; 

     

    interval参数何时这个工作将被重执行。 

     

    其中Interval这个值是决定Job何时,被重新执行的关键。 

     

    例如:有存储过程 p_dosomethings,需要被不同的时间间隔执行。 

     

    1declare   

    2  jobno number;   

    3begin   

    4  dbms_job.submit( 

    5    jobno, 

    6    'p_dosomething;',  --what 

    7    to_date('20090101020000','yyyy-mm-dd hh24:mi:ss'),--next_date,可以不填 

    8    'Interval时间字符串'--interval,关键设置 

    9  );   

    10  commit;   

    11end; 

    12 

     

     

     

    1、 每分钟执行 

     

    Interval => TRUNC(sysdate,’mi’) + 1 / (24*60) 

     

    2、 每天定时执行 

     

    例如:每天的凌晨2点执行 

     

    Interval => TRUNC(sysdate) + 1 +2 / (24) 

     

    3、 每周定时执行 

     

    例如:每周一凌晨2点执行 

     

    Interval => TRUNC(next_day(sysdate,2))+2/24 --星期一,一周的第二天 

     

    4、 每月定时执行 

     

    例如:每月1日凌晨2点执行 

     

    Interval =>TRUNC(LAST_DAY(SYSDATE))+1+2/24 

     

    5、 每季度定时执行 

     

    例如每季度的第一天凌晨2点执行 

     

    Interval => TRUNC(ADD_MONTHS(SYSDATE,3),'Q') + 2/24 

     

    6、 每半年定时执行 

     

    例如:每年7月1日和1月1日凌晨2点 

     

    Interval => ADD_MONTHS(trunc(sysdate,'yyyy'),6)+2/24 

     

    7、 每年定时执行 

     

    例如:每年1月1日凌晨2点执行 

     

    Interval =>ADD_MONTHS(trunc(sysdate,'yyyy'),12)+2/24 

     

    当然上面罗列不可能照顾到方方面面,但是稍微变化一下,就能衍生出无数的例子,聪明的你一定会的吧,我这里就不多罗嗦了。 

     

     

    转摘请注明:博客园一条辉的博客(liunx.cnblogs.com) 

     

    补充: 

    描述                    INTERVAL参数值 

    每天午夜12点            'TRUNC(SYSDATE + 1)' 

    每天早上8点30分         'TRUNC(SYSDATE + 1) + (8*60+30)/(24*60)' 

    每星期二中午12点         'NEXT_DAY(TRUNC(SYSDATE ), ''TUESDAY'' ) + 12/24' 

    每个月第一天的午夜12点    'TRUNC(LAST_DAY(SYSDATE ) + 1)' 

    每个季度最后一天的晚上11点 'TRUNC(ADD_MONTHS(SYSDATE + 2/24, 3 ), 'Q' ) -1/24' 

    每星期六和日早上6点10分    'TRUNC(LEAST(NEXT_DAY(SYSDATE, ''SATURDAY"), NEXT_DAY(SYSDATE, "SUNDAY"))) + (6×60+10)/(24×60)' 

     

    select   *   from   user_jobs 

    查询作业记录 

     

     

    1.确保Oracle的工作模式允许启动任务队列管理器 

    Oracle定时执行“Job Queue”的后台程序是SNP进程,而要启动SNP进程,首先要确保整个系统的模式是可以启动SNP进程的,这需要以DBA的身份去执行如下命令: 

    svrmgrl>; alter system enable restricted session; 

    或sql>; alter system disenable restricted session; 

    利用如上命令更改系统的会话方式为disenable restricted,为SNP的启动创造条件。 

     

     

     

    2.确保Oracle的系统已经配置了任务队列管理器的启动参数 

    SNP的启动参数位于Oracle的初始化文件中,该文件放在$ORACLE_HOME/dbs路径下,如果Oracle的SID是myora8的话,则初始化文件就是initmyora8.ora,在文件中对SNP启动参数的描述部分如下: 

    job_queue_process=n 

    job_queue_interval=N 

    第一行定义SNP进程的启动个数为n。系统缺省值为0,正常定义范围为0~36,根据任务的多少,可以配置不同的数值。 

    第二行定义系统每隔N秒唤醒该进程一次。系统缺省值为60秒,正常范围为1~3600秒。事实上,该进程执行完当前任务后,就进入睡眠状态,睡眠一段时间后,由系统的总控负责将其唤醒。 

    如果该文件中没有上面两行,请按照如上配置添加。配置完成后,需要重新启动数据库,使其生效。注意:如果任务要求执行的间隔很短的话,N的配置也要相应地小一点。 

     

     

    3.将任务加入到数据库的任务队列中 

    调用Oracle的dbms_job包中的存储过程,将任务加入到任务队列中: 

    dbms_job.submit( job out binary_integer, 

    what       in   archar2, 

    next_date     in   date, 

    interval     in   varchar2, 

    no_parse     in   boolean) 

    其中: 

    ●job:输出变量,是此任务在任务队列中的编号; 

    ●what:执行的任务的名称及其输入参数; 

    ●next_date:任务执行的时间; 

    ●interval:任务执行的时间间隔。 

    下面详细讨论一下dbms_job.submit中的参数interval。严格地讲,interval是指上一次执行结束到下一次开始执行的时间间隔,当interval设置为null时,该job执行结束后,就被从队列中删除。假如我们需要该job周期性地执行,则要用‘sysdate+m’表示。  

    将任务加入到任务队列之前,要确定执行任务的数据库用户,若用户是scott, 则需要确保该用户拥有执行包dbms_job的权限;若没有,需要以DBA的身份将权利授予scott用户: 

    svrmgrl>; grant execute on dbms_job to scott; 

     

     

     

    4.将要执行的任务写成存储过程或其他的数据库可执行的pl/sql程序段 

    例如,我们已经建立了一个存储过程,其名称为my_job,在sql/plus中以scott用户身份登录,执行如下命令: 

    sql>; variable n number; 

    sql>; begin 

    dbms_job.submit(:n‘my_job;’,sysdate, 

    ‘sysdate+1/360’); 

    commit; 

    end; 

    系统提示执行成功。 

    Sql>; print :n; 

    系统打印此任务的编号,例如结果为300。 

    如上,我们创建了一个每隔4分钟执行一次的任务号为300的任务。可以通过Oracle提供的数据字典user_jobs察看该任务的执行情况: 

    sql>; select job,next_date,next_sec,failures,broken from user_jobs; 

    执行结果如下: 

    job next_date next_sec failures broken 

    300 2000/10/10 11:45:15 0 N 

    这表示任务号为300的任务,下一次将在2000/10/10 11:45:15执行,此任务的执行失败记录为0次。注意:当执行job出现错误时,Oracle将其记录在日志里,失败次数每次自动加1。当执行失败次数达到16时,Oracle就将该job标志为broken。此后,Oracle不再继续执行它,直到用户调用过程dbms_job.broken,重新设置为not broken,或强制调用dbms_job.run来重新执行它。 

    除了以上我们讨论的submit存储过程之外,Oracle还提供了其他许多存储过程来操作任务。例如:dbms_job.change 、 dbms_job.what、dbms_job.interval可以用来修改提交的任务。要想删除该任务,只需运行dbms_job.remove(n)即可,其中n为任务号。 

     

     

     

    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ylqmf/archive/2010/01/13/5185595.aspx

    展开全文
  • oracle 查询数据库job的具体内容 执行时间 编号等

    首先给大家分享一个巨牛巨牛的人工智能教程,是我无意中发现的。教程不仅零基础,通俗易懂,而且非常风趣幽默,还时不时有内涵段子,像看小说一样,哈哈~我正在学习中,觉得太牛了,所以分享给大家!点这里可以跳转到教程

                   

    select job,what from user_jobs

     

    select * from user_jobs

     

     

     

    select * from dba_jobs

               

    浏览人工智能教程

    展开全文
  • Oracle数据库Job应用

    2019-05-25 13:34:56
    目前Oracle数据库设置定时任务job调度一般有两种方式,分别是dbms_scheduler创建job调度和dbms_job创建job调度。dbms_scheduler创建job调度是在10g以后才有的,甲骨文公司为了用来替换dbms_job而提供了更强大的功能...
  • 数据库job执行失败

    2019-01-18 11:20:32
    job可以调用存储过程完成自己想达到的目的 实验:通过job实现每一分钟插入一个数据 1、创建用户 create user dbmonitor identified by oracle; grant dba to dbmonitor; 2、创建测试表 conn dbmonitor/oracle create...
  • 为了更方便的监控数据库的运行状态,把数据库JOB的运行状态收集到一个表中,为了实现上面的功能,我们定义两个表:check_job,job_detailcheck_job表用于存储JOB的运行状态job_detail表用于存储JO...
  • oracle 数据库job 创建

    2015-12-28 09:55:45
    用于安排和管理作业队列,通过使用作业,可以使ORACLE数据库定期执行特定的任务。 一、dbms_job涉及到的知识点 1、创建job: variable jobno number; dbms_job.submit(:jobno, —-job号 'your_procedure;',—-执行...
  • Oralce数据库JOB应用

    2018-09-27 11:41:51
    select * from dba_jobs; select * from user_jobs; select * from dba_jobs_running; declare   VNO INT;... --创建JOB  --每分钟执行一次  Select Count(1) Into v_Ret From user_jobs Whe...
  • 在一次失败的 'Shutdown Immediate'之后,数据库job 不能运行。 参考原文:Database Jobs Do Not Run After a Failed 'Shutdown Immediate' (Doc ID 434690.1) 适用于:Oracle Server - Enterprise Edition - ...
  • DM数据库JOB配置手顺

    2020-11-28 17:26:53
    初始化环境 SP_INIT_JOB_SYS(1); 创建操作员:sp_create_operator(‘opr1’,1,’’,‘1.1.1.1’); –查看:select * from sysjob.sysoperators; –修改操作员:sp_alter_operator(‘opr1’,1,‘opr1@dm.com’,‘1.1....
  • 查看oracle数据库job及会话信息

    千次阅读 2019-03-13 19:39:10
    查看所有jobselect from dba_jobs;查看正在运行的jobselect from dba_jobs_running; select job,log_user,priv_user,schema_user,BROKEN from ...查看数据库建立的回话情况select sid,serial#,username,program,mach...
  • 数据库job执行问题

    2016-09-09 11:38:58
    设置的每小时执行一次的job去跑存储过程,发现6月份数据还是正常的,789三个月每月1号只有23点数据,之前23个小时的数据没有插入,也就是说job没有执行,存储过程和job没有修改过,为什么会出现这种情况,有什么解决...
  • 常要oracle数据库定时的自动执行一些脚本,或做数据库备份,或做数据的提炼,或做数据库的性能优化,包括重建索引等等的工作,这时需要用到一个函数dbms_job.submit,来完成Oracle定时器Job时间的处理上。使用dbms_...
  • 要修改某个JOB的执行情况,没有JOB的所属用户,怎么办? 用 dbms_ijob这个系统包(用户有执行权限)   执行下面脚本即可,执行前需要修改一下job号和下次执行时间这两个参数。 BEGIN  sys.Dbms_Ijob.next_...
  • 他们说改ALTER SYSTEM SET JOB_QUEUE_PROCESSES = 0; 但是我是新手,不知道在哪,怎么改。能写详细一点么?
  • 一个插数据的存储过程需要传入两个参数开始时间和结束时间, create or replace procedure p_oper_collect( begintime in date, ...现在想用job调用这个过程,怎么搞,过程中的参数再job中应该怎么赋值.
  • oracle数据库JOB方式执行任务

    千次阅读 2015-10-21 17:06:15
    在执行一些数据库操作的时候,有的任务比较复杂,需要花费数个小时的时间。直接执行的话,有如果出现网络中断或者VPN 断掉时,往往会导致前功尽弃,有事不得不花费大量的时间在旁边进行监控。 而采用JOB方式的话,...
  • PlSqlDev操作job 创建job 1、选择job文件夹,右键 2、点击新建 3、对应填写完成,可以点击“查看SQL”查看sql语句,确定无误后,点击“应用”即创建完成 4、此时,job文件夹下对应job创建完成,...
  • 由于官方文档上没有找到相关的说明,所以这里进行了如下测试,为了找到oracle数据库job 失败后重试时间的规律。
  • 在一次失败的 'Shutdown Immediate'之后,数据库job 不能运行。
  • 昨天接到客户电话,客户表示数据库中的job next_date小于
  • 数据库job 不能执行。 參考原文: Database Jobs Do Not Run After a Failed 'Shutdown Immediate' (Doc ID 434690.1) 适用于: Oracle Server - Enterprise Edition - Version 9.2.0...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,187
精华内容 2,474
关键字:

数据库job