目录
相关链接
- 【官】129 DBMS_STATS
- 1. Excel目录
- 2. Oracle SYS.DBMS_SCHEDULER 目录
- 3. 129-41 SYS.DBMS_SCHEDULER.disable
- 4. 129-41 SYS.DBMS_SCHEDULER.enable
- 5. 129-41 SYS.DBMS_SCHEDULER.set_attribute
一、基本概念
[转载]
Oracle Scheduler包含的主要对象包括:Schedule,Program,Job,Job Class,Chain,Window,Database Destination,File Watcher,Credential …具体介绍如下:
-
Schedule (时间表)
- 通过 DBMS_SCHEDULER 包中的过程 CREATE_SCHEDULE 定义调度的开始时间,结束时间以及重复间隔
- CREATE_EVENT_SCHEDULE 过程用来创建由事件触发的时间表,由一个特定时间段内的一个事件调起一项任务
-
Program (程序)
- 定义了作业的形式及内容,作业形式可以是PL/SQL 匿名块,也可以是存储过程或者外部可执行文件,执行的存储过程带有输入参数时必须以匿名块运行
-
Job (作业)
- 通过CREATE_JOB创建一个作业,这个存储过程使用了重载,所以输入参数的选择可以非常灵活,既可以独立设置作业的时间、内容、Job Class,也可以引用已 - 经存在的Schedule 和 Program 来简化作业的创建
-
Job Class (作业类)
- 作业类中定义了Resource Consumer Group ,Service(RAC),日志等级,日志保留时间。要注意的一点是在Resource Manager中,service 参数会将会话映射到一个 资源用户组,如果同时指定了RAC节点和用户组,用户组参数优先
-
Chain (链)
- 说白了就是一系列的作业通过链来建立起一套依赖关系,大概的思路是这样的:先使 CREATE_CHAIN 创建一个链,再通过 DEFINE_CHAIN_STEP 和 DEFINE_CHAIN_EVENT_STEP 给要链接的 Program、Sub Chain、Event Condition、Event Schedule 分别定义一个别名(step_name),然后拿 DEFINE_CHAIN_RULE 定义这些 Step 的依赖规则,一通判断、分支、嵌套之后,链就算创建完成了,在 CREATE_JOB 时 (job_type => ‘CHAIN’,job_action => ‘chain_name’) 就可以了,做人得讲究,这个必须上图:
- 说白了就是一系列的作业通过链来建立起一套依赖关系,大概的思路是这样的:先使 CREATE_CHAIN 创建一个链,再通过 DEFINE_CHAIN_STEP 和 DEFINE_CHAIN_EVENT_STEP 给要链接的 Program、Sub Chain、Event Condition、Event Schedule 分别定义一个别名(step_name),然后拿 DEFINE_CHAIN_RULE 定义这些 Step 的依赖规则,一通判断、分支、嵌套之后,链就算创建完成了,在 CREATE_JOB 时 (job_type => ‘CHAIN’,job_action => ‘chain_name’) 就可以了,做人得讲究,这个必须上图:
-
Window (窗口)
- 窗口指的是一个时间段,,通常用来调起作业,或者在不同的时间段激活不同的 Resource Plan 以调整作业之间的资源分配,文档中还提到了 Overlapping Windows ,有图有真相:
- 窗口指的是一个时间段,,通常用来调起作业,或者在不同的时间段激活不同的 Resource Plan 以调整作业之间的资源分配,文档中还提到了 Overlapping Windows ,有图有真相:
-
Database Destination (数据库路径)
- 通过 CREATE_DATABASE_DESTINATION 创建,在 CREATE_JOB 中作为一个输入参数,用来执行远程调度
-
Credential (证书)
- 证书用来保存OS或者数据库的用户密码,在执行External Job 或者远程数据库作业时使用
-
File Watcher (文件监视器)
- 可以用来检测一个OS文件是否存在,根据文件大小判断传输是否完成,继而触发一个 Event Schedule
二、SYS.DBMS_SCHEDULER
2.1 Job Tasks and Their Procedures
主 要 工 作 任 务
Task 任务 | Procedure 存储过程(名称) | Privilege Needed 所需权限 |
---|---|---|
Create a job 创建一个作业 | CREATE_JOB or CREATE_JOBS | CREATE JOB or CREATE ANY JOB |
Alter a job 修改一个作业 | SET_ATTRIBUTE or SET_JOB_ATTRIBUTES | ALTER or CREATE ANY JOB or be the owner |
Run a job 运行一个作业 | RUN_JOB | ALTER or CREATE ANY JOB or be the owner |
Copy a job 复制一个作业 | COPY_JOB | ALTER or CREATE ANY JOB or be the owner |
Drop a job 删除一个作业 | DROP_JOB | ALTER or CREATE ANY JOB or be the owner |
Stop a job 停止一个作业 | STOP_JOB | ALTER or CREATE ANY JOB or be the owner |
Disable a job 使一个作业不可用 | DISABLE | ALTER or CREATE ANY JOB or be the owner |
Enable a job 使一个作业可用 | ENABLE | ALTER or CREATE ANY JOB or be the owner |
2.2 Stopping Chains
To stop a running chain, you call DBMS_SCHEDULER.STOP_JOB, passing the name of the chain job (the job that started the chain). When you stop a chain job, all steps of the chain that are running are stopped and the chain ends.
调用DBMS_SCHEDULER.STOP_JOB可以停止运行链,调用存储过程需传入name参数(启动链的作业)。停止一个链作业时,链上正在运行的所有步骤都会停止,链也会结束。
20/09/14
M