[Oracle] Scheduler和Job

Oracle Scheduler是用来管理和计划数据库的Job,通过它可以让很多常规的数据库任务自动执行,减少人为干预,解放劳动力,本质上来说,它和Linux的crontab,商业任务管理软件如Autosys, UC4一样,只是它们的领域不一样,Oracle Scheduler专注于Oracle数据库Job的自动化管理、维护和监控。

本篇是理论篇,介绍Oracle Scheduler的基本概念,Oracle Scheduler的名词很多,下面一一介绍:

Program (程序)

Program是指Job执行的对象,如存储过程、PL/SQL块、外部可执行程序等

Schedule (计划)

Schedule定义Job什么时候执行,以及执行的次数,有以下两种类似的Schedule:

1)基于时间的计划(Time Schedule)

2)基于事件的计划(Event Schedule)

Destination (地点)

Destination定义Job执行的地点,有以下两种:

1)数据库(Database Destination):表示Job在数据库里执行(包含本地和远程的数据库)

2)外部(External Destination):表示Job在数据库外执行

这里有要注意的是:如果Job执行的地点在远程,则必须把Scheduler Agent安装在远程主机上。

File Watcher(文件看守者)

文件看守者定义目的地、文件名等属性,一旦有符合条件的文件到达便触发一个事件,启动Job

Credential (认证)

Credential定义了用户密码对,只有通过认证的Job才能启动,主要有以下两种认证:

1)远程数据库认证

2)外部认证(如操作系统)

Chain (任务链)

Chain用于定义一系列Job执行的依赖关系

Window(时间窗口)

时间窗口用于定义一天中的某个时间段内Job的资源分配情况。

Group(组)

一系列相同的对象组成Group,有以下三种Group:

1)Database Destination Group

2)External Destination Group

3)Window Group

Job, Program, Schedule是如何交互的?

上图显示了它们之间的关系,同一个Program可以被多个Job调用,同样地,多个Job可以共用同一个Schedule

Scheduler架构


如上图所示,Scheduler主要包含以下几个组件:

1)Job Table:存放所有Job的信息,可通过视图*_scheduler_jobs查看

2)Job Coordinator:它是一个或多个后台进程(cjqNNN),用于控制和启动Job Slave

3)Job Slave(JS):真正执行Job的进程



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值