您的位置:首页 > 数据库 > Oracle

oracle scheduler(六)使用J…

2014-11-25 18:04 211 查看
六、使用Job Classes

Job Classes 相当于创建了一个job 组,DBA 可以将那些具有相同特性的job,统统放到相同的Job
Classes中,然后通过对Job Class 应用ORACLE 中的"资源使用计划"特性,就可以对这些job
执行过程中所需要的资源分配情况进行管理。

1、创建Job Classes

使用DBMS_SCHEDULER 包的CREATE_JOB_CLASS 过程创建Job
Classes,该过程支持的参数如下:

SQL> desc dbms_scheduler.create_job_class;

Parameter Type Mode Default?

----------------------- -------------- ---- --------

JOB_CLASS_NAME VARCHAR2 IN

RESOURCE_CONSUMER_GROUP VARCHAR2 IN Y

SERVICE VARCHAR2 IN Y

LOGGING_LEVEL BINARY_INTEGER IN Y

LOG_HISTORY BINARY_INTEGER IN Y

COMMENTS VARCHAR2 IN Y

其中:

JOB_CLASS_NAME:要创建的Job Class
的名称,注意指定的长度不要超过30 个字符,也不要与现有Job Class 同名;

RESOURCE_CONSUMER_GROUP:指定创建的Job Class
所在的RCG;

Resource Consumer Group可以将其理解成一个资源分配的方式,处于相同RCG
组中的用户、会话、或者对象共用一组资源,这组资源中可供分配的资源按照DBA
指定的方式分配给RCG。如果设计合理,通过这种方式,可以更有效的利用服务器的资源。

SERVICE:指定创建的Job Class
所在Service,本选项常见于RAC 环境,我们都知道RAC 环境由多实例 数据库组成,此处所指定的Service 实际就是指Job
Class 会在哪个实例上运行。

注意:本参数与RESOURCE_CONSUMER_GROUP 参数相互冲突,同一个Job
Class 只能设置两个参数中的一个值。

LOGGING_LEVEL:指定日志记录的级别,有下列三种级别:

(1)DBMS_SCHEDULER.LOGGING_OFF:关闭日志记录功能;

(2) DBMS_SCHEDULER.LOGGING_RUNS:对该Job Class 下所有任务的运行信息进行记录;

(3) DBMS_SCHEDULER.LOGGING_FULL:记录该Job Class
下任务的所有相关信息,不仅有任务的运行情况,甚至连任务的创建、修改等也均将记入日志。

LOG_HISTORY:指定日志记录的时间,以天为单位,比如指定LOG_HISTORY
参数值为90,就表示日志信息保留最近90 天的内容。

COMMENTS:指定注释信息。

上述各个参数,除了LOG_CLASS_NAME 参数为必选参外,其它均为可选参数,例如:

SQL> EXEC
DBMS_SCHEDULER.CREATE_JOB_CLASS('my_first_jc');

PL/SQL procedure successfully completed

查询系统中已经存在的job classes .可以通过dba_scheduler_job_classes视图( 或all_scheduler_job_class 视图)

当创建Jobs 时,可以通过JOB_CLASS 参数来指定job 所在的Job Class,如果不指定的话,创建的job
默认属于DEFAULT_JOB_CLASS 。可以使用*_SCHEDULER_JOBS 视图中的JOB_CLASS 列查看对应的信息。

2、管理Job Classes

DBMS_SCHEDULER.SET_ATTRIBUTE 过程的SET_ATTRIBUTE 也可以用来修改Job Class
的属性,操作方法与修改job 属性完全相同,只不过作用涵盖的范围更广,修改Job
Class 后,该Job Class 下属的所有job
属性都会被级联修改(当前正运行的不会立刻生效,将等到下次运行时生效)。

例如:修改刚刚创建的MY_FIRST_JC 的日志保存时间:

SQL> EXEC
DBMS_SCHEDULER.SET_ATTRIBUTE('SYS.MY_FIRST_JC','LOG_HISTORY','30');

PL/SQL procedure successfully completed.

提示:Job Class 可被修改的属性,即创建时可选择指定的那5 个属性。

3、删除Job Classes

DBMS_SCHEDULER 包提供了DROP_JOB_CLASS 过程,用来删除Job
Classes。该过程调用非常简单,例如,删除刚刚创建的MY_FIRST_JC,执行命令如下:

SQL> EXEC
DBMS_SCHEDULER.DROP_JOB_CLASS('MY_FIRST_JC');

PL/SQL procedure successfully completed.

如果有多个Job Classes
需要删除,并不需要多次执行DROP_JOB_CLASS,只需要在为该过程指定值时,参数值间以逗号分隔即可。

The member jobs would get disabled when the job class is dropped.

转自:http://blog.csdn.net/tianlesoftware/article/details/4715218
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: