oracle调度中使用schedule管理调度

Posted 正在战斗中

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle调度中使用schedule管理调度相关的知识,希望对你有一定的参考价值。

开始前,先说一句:作为dba应该禁止所有应用使用dbms_job。

dbms_scheduler非常复杂,oracle在两本书中专门花费不少章节描述,这两本书分别是:

  1. Oracle? Database PL/SQL Packages and Types Reference
  2. Oracle? Database Administrator‘s Guide

如果要详细了解调度,建议详细阅读第二本书,之后再阅读第一本书中的有关章节

在云时代,资源管理变得非常重要,而dbms_scheduler可以紧密结合oracle自身的资源管理

 

对于开发人员而言,常见的问题就是:如果一个作业的调度时间不是那么规律,则应该如何调度。

这个好解决,可以使用dbms_scheduler.create_scheduler创建schedule对象,以下是例子:

begin
  DBMS_SCHEDULER.create_schedule(schedule_name   => SCH_DAY_10_30,
                                 start_date      => systimestamp,
                                 repeat_interval => FREQ=DAILY; byhour=10;byminute=30);

  DBMS_SCHEDULER.create_schedule(schedule_name   => SCH_DAY_20_10,
                                 start_date      => systimestamp,
                                 repeat_interval => FREQ=DAILY; byhour=20;byminute=10);

  dbms_scheduler.create_job(job_name        => 我的SCH测试,
                            repeat_interval => SCH_DAY_10_30,SCH_DAY_20_10,
                            job_type        => PLSQL_BLOCK,
                            job_action      => BEGIN NULL;END;,
                            enabled         => TRUE,
                            auto_drop       => FALSE,
                            comments        => null);
end;


通过使用调度,有几个好处:

  1. 只需要修改调度,不需要修改作业
  2. 简单易懂

 


以上是关于oracle调度中使用schedule管理调度的主要内容,如果未能解决你的问题,请参考以下文章

如何在 oracle 作业调度程序中启用程序?

oracle自定义job名字,job调度

quartz开源作业调度框架的使用

Spark schedule资源调度分配详解

Schedule 调度系统设计(单机版)

基于kube-scheduler-simulator编写自己的调度程序