【问题标题】:AWS RDS ORACLE SCHEDULER JOBS RUNNING ONE HOUR EARLIERAWS RDS ORACLE 调度程序作业提前一小时运行
【发布时间】:2019-11-03 16:07:41
【问题描述】:

出于某种原因,从今天开始,我的所有调度程序作业都比预定时间提前一小时运行:

BEGIN 
dbms_scheduler.create_job('"JOB_EXTRACAO_LOOK_11_20"',
job_type=>'PLSQL_BLOCK', job_action=>
'DECLARE
 V_ID_REGIAO VARCHAR2(3) := ''GYN'';
BEGIN
    IF V_ID_REGIAO = 'GYN' THEN
       PRC_RESULTADO_TRADICIONAL (V_ID_REGIAO);
    END IF;
END;'
, number_of_arguments=>0,
start_date=>TO_TIMESTAMP_TZ('03-NOV-2019 01.44.54.970684000 PM AMERICA/SAO_PAULO','DD-MON-RRRR HH.MI.SSXFF AM TZR','NLS_DATE_LANGUAGE=english'), repeat_interval=> 
'FREQ=DAILY;BYHOUR=13;BYMINUTE=46;BYSECOND=0'
, end_date=>NULL,
job_class=>'"DEFAULT_JOB_CLASS"', enabled=>FALSE, auto_drop=>FALSE,comments=>
'Resultado automatico da extração 11:20 LOOK'
);
dbms_scheduler.set_attribute('"JOB_EXTRACAO_LOOK_11_20"','job_priority',1);
sys.dbms_scheduler.set_attribute('"JOB_EXTRACAO_LOOK_11_20"','NLS_ENV','NLS_LANGUAGE=''AMERICAN'' NLS_TERRITORY=''AMERICA'' NLS_CURRENCY=''$'' NLS_ISO_CURRENCY=''AMERICA'' NLS_NUMERIC_CHARACTERS=''.,'' NLS_CALENDAR=''GREGORIAN'' NLS_DATE_FORMAT=''DD-MON-RR'' NLS_DATE_LANGUAGE=''AMERICAN'' NLS_SORT=''BINARY'' NLS_TIME_FORMAT=''HH.MI.SSXFF AM'' NLS_TIMESTAMP_FORMAT=''DD-MON-RR HH.MI.SSXFF AM'' NLS_TIME_TZ_FORMAT=''HH.MI.SSXFF AM TZR'' NLS_TIMESTAMP_TZ_FORMAT=''DD-MON-RR HH.MI.SSXFF AM TZR'' NLS_DUAL_CURRENCY=''$'' NLS_COMP=''BINARY'' NLS_LENGTH_SEMANTICS=''BYTE'' NLS_NCHAR_CONV_EXCP=''FALSE''');
dbms_scheduler.enable('"JOB_EXTRACAO_LOOK_11_20"');
COMMIT; 
END; 

Job runs one hour earlier

工作计划日志

LOG_ID          116672  
LOG_DATE        03-NOV-19 12.46.02.336034000 PM -03:00  
OWNER           ADMIN   
JOB_NAME        JOB_EXTRACAO_LOOK_11_20     
JOB_SUBNAME     (null)
STATUS          FAILED  
ERRO#           1403    
REQ_START_DATE      03-NOV-19 01.46.00.974251000 PM AMERICA/SAO_PAULO   
ACTUAL_START_DATE   03-NOV-19 01.46.01.107522000 PM AMERICA/SAO_PAULO

时区配置

TIMESTAMP WITH TIME ZONE = 2019-11-03 12:46:29 -03:00
TIMESTAMP NO TIME ZONE = 2019-11-03 12:46:29 +00:00
AUTO_CONVERTION = 2019-11-03 12:46:29 AMERICA/SAO_PAULO
DBA_SCHEDULER_GLOBAL_ATTRIBUTE = DEFAULT_TIMEZONE -3:00
SESSION TIME ZONE =  America/Sao_Paulo

【问题讨论】:

  • 从今天开始?你确定吗?可能是从一周前开始的吗?夏令时给我敲响了警钟。你的数据库服务器的时间有没有可能没有调整?
  • 夏令时今天结束。
  • 显然,这取决于我们住在哪里,@Bob。对于我们在欧洲的人来说,它在上周末结束了,不,我还没有适应它。起得太早了:(
  • 是的,我们在阿穆尔卡总是有点慢。俄亥俄州立法机构正在考虑为期一年的夏令时,以保护人们免受不得不改变时钟的恐惧,但我怀疑他们会遇到与卡特执政期间尝试全年夏令时相同的抱怨管理,围绕着孩子们早上必须在黑暗中步行上学的事实。 “简单”的解决方法是在一小时后开始上学,然后遇到父母需要上班等进一步问题。换句话说——时间是个问题。 :-)

标签: oracle amazon-web-services scheduler jobs rds


【解决方案1】:

好的解决办法是

BEGIN
 FOR C1 IN (Select JOB_NAME from user_scheduler_jobs where STATE != 'DISABLED' ORDER BY JOB_NAME) LOOP
     DBMS_SCHEDULER.SET_ATTRIBUTE( name => C1.JOB_NAME,
                                  attribute => 'START_DATE',
                                  value => SYSTIMESTAMP AT TIME ZONE '-3:00');
 END LOOP;
END;

这将使调度程序忽略区域 DST

【讨论】:

    猜你喜欢
    • 2020-04-30
    • 2010-12-18
    • 2015-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-19
    • 2017-03-22
    • 1970-01-01
    相关资源
    最近更新 更多