[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博客 ” ,链接:https://blog.itpub.net/267265/viewspace-2845297/ ,如需转载,请注明出处,否则将追究法律责任。