精华内容
下载资源
问答
  • 动态修改oracle jobjob在指定时间执行 PROCEDURE Wsp_Call_MillAcident (  an_acidentId IN VARCHAR2,--发生事故的ID值为字符串类型  at_acidentime IN VA

    动态修改oracle job 让job在指定时间执行

    PROCEDURE Wsp_Call_MillAcident (
                                       an_acidentId  IN VARCHAR2,--发生事故的ID值为字符串类型
                                            at_acidentime IN VARCHAR2,--发生事故的时间精确到秒(YYYY-MM-DD HH24:MI:SS)
                                       an_preSeconds IN NUMBER,--发生事故前n秒为复数
                                            an_aftSeconds IN NUMBER--发生事故后n秒
                                       )
       AS
         strSql    varchar2(2000);
         startTime varchar2(30);
         endTime   varchar2(30);
         calltime  varchar2(30);
         acidenttime date;
         ln_preSeconds NUMBER;
         ln_aftSeconds NUMBER;
       BEGIN
          if (an_acidentId is null) then
              RETURN;
          end if;
          if (at_acidentime is null) then
             acidenttime:=sysdate;
          else
             acidenttime:=to_date(at_acidentime,'YYYY-MM-DD HH24:MI:SS');
          end if;
          if ( an_preSeconds is null ) then
             ln_preSeconds :=ACIDENT_PRE_SECONDS;
           else
             ln_preSeconds:=an_preSeconds;
          end if;
          if ( an_aftSeconds is null ) then
             ln_aftSeconds :=ACIDENT_AFT_SECONDS;
           else
             ln_aftSeconds :=an_aftSeconds;
          end if;
          
          --计算事故发生时间at_acidentime之前an_preSeconds秒的时间
          startTime :=fc_getnextsecondstime(acidenttime,ln_preSeconds); --样式'yyyy-mm-dd hh24:mi:ss'
          --计算事故发生时间at_acidentime之后an_aftSecends秒的时间
          endTime   :=fc_getnextsecondstime(acidenttime,ln_aftSeconds); --样式'yyyy-mm-dd hh24:mi:ss'
          --计算作业调用时间与endtime相同
          calltime :=endTime || ' +8:00'; --样式'2008-07-10 10:01:00 +8:00'
       
          --构造作业执行程序,将各遥测表中按以上两个计算出来的时间取值,注入到事故追忆历史表
          
          strSql :='begin 
                     insert into ACIDNT_RETROS_HIS( ID, POINT_ID, POINT_IDENTIFIER, POINT_VALUE, GET_TIME, POINT_TYPE, ACCIDENT_ID)
                     select t1.ID || systimestamp, t1.POINT_ID, t1.POINT_IDENTIFIER,t1.POINT_VALUE,t1.GET_TIME,t1.POINT_TYPE, '|| an_acidentId ||' from ACIDNT_RETROS_TEMP t1;  
                     commit;  
                    end;';
           --dbms_output.put_line(startTime);
           --dbms_output.put_line(endTime);
           dbms_output.put_line(calltime);
           dbms_output.put_line(strSql);
           
           --修改作业调用属性的job_type
           dbms_scheduler.set_attribute( name => 'WINDPOWER.WIND_JOB_SGZY', attribute => 'job_type', value => 'PLSQL_BLOCK'); 
           --修改作业调用属性的job_action
           dbms_scheduler.set_attribute( name => 'WINDPOWER.WIND_JOB_SGZY', attribute => 'job_action', value => strSql );   
           --修改作业调用调度属性的start_date    
           dbms_scheduler.set_attribute( 
            name => 'WINDPOWER.WIND_JOB_SGZY', 
            attribute => 'start_date', value => to_timestamp_tz(calltime, 'YYYY-MM-DD HH24:MI:SS TZH:TZM')); 
            --修改作业调用属性使其可用
      dbms_scheduler.enable( '"WINDPOWER"."WIND_JOB_SGZY"' ); 
       END;

    http://topic.csdn.net/u/20080827/09/f119d3bb-0df6-449c-9d1a-4c9e15f22f6e.html

    展开全文
  • 修改Oracle自动统计Job的运行时间

    千次阅读 2014-07-24 10:12:17
    修改Oracle10g、11g系统自动统计Job的运行时间属性 Oracle 10g和11g,都有自动收集数据库统计信息的任务(10G和11G的JOB名不同),但是任务的执行时间可能与我们期望的不同,比如:周末两个全天都要运行,会影响系统性能...

    最近在研究分析一个oracle 后台job运行一半,导致数据不一致的问题,其中job的运行时间查询,修改是基本知识,特收藏此贴,方法查询。

    资料来源:http://foxmile.blog.163.com/blog/static/81169805201141210235763/



    修改Oracle10g、11g系统自动统计Job的运行时间属性

    Oracle 10g和11g,都有自动收集数据库统计信息的任务(10G和11G的JOB名不同),但是任务的执行时间可能与我们期望的不同,比如:周末两个全天都要运行,会影响系统性能,下面的方式可修改:

    一.修改10g自动统计的时间属性

    --GATHER_STATS_JOB

    --查看SCHEDULER_JOBS
    select job_name from dba_scheduler_running_jobs;
    SELECT job_name , SCHEDULE_NAME FROM DBA_SCHEDULER_JOBS;

    select * from dba_scheduler_wingroup_members where window_group_name='MAINTENANCE_WINDOW_GROUP';
    /*     WINDOW_GROUP_NAME        WINDOW_NAME
    1        MAINTENANCE_WINDOW_GROUP        WEEKNIGHT_WINDOW
    2        MAINTENANCE_WINDOW_GROUP        WEEKEND_WINDOW
    */

    select t1.window_name,t1.repeat_interval,t1.duration from dba_scheduler_windows t1,dba_scheduler_wingroup_members t2 
     where t1.window_name=t2.window_name and t2.window_group_name='MAINTENANCE_WINDOW_GROUP'; 
    /*
               WINDOW_NAME        REPEAT_INTERVAL        DURATION
    1        WEEKNIGHT_WINDOW        freq=daily;byday=MON,TUE,WED,THU,FRI;byhour=22;byminute=0; bysecond=0        +000 08:00:00
    2        WEEKEND_WINDOW        freq=daily;byday=SAT;byhour=0;byminute=0;bysecond=0        +002 00:00:00
    */


    --下面修改配置(使用sys用户登录oracle执行)
    sqlplus sys/xxx@xxxdb as sysdba
    set linesize 120

    --修改WEEKEND_WINDOW的配置 (改成和WEEKNIGHT_WINDOW相同,即周一~周五,每日的22:00向后8小时,至次日凌晨6点)
    begin 
    dbms_scheduler.set_attribute('WEEKEND_WINDOW','REPEAT_INTERVAL','freq=daily;byday=SAT,SUN;byhour=22;byminute=0;bysecond=0'); 
    dbms_scheduler.set_attribute('WEEKEND_WINDOW','DURATION','+000 08:00:00'); 
    end;
    /

    --查看修改结果:
    select t1.window_name,t1.repeat_interval,t1.duration from dba_scheduler_windows t1,dba_scheduler_wingroup_members t2 
     where t1.window_name=t2.window_name and t2.window_group_name='MAINTENANCE_WINDOW_GROUP'; 
     
    /*
               WINDOW_NAME        REPEAT_INTERVAL        DURATION
    1        WEEKNIGHT_WINDOW        freq=daily;byday=MON,TUE,WED,THU,FRI;byhour=22;byminute=0; bysecond=0        +000 08:00:00
    2        WEEKEND_WINDOW        freq=daily;byday=SAT,SUN;byhour=22;byminute=0;bysecond=0        +000 08:00:00
    */


    --若要还原成以前默认设置,可执行如下
    --周末两天都是全天:
    begin 
    dbms_scheduler.set_attribute('WEEKEND_WINDOW','REPEAT_INTERVAL','freq=daily;byday=SAT;byhour=0;byminute=0;bysecond=0'); 
    dbms_scheduler.set_attribute('WEEKEND_WINDOW','DURATION','+002 00:00:00'); 
    end;
    /


    二.修改11g自动统计时间属性

    --查看SCHEDULER_JOBS

    select job_name from dba_scheduler_running_jobs;
    SELECT * FROM DBA_SCHEDULER_JOBS;

    select * from dba_scheduler_wingroup_members where window_group_name='MAINTENANCE_WINDOW_GROUP';
    /*WINDOW_GROUP_NAME  WINDOW_NAME
    MAINTENANCE_WINDOW_GROUP  MONDAY_WINDOW
    MAINTENANCE_WINDOW_GROUP        TUESDAY_WINDOW
    MAINTENANCE_WINDOW_GROUP        WEDNESDAY_WINDOW
    MAINTENANCE_WINDOW_GROUP        THURSDAY_WINDOW
    MAINTENANCE_WINDOW_GROUP        FRIDAY_WINDOW
    MAINTENANCE_WINDOW_GROUP        SATURDAY_WINDOW
    MAINTENANCE_WINDOW_GROUP        SUNDAY_WINDOW
    */

    select t1.window_name,t1.repeat_interval,t1.duration from dba_scheduler_windows t1,dba_scheduler_wingroup_members t2 
     where t1.window_name=t2.window_name and t2.window_group_name in ('MAINTENANCE_WINDOW_GROUP','BSLN_MAINTAIN_STATS_SCHED'); 
    /*
         WINDOW_NAME  REPEAT_INTERVAL        DURATION
    1        MONDAY_WINDOW        freq=daily;byday=MON;byhour=22;byminute=0; bysecond=0        +000 04:00:00
    2        TUESDAY_WINDOW        freq=daily;byday=TUE;byhour=22;byminute=0; bysecond=0        +000 04:00:00
    3        WEDNESDAY_WINDOW        freq=daily;byday=WED;byhour=22;byminute=0; bysecond=0        +000 04:00:00
    4        THURSDAY_WINDOW        freq=daily;byday=THU;byhour=22;byminute=0; bysecond=0        +000 04:00:00
    5        FRIDAY_WINDOW        freq=daily;byday=FRI;byhour=22;byminute=0; bysecond=0        +000 04:00:00
    6        SATURDAY_WINDOW        freq=daily;byday=SAT;byhour=6;byminute=0; bysecond=0        +000 20:00:00
    7        SUNDAY_WINDOW        freq=daily;byday=SUN;byhour=6;byminute=0; bysecond=0        +000 20:00:00
    */


    --下面修改配置(使用sys用户登录oracle执行)

    sqlplus sys/xxx@xxxdb as sysdba

    --修改SATURDAY_WINDOW、SUNDAY_WINDOW的配置 (改成和平常相同,即每日都是22:00向后4小时,至次日凌晨2点)
    --下面的方式也可修改周六、周日的时间Window
    begin
      sys.dbms_scheduler.set_attribute(name => 'SYS.SATURDAY_WINDOW', attribute => 'repeat_interval', value => 'Freq=daily;ByDay=SAT;ByHour=22;ByMinute=0;BySecond=0');
      sys.dbms_scheduler.set_attribute(name => 'SYS.SATURDAY_WINDOW', attribute => 'duration', value => '0 04:00:00');
    end;
    /

    begin
      sys.dbms_scheduler.set_attribute(name => 'SYS.SUNDAY_WINDOW', attribute => 'repeat_interval', value => 'Freq=daily;ByDay=SUN;ByHour=22;ByMinute=0;BySecond=0');
      sys.dbms_scheduler.set_attribute(name => 'SYS.SUNDAY_WINDOW', attribute => 'duration', value => '0 04:00:00');
    end;
    /

    --查看修改结果:

    select t1.window_name,t1.repeat_interval,t1.duration from dba_scheduler_windows t1,dba_scheduler_wingroup_members t2 
     where t1.window_name=t2.window_name and t2.window_group_name='MAINTENANCE_WINDOW_GROUP'; 
     
    /*           WINDOW_NAME        REPEAT_INTERVAL        DURATION
    1        MONDAY_WINDOW        freq=daily;byday=MON;byhour=22;byminute=0; bysecond=0        +000 04:00:00
    2        TUESDAY_WINDOW        freq=daily;byday=TUE;byhour=22;byminute=0; bysecond=0        +000 04:00:00
    3        WEDNESDAY_WINDOW        freq=daily;byday=WED;byhour=22;byminute=0; bysecond=0        +000 04:00:00
    4        THURSDAY_WINDOW        freq=daily;byday=THU;byhour=22;byminute=0; bysecond=0        +000 04:00:00
    5        FRIDAY_WINDOW        freq=daily;byday=FRI;byhour=22;byminute=0; bysecond=0        +000 04:00:00
    6        SATURDAY_WINDOW        Freq=daily;ByDay=SAT;ByHour=22;ByMinute=0;BySecond=0        +000 04:00:00
    7        SUNDAY_WINDOW        Freq=daily;ByDay=SUN;ByHour=22;ByMinute=0;BySecond=0        +000 04:00:00
    */


    三.相关视图

    1.SCHEDULER_JOBS
    select job_name from dba_scheduler_running_jobs;
    SELECT * FROM DBA_SCHEDULER_JOBS;

    2.有关自动数据库维护任务的信息的视图:
    select * from DBA_AUTOTASK_CLIENT_JOB;
    select * from DBA_AUTOTASK_CLIENT;
    select * from DBA_AUTOTASK_JOB_HISTORY;
    select * from DBA_AUTOTASK_WINDOW_CLIENTS;
    select * from DBA_AUTOTASK_CLIENT_HISTORY;


    展开全文
  • 修改job的执行间隔时间:sys.dbms_job.interval()马嘉楠 2008-3-18假设,job已经存在,现在需要修改job的执行间隔 ,代码如下:当然,第一步还是要查询job的ID---修改存储过程P_NUMBER_RELEASE的运行间隔时间为每...

    修改job的执行间隔时间:sys.dbms_job.interval()

    马嘉楠    2008-3-18

    假设,job已经存在,现在需要修改job的执行间隔 ,代码如下:

    当然,第一步还是要查询job的ID

    ---修改存储过程P_NUMBER_RELEASE的运行间隔时间为每一天
    DECLARE
        
    CURSOR c_job_id IS  
               
    SELECT job from user_jobs WHERE upper(what) ='P_NUMBER_RELEASE;'
     ;     
              
    BEGIN

      
    FOR rec IN  c_job_id LOOP
          sys.dbms_job.interval(rec.job,interval 
    => 'TRUNC(SYSDATE)+1'
    );
      
    END
     LOOP;
      
    COMMIT
    ;
    END
    ;
    /

     

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

    以下转自:http://download-west.oracle.com/docs/cd/B10501_01/appdev.920/a96612/d_job2.htm#1001106

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

    INTERVAL Procedure

     This procedure changes how often a job runs.

    Syntax

    DBMS_JOB.INTERVAL ( 
       job       IN  BINARY_INTEGER,
       interval  IN  VARCHAR2);
    

    Parameters

    ParameterDescription

    job

    Number of the job being run.

    interval

    Date function, evaluated immediately before the job starts running.

    Usage Notes

    If the job completes successfully, then this new date is placed in next_date. interval is evaluated by plugging it into the statement select interval into next_date from dual;

    The interval parameter must evaluate to a time in the future. Legal intervals include:

    IntervalDescription

    'sysdate + 7'

    Run once a week.

    'next_day(sysdate,''TUESDAY'')'

    Run once every Tuesday.

    'null'

    Run only once.

    If interval evaluates to NULL and if a job completes successfully, then the job is automatically deleted from the queue.

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

    展开全文
  • 修改了服务器时间以后,原有的定时任务不执行了,其实定时器并没有失效,而是trigger定时调用以后会自动记录下一次调用的时间,当修改系统时间以后,假如修改后的时间靠后了,那你的定时调度任务将无法执行,假如...

    修改了服务器时间以后,原有的定时任务不执行了,其实定时器并没有失效,而是trigger定时调用以后会自动记录下一次调用的时间,当修改系统时间以后,假如修改后的时间靠后了,那你的定时调度任务将无法执行,假如修改后的时间靠前了,那定时调度任务是可以定时执行的 

    转载自:https://blog.csdn.net/zhaoxiao2008/article/details/79697221

    展开全文
  • 可以查看org.apache.oozie.service.PurgeService这个类,里面有默认的设置是30天,通过以下配置可以进行修改。 There are properties for removing completed job / coordinators / bundles after a set number ...
  • 修改Oracle10g、11g系统自动统计Job的运行时间属性Oracle 10g和11g,都有自动收集数据库统计信息的任务(10G和11G的JOB名不同),但是任务的执行时间可能与我们期望的不同,比如:周末两个全天都要运行,会影响系统性能,...
  • 官方文档:https://apscheduler.readthedocs.io/en/latest/modules/schedulers/base.html#apscheduler.schedulers.base.BaseScheduler.reschedule_job 参考别人的:...
  • 动态修改spring job定时器

    千次阅读 2014-04-23 11:37:33
    spring 的Quartz定时器的功能非常强大,可以在特定的年月日小时分秒的时间点触发时间,完成事件的调度,就像windows中得计划任务一样。下面看一个典型的Quartz定时器的实现: 1、首先实现一个用于被执行的类,...
  • xxl-job触发时间问题

    千次阅读 2021-04-14 09:41:02
    xxl-job是一个轻量级分布式定时任务框架,既然是分布式框架,所以一般生产环境会把xxl-job与系统部署在不同服务器上,定时任务的触发是以部署xxl-job的服务器的时间为准的,那么当xxl-job的服务器与系统的服务器的...
  • elastic-job 动态添加任务-修改任务

    千次阅读 2019-06-12 17:45:07
    一个发布时间即可搞定,但是由于是两张表混合展示的,所以一个发布时间并不能解决问题,因为lz认为自己的线程知识太烂,所以未敢涉足线程,就在定时任务方向寻找解决方法,以下是我使用的动态修改定时任务的方法,仅...
  • Sqoop修改sqoop元信息实现job的增量导入
  • 系统有要求定时修改大数据量的数据,而且对时间要求较高,最后决定使用数据库级的定时任务,job调用存储过程的方式实现 一下是具体步骤 1、一下是创建存储的sql、 --创建存储过程 create or replace procedure ...
  • 定时 凌晨00:00执行。创建成功之后会执行一次,修改sysdate就好了 declare job number; begin dbms_job.submit( job =>job, what=>'PROC1;PROC2;',--存储过程名字 可以写多个也可以写单个 ...
  • Elastic-Job之简单Job

    千次阅读 2017-12-06 17:13:18
    简介elastic-job是当当网开源的基于zookeeper和quartz实现的分布式作业调度框架。github地址是https://github.com/dangdangdotcom/elastic-job,官方网站是http://elasticjob.io/。elastic-job分elastic-job-lite和...
  • 2,在12点提醒了之后 在调用更新job时间表达式为 00 00 12 * * ?,也会立即提醒,当前的时间是12:01 ,也就是修改了立即执行 更新job时间表达式如下 解答如下 增加:withMisfireHandlingInstructionDoNothing()...
  • XXL-JOB用镜像启动后发现时间到了无法触发,然后发现是由于容器时区的问题。 未解决前docker run语句 docker run -d --name xxl-job -p 5080:5080 镜像id 解决办法,加个参数-e TZ=Asia/Shanghai run语句如下 ...
  • 一、定时任务很多都是配置在配置文件中,但很多时候我们需要根据业务需要调整动态增删改定时任务,这里写出例子供大家参考。 (1)maven依赖 <dependency> <...elastic-job-lite-...
  • activiti 修改定时器的执行时间

    万次阅读 多人点赞 2016-10-23 13:22:04
    activiti5 修改定时器执行时间
  • oracle定时器job时间执行无法结束

    万次阅读 2016-12-22 10:59:37
    正常情况下,这些存储过程执行完毕需要几十秒时间,但有时不知道什么原因一天都执行不完,导致第二天的job也无法顺利执行。如果不进行人工干预,这个job也许就再也不会执行下去了。通过查询和测试我知道卡死的原因是...
  • 一种情况是修改系统时间距离到凌晨一点差几分钟,跑项目。到点了定时任务执行。 第二种情况是先跑项目在改系统时间,这种情况定时任务不执行。 简单的了解下加个人的理解是:在项目跑起来的时候spring去记录当前...
  • Quartz.net动态修改触发时间

    千次阅读 2019-09-19 11:25:47
    在使用Quartz进行定时任务调度的时候,难免会遇到根据业务需求来修改我们的触发时间,而且是进行动态的修改,接下来我介绍一下Quartz.net怎么动态来修改触发时间,Java中的Quartz也是差不多的原理。这个demo是基于上...
  • 一、 Oracle定时器(Job)各时间段写法汇总 ...但是,Oracle定时器Job时间的处理上,千变万化,今天我把比较常用写法汇总如下: 在总结之前,先把Job的参数一一说明一下: job参数是由Submit()过程返回的binary_in
  • import java.text.ParseException; import org.quartz.CronTrigger;...import org.quartz.Job; import org.quartz.JobDetail; import org.quartz.Scheduler; import org.quartz.SchedulerException; import org.quartz
  • Input Split的大小,决定了一个Job拥有多少个map。默认input split的大小是64M(与dfs.block.size的默认值相同)。然而,如果输入的数据量巨大,那么默认的64M的block会有几万甚至几十万的Map Task,集群的网络传输...
  • dbms_job.submit job 使用说明

    千次阅读 2017-11-30 08:49:40
    oracle job有定时执行的功能,可以在指定的时间点或每天的某个时间点自行执行任务。   一、查询系统中的job,可以查询视图   --相关视图 select * from dba_jobs; select * from all_jobs; select * from ...
  • pl/sql建JOB时间的一些设置

    千次阅读 2012-07-09 19:57:44
    Submitter这里不用修改 Job这里不用填 What: pw_sbtz_gisdata_procedure; 请注意后面的“;”,一定不能少 Next date:sysdate Interval: TRUNC(next_day(sysdate,'星期一'))+1/24 后面的不用填写,只需要...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 106,178
精华内容 42,471
关键字:

修改job时间