版权归原作者所有,如有侵权,请联系我们

[科普中国]-调度程序

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

调度程序是管理任务的DB2®系统。“任务中心”显示具有活动调度程序的已编目系统或数据库的列表。每次启动任务中心时都必须登录。

基本信息调度程序是管理任务的DB2®系统。“DB2管理服务器”(DAS)的这个组件包括工具目录数据库,该数据库包含“任务中心”使用的信息。安排一个任务时,“任务中心”使用调度程序的系统时钟来跟踪调度程序上的任务何时需要运行。

“任务中心”显示具有活动调度程序的已编目系统或数据库的列表。必须选择一个调度程序系统来与“任务中心”一起工作。当您登录至“任务中心”时,您正在登录至选择的调度程序系统。每次启动任务中心时都必须登录。1

调度程序的体系架构调度的结构包括三个组件:作业表(Job Table)、作业协调进程(Job Coordinator)以及工进程(Job Work Process)。

调度架构调度结构三个组件作业表、作业协调进程以及工进程的作用说明如下:

1)作业表包含调度管理的作业信息,如作业名称、程序名称以及作业拥有者等。

2)作业协调进程协调作业的执行,查看运行中的作业。

3)作业工进程完成作业要完成的工作。

下图所示是调度的体系架构图。

执行调度程序的权限Oracle可以在某个用户模式下创建作业、程序以及调度,但是必须具有相应的权限才可以创建这些部件,如Create Job权限来创建调度的作业、程序以及事件。并且对于调度其他模式的过程或程序,必须具备执行这些数据库组件的权限,即被赋予EXECUTE ANY PROGRAM权限。下面是对于创建Scheduler以及各种执行权限的一个总结。

①SCHEDULER ADMIN角色:所有的Scheduler系统权限。

②DBA角色:包含SCHEDULER ADMIN角色。

③CREATE JOB权限:创建Scheduler的作业、调度、程序、链以及事件。

④MANAGER SCHEDULER权限:使用Scheduler的高级组件。

⑤EXECUTE ANY PROGRAM权限:允许用户在任何模式下执行任何程序。

⑥EXECuTE ANY CLASS权限:允许将一个作业分配给任何作业类。2

调度程序的组件调度程序由一系列组件组成,当然这些组件是为了完成调度任务,提供调度的灵活性而定义的。它们之间各司其职完成调度任务。

(1)作业:作业将调度与程序结合起来,完成在某个时间间隔或者某个时间段内的任务,这个任务可以是PL/SQL代码,也可以是可执行文件或者Shell脚本。具体要执行的任务与调度结合,可以在指定的时间开始执行任务以及设置任务执行的频率。

(2)调度:调度是纯粹的时间概念,它告诉任务执行的开始时间,以及任务执行的频率,一个调度可以触发多个具体任务。

(3)程序:程序是具体完成某项任务的单元,包括程序名、类型以及具体动作,程序类型可以是PL/SQL代码块、存储过程或者二进制可执行脚本。

(4)事件:Schedule支持使用事件触发启动具体作业运行,事件使用Schedule的Oracle流高级队列特性。一个事件由某个进程或程序在具体动作发生时发送消息来完成。

(5)链:链将多个程序连接起来,这样一个程序的运行有可能以另一个程序的运行为基础,或者基于一个链来启动作业。2

调度程序对象调度程序环境中最基本的对象是作业。作业可以是完全自包含的:它可以定义要执行的动作和执行时间。在更高级的配置中,作业只是由大量各种类型的调度程序对象组成的结构的一部分。

1.作业

作业(job)指定了要执行的动作以及执行动作的时间。“要执行的动作”可以是匿名的PL/SQL块(可只由单条SQL语句构成)、PL/SQL存储过程(可调用Java存储过程或外部过程),或在服务器的文件系统中存储的任何可执行文件(既可以是二进制可执行文件,也可以是shell脚本)。特别强大的功能(超出了OCP课程的范围)是远程外部作业,该作业在一台单独的机器上运行。“执行动作的时间”指定了启动作业时的时间戳以及用于今后运行的重复时间间隔,或是触发事件。

创建作业时可以使用多个选项,可以从DBMS SCHEDULE·CREATE JOB过程中看到这些选项。这个过程被重载,它至少具有6种形式。图21—1为DBMS SC脏DuLE包的DESCRIBE的部分输出,显示了CREATE JOB的前两种形式。

CREATE JOB过程的所有形式都必须指定JOB NAME。在创建该作业的模式内,这个作业名必须是唯一的。注意,作业是模式对象。接着,在CREATE JOB过程的第一种形式中,JOB TYPE必须是如下值之一:

