ITPub博客

首页 > 数据库 > Oracle > [20211202]FREQ=WEEKLY FREQ=DAILY是等价的.txt

[20211202]FREQ=WEEKLY FREQ=DAILY是等价的.txt

原创 Oracle 作者:lfree 时间:2021-12-02 10:13:28 0 删除 编辑

[20211202]FREQ=WEEKLY FREQ=DAILY是等价的.txt

--//今天维护,我发现SCHEDULER_WINDOWS的window_name属性被人改动了。

--//生产环境:
> select * from DBA_SCHEDULER_WINDOWS where window_name in ('SATURDAY_WINDOW')
  2  @ pr
==============================
WINDOW_NAME                   : SATURDAY_WINDOW
RESOURCE_PLAN                 : DEFAULT_MAINTENANCE_PLAN
SCHEDULE_OWNER                :
SCHEDULE_NAME                 :
SCHEDULE_TYPE                 : CALENDAR
START_DATE                    :
REPEAT_INTERVAL               : FREQ=WEEKLY;BYDAY=SAT;BYHOUR=0;BYMINUTE=0;BYSECOND=0
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
END_DATE                      :
DURATION                      : +000 05:00:00
~~~~~~~~~~~~~~~~~~~~~~
WINDOW_PRIORITY               : LOW
NEXT_START_DATE               : 2021-12-04 00:00:00.000000 +08:00
LAST_START_DATE               : 2021-11-27 00:00:00.009913 +08:00
ENABLED                       : TRUE
ACTIVE                        : FALSE
MANUAL_OPEN_TIME              :
MANUAL_DURATION               :
COMMENTS                      : Saturday window for maintenance tasks
PL/SQL procedure successfully completed.

--//测试环境:
SYS@book> select * from DBA_SCHEDULER_WINDOWS where window_name in ('SATURDAY_WINDOW')
  2  @ pr
==============================
WINDOW_NAME                   : SATURDAY_WINDOW
RESOURCE_PLAN                 : DEFAULT_MAINTENANCE_PLAN
SCHEDULE_OWNER                :
SCHEDULE_NAME                 :
SCHEDULE_TYPE                 : CALENDAR
START_DATE                    :
REPEAT_INTERVAL               : freq=daily;byday=SAT;byhour=6;byminute=0; bysecond=0
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
END_DATE                      :
DURATION                      : +000 20:00:00
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
WINDOW_PRIORITY               : LOW
NEXT_START_DATE               : 2021-12-04 06:00:00.000000 +08:00
LAST_START_DATE               : 2021-11-06 06:00:00.010170 +08:00
ENABLED                       : TRUE
ACTIVE                        : FALSE
MANUAL_OPEN_TIME              :
MANUAL_DURATION               :
COMMENTS                      : Saturday window for maintenance tasks
PL/SQL procedure successfully completed.

--//可以发现对方修改2个属性FREQ=WEEKLY,并且0点开始执行,持续时间5个小时。
--//我自己从来也没有注意FREQ=WEEKLY 与 FREQ=daily有什么区别,看了半天也没有什么发现区别在那里。
--//查询发现如下链接blog.csdn.net/haogexiaole/article/details/80835868

REPEAT_INTERVAL结构为:REPEAT_INTERVAL => 'Freq=Minutely;Interval=5'

FREQ 关键字用来指定间隔的时间周期,可选参数有:YEARLY(年), MONTHLY(月), WEEKLY(周), DAILY(日), HOURLY(时), MINUTELY(分),
SECONDLY(秒)等单位。

INTERVAL 关键字用来指定间隔的频繁,可指定的值的范围从1-999。

BYHOUR  指定一天中的小时。可指定的值的范围从1-24。16,17,18就表示每天下午的4、5、6点。

BYDAY 关键字用来指定每周的哪天运行。

BYMONTHDAY 关键字用来指定每月中的哪一天。-1 表示每月最后一天。

BYMONTH  关键字用来指定每年的月份。

BYDATE 指定日期。0310就表示3月10日。

例如:
运行每星期五。(所有这三个例子是等价的。)

FREQ=DAILY; BYDAY=FRI;  
FREQ=WEEKLY; BYDAY=FRI;  
FREQ=YEARLY; BYDAY=FRI;  

--//另外我时候觉得oracle把这部分内容搞得特别复杂,采用类似面向对象的设计,非常容易混乱。好在这方面的维护需求很少。
--//特此做一个记录,找这个视图我就浪费不少时间。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/267265/viewspace-2845297/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
熟悉oracle相关技术,擅长sql优化,rman备份与恢复,熟悉linux shell编程。

注册时间:2008-01-03

  • 博文量
    3135
  • 访问量
    6839387