很多情况下,数据库管理员或用户需要自动调度和运行很多类型的作业,例如,执行维护工作(如数据库备份);数据加载和验证例程;
生成报表;收集优化程序统计信息或执行业务流程。可以使用调度程序功能指定任务在将来某个时间点运行。作业可以在数据库中、在驻
留数据库实例的机器上甚至在远程机器上运行。
可以结合使用调度程序和Resource Manager(资源管理器)。调度程序可以激活Resource Manager计划,并按照为各种Resource Manager
使用者组指定的优先级来运行作业。
调度程序是在Oracle 10g版本中引入的,在11g版本中得到了大大增强。较早的数据库版本通过DBMS_JOB功能提供作业调度功能。为了达
达到向后兼容的目的,当前版本依然支持此功能,但它的功能多样性远不及调度程度。
1、调度程序体系结构
数据字典包含一个作为所有调度程序作业的存储点的表。可以通过DBA_SCHEDULER_JOBS视图查询此表。作业队列协调器后台进程CJQ0
监视此表,根据需要启动作业队列进程Jnnn来运行作业。如果在任何定义的、活动的调度程序作业,就自动启动CJBQ0进程。根据需要启
动Jnnn进程,但是最大数量受JOB_QUEUE_PROCESSES实例参数限制,该参数可以是0-1000(默认值)的任何值。如果将值设为0,那么将不会
运行调程。
作业队列协调器从作业队列表中选取作业,将它们传递给作业队列进程执行。它还根据需要启动和终止作业队列进程。要查看当前正在
运行的进程,可查询V$PROCESS视图。
select program from v$process where program like '%J%';
定义为过程的作业在数据库中运行。作业也可以定义为操作系统命令或shell脚本:这些将作为外部操作系统任务运行。作业的触发因素
可以是时间或事件。基于时间的作业根据时间表可能运行一次或重复运行。基本事件的作业在特定条件出现时运行。有一些预配置的事件,
也可以使用用户定义的事件。作业可以连接成链,根据作业成功与否对分支使用简单规则。
调度程度的一项高级功能是将期与Resource Manager相关联。某些作业可能需要优先运行,为此,可以链接作业与Resource Manager
使用都组,以便达到这个目的。还可以使用调度程序激活Resource Manager计划,而不需要通过更改RESOURCE_MANAGER_PLAN实例参数或使
用DBMS_RESOURCE_MANAGER.SWITCH_PLAN过程调用手动激活计划。
可以使用一个API-DBMS_SCHEDULER包来配置调度程序,通过一组数据字典视图监视它,或是用Database Control管理它。
2、调度程序对象
调度程序对象中最基本的对象是作业。作业可以是完全自包含的:它可以定义要执行的动作和执行时间。在更高级的配置中,作业只是
由大量各种类型的调度程序对象组成的结构的一部分。
2.1 作业
作业(job)指定了要执行的动作以及执行动作的时间。
“ 要执行的动作”可以是匿名的PL/SQL块(可能由单条SQL语句构成)、PL/SQL存储过程(可调用JAVA存储过程或外部过程)、
或在服务器的文件系统中存储任何可执行文件(既可以是二进制可执行文件,也可以是SHELL脚本)。特别强大的功能(超出OCP
课程的范围)是远程外部作业,该作业在一台单独的机器上运行。
“执行动作的时间”指定了启动作业时的时间戳以及用于今后运行的重复时间间隔,或是触发事件。
DBMS_SCHEDULER.CREATE_JOB
2.2 程序
程序(program)在作业与其将要执行的动作之间提供了一个抽象层。程序是使用DBMS_SCHEDULER.CREATE_PROGRAM过程创建的。
通过从作业定义中取出作业内容并在程序中加以定义,就可以在不同的作业中引用相同的程序,从而不必进行多次定义就可以将
它与不同的时间表和作业类关联在一起。需要记住的是:就是作业而言,只有启用程序才能使用它。默认是不启用。
2.3 时间表
时间表(schedule)是指定作业运行时间与频率的规范。时间表的基本原理是从作业中取出执行作业的时间,然后将其与不同的的
作业关联。是时间表是使用DBMS_SCHEDULER.CREATE_SHEDULE
2.4 作业类
作业类用于将一个或多个作业与一个Resource Manager使用者组关联在一起,并且也可以用于失控制日志记录级别。
DBMS_SCHEDULER.CREATE_JOB_CLASS
2.5 窗口
时间表准确地指定了作业应当启动的时间。通过使用Oracle能够更自由地决定启动作业的时间,窗口(window)进一步扩展了
时间表的概念。一个窗口在特定时间打开,并且在持续一定的时间之后关闭:指定在某个窗口中运行的作业可以根据Oracle的判断
在该窗口期间的任何时刻启动。窗口本身可以根据时间表重复打开。结合类与Resource Manager时使用窗口具有特殊的意义:Oracle
能够根据相对优先权在窗口内调度作业来运行。此外窗口也可以激活Resource Manager计划。
DBMS_SCHEDULER.CREATE_WINDOW
从什么时间点开始,续继多久时间,能过Resource Plan限制资源使用。
操作如图所示:
分享到:
相关推荐
Schedule( ):Linux的调度程序是一个叫Schedule()的函数,由它来决定是否要进行进程的切换。
在不依赖cron的情况下运行Laravel调度程序 依赖于cron每分钟执行一次。 它坚如磐石,在大多数情况下,您应该坚持使用它。 如果要模拟在测试环境中每分钟运行的调度程序,则使用cron可能很麻烦。 该软件包提供了一个...
调度程序库(SL) 这是用于智能调度程序的初始开发,部署和测试的软件开发环境。 该代码提供了在调度程序库(SL)之上实现的 (FFT和Viterbi)内核(即Mini-ERA的C-子集)。 现在,将执行FFT或Viterbi(加速器功能)...
WGU_Schedule:国际调度应用程序
调度程序是一个nodeJS编写的类似 cron 的调度程序,通过SSH执行作业。 可以使用“ npm install ”安装package.json 中列出的脚本依赖项。 作业在 JSON 格式的文件config.json中配置,其结构如下: [ { "name": ...
I Node Schedule Node Schedule是用于Node.js的灵活的cron类和非cron类作业调度程序。 它允许您使用可选的重复规则来计划作业(任意函数),以在特定日期执行。 它仅在任何给定时间使用一个计时器(而不是每秒钟/...
Node Schedule 是一个灵活的类似cron的Node.js作业调度程序。 它允许您使用可选的重复规则来安排在特定日期执行的作业(任意函数)
这只是如何构建调度程序的一个示例,但是当前此调度程序中当前尚未处理某些事情: 波德标签像NoSchedule , NoExecute ... 竞赛条件,以防其他调度程序调度同一Pod。 普罗米修斯指标(我们正在努力) 吊舱部署 ...
柚皮pomelo-schedule是用于nodejs的计划工具,其目的是提供一个高效且可支持大量作业计划的产品级别计划模块。 作为计划工具,它支持两种触发器:使用js对象的简单触发器和使用Cron时间字符串的Cron时间触发器。 #...
API 提供同步功能,定义处理器拓扑的初始化函数以及用于任务创建、回调(例如,在调度任务时)的函数和用于执行对一些时钟节拍执行模拟的 run 函数(其反过来调用内部 Linux schedule() 函数来制定调度决策)。...
易调度用户界面 运行应用程序 gulp server 后端项目 正在施工:construction:..
具有动态负载平衡 (AWS) 的作业调度程序 描述 我们引入了一个基于 Amazon Web Services(EC2、SQS、DynamoDB)的框架来以分布式方式处理任务。 目的是承担由可以独立计算的单个任务组成的工作负载,在远程工作者上...
定期作业的进程内调度程序。 无需额外的流程! 非常轻巧,没有外部依赖性。 出色的测试覆盖率。 在Python和3.6、3.7、3.8、3.9上测试用法$ pip install schedule import scheduleimport timedef job (): print ( "I...
教会时间表 调度Web应用程序
Purple Parrot ScheduleTimer ActiveX Control 的功能: 如下图所指示在调度程序形式上显示系统预置选择项。 选择“never”则表明没有时间表被确定。 其他调度程序选择在下面被展示。 ...
小型调度器目的Small Scheduler是与计划程序类似的cron计划程序,具有Web界面,可跨您的云服务器管理重复性任务。 它与Kubernetes / Docker Swarm兼容,同时跨RabbitMq队列分发作业。 此存储库是核心模块,它带有...
$ npm i --save nest-schedule 用法 import { Module } from '@nestjs/common' ; import { ScheduleModule } from 'nest-schedule' ; @ Module ( { imports : [ ScheduleModule . register ( ) , ] } ) export ...
Node Schedule是用于Node.js的灵活的cron类和非cron类作业调度程序。 它允许您使用可选的重复规则来计划作业(任意函数),以在特定日期执行。 它在任何给定时间仅使用一个计时器(而不是每秒钟/分钟重新评估即将...
本文档是关于使用 Blue Prism Scheduler功能的指南,其中包括相关时间表和调度程序报告。 调度程序可让 Blue Prism 在特定时间执行相关流程,并且在不同时间间隔内重复执行。调度程序为后台流程,它会等待下一次...
使用Reactjs和GraphQL构建的前端车辆服务调度程序小部件 概述图 发展 React.js Webpack 5(+模块联合) GraphQL(+ Apollo客户端和服务器) React-intl 样式组件 功能(全部工作功能) 实现了具有4种不同状态的...