·PLSQL BLOCK:一个匿名的PL/SOL块

·STORED PROCEDURE:一个命名的PL/SQL过程

·EXECUTABLE:在操作系统提示行上的任何可执行程序

·CHAIN:一个命名的作业链对象

·E×TERNAL SCRIPT:操作系统的命令解释器启动的脚本

·SQL SCRIPT:一个SQL*Pius脚本

·BACKUP SCRIPT:一个RMAN脚本

JOB ACTION是要运行的命令、脚本或链。NUMBER OF ARGUMENTS参数指定了JOB ACTION应当接受的参数数量。

如上图所示,CREATE JOB过程的第一种形式中的其他参数继续详细说明了运行作业的时间与频率。START DATE指定了第一次执行作业的时间;REPEAT INTERVAL定义了在到达END DATE所指定时间之前重复执行作业的频率(如每天执行一次)。JOB CLASS与优先权有关,并且集成调度程序与Resource Manager。ENABLED参数决定是否真正运行指定的作业。你可能会感到意外的是:这个参数默认设置为FALSE。如果在这个参数未被设置为TRUE的情况下创建某个作业,那么该作业只有先启用才能运行(手动运行或者通过某个调度程序运行)。最后,AUTO DROP控制是否在到达END TIME指定的时间之后删除作业定义,这个参数默认为TRUE。如果不使用任何调度信息创建某个作业,那么这个作业只要一启用就能运行。如果AUTO DROP参数采用默认的设置TRUE,那么在到达END TIME指定的时间之后就会立即删除这个作业。

2.程序

程序(program)在作业与其将要执行的动作之间提供了一个抽象层。程序是使用DBMSSCHEDULER.CREATE PROGRAM过程创建的。通过从作业定义中取出作业内容并在程序中加以定义,就可以在不同的作业中引用相同的程序,从而不必进行多次定义,就可以将它与不同的时间表和作业类关联在一起。需要记
住的是:就作业而言,只有启用程序才能使用它。默认是不启用。

3.时间表

时间表(schedule)是指定作业运行时间与频率的规范。时间表的基本原理是从作业中取出执行作业的时间,然后将其与不同的作业关联。时间表是使用DBMS—SCHEDULER.CREATE—SCHEDULE过程创建的。START DATE默认为当前的日期与时间,这是与时间表关联的任何作业的运行时间。REPEAT INTERVAL指定了在到达END DATE所表示时问之前作业应当运行的频率。没有设置END DATE的时间表将会一直运行。

REPEAT INTERVAL参数可以接受多种历法表达式。这些历法表达式由三种元素组成:频率、时间间隔(默认为1)以及一些说明符。其中,频率可以为下列值之一:

● YEARLY

● MONTHLY

● WEEKLY

● DAILY

● HOURLY

● MINUTELY

● SECONDLY

说明符可以为下列值之一:

● BYMONTH

● BYWEEKNO

● BYYEARDAY

● BYMONTHDAY

● BYHOUR

●BYMINUTE

●BYSECOND3

相关短句1、An addition to the dispatcher that determines which task is toexe cute next.

一种附加调度程序,它确定下一个要执行的任务。

2、Aroutine that controls the order in which in putand out put devicesobta in access to the processing system.

调度程序控制命令的例行程序,由它控制输入和输出装置从而到达处理系统。

3、In soft wareengineering,abasic part of a system or program.For example,the scheduler or supervis or of anoperating system.

在软件工程中,系统或程序的基本部分。例如,操作系统中的调度程序或管理程序。

4、Aqueue of new messages (or agroup) with in a system that area waiting processing.The main scheduling routine will scan the malong with other queuesand order them in to processing in order.

在系统中等待处理的一组或一队列新信息,主调度程序对该队列及其它队列进行扫描,使之顺序进入处理状态。

5、InDPCX,aforward-chainedlist of all threads added to apriority level since that level' sscheduler last refer redtoits queues.

在分布式处理控制执行程序(dpcx)中,自从一个优先级的调度程序最后一次查阅它的队列以来所添加到这个优先级上的所有线程的一个正向链接表。

6、The program in an operating system,or another function alunit,the purpose of which is to dispatch.

操作系统或其它功能单元中起调度作用的程序。

7、acrane formoving material with dispatch as in loading an dunloading ships.

在装卸船上调度物质的起重机。

8、procedure of tax payment

纳税程序

9、The force the reassembled was trivial compared with the Danish horde.

他调度的军队与丹麦的乌合之众相比是微不足道的。

本词条内容贡献者为:

李雪梅 - 副教授 - 西南大学