(11)使用Job Classes 六、使用Job ClassesJob Classes 相當(dāng)于創(chuàng)建了一個job組,DBA可以將那些具有相同特性的job,統(tǒng)統(tǒng)放到相同的Job Classes中,然后通過對Job Class應(yīng)用ORACLE中的"資源使用計劃"特性,就可以對這些job執(zhí)行過程中所需要的資源分配情況進行管理。 1、 創(chuàng)建Job Classes使用DBMS_SCHEDULER包的CREATE_JOB_CLASS過程創(chuàng)建Job Classes,該過程支持的參數(shù)如下: JSSWEB> 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其中:
提示:啥是Resource Consumer Group 你可以將其理解成一個資源分配的方式,處于相同RCG組中的用戶、會話、或者對象共用一組資源,這組資源中可供分配的資源按照DBA指定的方式分配給RCG。如果設(shè)計合理,通過這種方式,可以更有效的利用服務(wù)器的資源。
上述各個參數(shù),除了LOG_CLASS_NAME參數(shù)為必選參外,其它均為可選參數(shù),例如: JSSWEB> EXEC DBMS_SCHEDULER.CREATE_JOB_CLASS(¨my_first_jc¨); PL/SQL procedure successfully completed查詢系統(tǒng)中已經(jīng)存在的Job Classes,可以通過DBA_SCHEDULER_JOB_CLASSES視圖(或ALL_SCHEDULER_JOB_CLASS視圖),例如: JSSWEB> select job_class_name,resource_consumer_group,service from dba_scheduler_job_classes; JOB_CLASS_NAME RESOURCE_CONSUMER_GROUP SERVICE ------------------------------ ------------------------------ ----------------------------- DEFAULT_JOB_CLASS AUTO_TASKS_JOB_CLASS AUTO_TASK_CONSUMER_GROUP MY_FIRST_JC當(dāng)創(chuàng)建Jobs時,可以通過JOB_CLASS參數(shù)來指定job所在的Job Class,如果不指定的話,創(chuàng)建的job默認屬于DEFAULT_JOB_CLASS。至于說如何查詢創(chuàng)建的jobs屬于哪個Job Class,還用說嗎,*_SCHEDULER_JOBS視圖中的JOB_CLASS列唄。 2、 管理Job ClassesDBMS_SCHEDULER.SET_ATTRIBUTE 過程大家應(yīng)當(dāng)還記的,前面的小節(jié)中演示中使用該過程,修改job的屬性,實際上SET_ATTRIBUTE也同樣可以用來修改Job Class的屬性,操作方法與修改job屬性完全相同,只不過作用函概的范圍更廣,修改Job Class后,該Job Class下屬的所有job屬性都會被級聯(lián)修改(當(dāng)前正運行的不會立刻生效,將等到下次運行時生效)。 例如:修改剛剛創(chuàng)建的MY_FIRST_JC的日志保存時間: JSSWEB> EXEC DBMS_SCHEDULER.SET_ATTRIBUTE(¨SYS.MY_FIRST_JC¨,¨LOG_HISTORY¨,¨30¨); PL/SQL procedure successfully completed.
3、 刪除Job ClassesDBMS_SCHEDULER 包提供了DROP_JOB_CLASS過程,用來刪除Job Classes。該過程調(diào)用非常簡單,例如,刪除剛剛創(chuàng)建的MY_FIRST_JC,執(zhí)行命令如下: JSSWEB> EXEC DBMS_SCHEDULER.DROP_JOB_CLASS(¨MY_FIRST_JC¨); PL/SQL procedure successfully completed.如果有多個Job Classes需要刪除,并不需要多次執(zhí)行DROP_JOB_CLASS,只需要在為該過程指定值時,參數(shù)值間以逗號分隔即可。 全面學(xué)習(xí)ORACLE Scheduler特性系列:
|
|