帮助做职业规划的网站,高手优化网站,关于网站建设新闻,免费接收邮箱验证码平台值此国庆佳节#xff0c;深宅家中#xff0c;闲来无事#xff0c;就多写几篇博文。今天继续宅继续写。本篇图文深入介绍Oracle DB Scheduler。
Oracle为什么要使Scheduler#xff1f;
答案就是6个字#xff1a;简化管理任务。 • Scheduler#xff08;调度程序#x…值此国庆佳节深宅家中闲来无事就多写几篇博文。今天继续宅继续写。本篇图文深入介绍Oracle DB Scheduler。
Oracle为什么要使Scheduler
答案就是6个字简化管理任务。 • Scheduler调度程序可以在任何 SQL 环境中通过 DBMS_SCHEDULER 包或通过 企业管理器EM来执行。如执行以下各类任务 • Jobs作业可以基于时间或事件启动执行当作业状态变更时Scheduler 能够生 成相应的事件。 • 可以使用一系列 Programs程序组合完成一个任务。
Scheduler的核心组件 Scheduler 的基本组件 • Job作业指定需要执行的任务内容。可以使用 PL / SQL procedure过程、本地的二进制可执行文件、Java应用程序或 shell 脚本。用户可以设定执行的程序what和调度when作为作业定义的一部分或者使用现有的程序或调度。 也可以使用作业的参数来自定制其运行时行为。 • Schedule调度/计划指定 job 执行的时间和次数。Schedule 可以基于时间或事件。用户可以通过设置一系列的日期、事件、或两者的组合以及用于表示重复间隔的附加说明来为作业定义计划。 可以设置一个 Schedule然后用于多个 Job 。 • Program程序可以做为多个 Job 的公用操作。通过 Program 可以为 Job预定义相同的可执行过程procedure、或外部命令executable、以及附带的运行参数argument。当 Job 的内容需要修改时只需更改Program 的设计即可无需逐个修改所有相关的 Job。
Job 的两个强制性组件设置 • What表示需要执行的动作在 command 区域和属性参数 job_type和 job_action 中设置。 • When表示执行上述动作的时间或调度计划在 schedule 中设置可以是基于时间、或事件、或者其他 job 的输出结果。
创建Scheduler的流程
可以在 Oracle Enterprise Manager 的图形环境中、或者在命令行使用DBMS_SCHEDULER PL/SQL 程序包执行以下操作使用调度程序来简化管理任务
创建 program程序 可选操作 • 可使多个 job 作业中可重复使用此 program 的操作 • 可更改 job 作业的调度而无需重新创建其中的 PL/SQL 块创建并使用 schedule调度创建并提交 job作业
注意事项
Program程序 • 使用调度程序时Program 程序是一个可选的设置。 • 可使用 CREATE_PROGRAM 过程来创建程序。 • 通过单独创建程序可以定义一次操作然后在多个作业中重用此操作。 • 使用这种方法您无须重新创建 PL/SQL 块即可更改作业的调度。 • 默认情况下程序是以禁用Disabled状态创建的。必须将 enabled 的参数值指定为TRUE 才能使用程序。Schedule调度 • Job 作业的调度可以是预设的调度可用 CREATE_SCHEDULE 过程创建也可以是在创建 Job 作业时设定。 • Schedule 指定 Job 作业运行的时间属性例如起始时间、结束时间、重复执行的时间间隔、或者使用其它预设调度的组合、或者需要满足特定的状态事件等等 • 通过使用 Schedule 调度而不是在 Job 作业定义中指定作业的执行次数可以统一管理多个作业的执行计划安排而无须更新多个作业的定义。Job作业 • Job 作业是一个组合其中可包括调度、要执行的操作、以及所需的附加参数。 • 可以设置作业的相关属性控制作业的执行方式。
持久轻量作业Persistent Lightweight Jobs
BEGIN
DBMS_SCHEDULER.CREATE_JOB (
job_name my_lightweight_job2
,
program_name MY_PROG
,
schedule_name MY_SCHED
,
job_style LIGHTWEIGHT);
END;什么是轻量作业(Lightweight Jobs),轻量作业有以下特点 • 减少启动作业所需的开销和时间 • 作业元数据和运行时数据在磁盘上占用很小的空间 • 必须使用作业模板在命令行中创建的 • 适用于在一秒内创建数百个作业。对于常规作业每个作业都要创建一个数据库对象用于描述作业、修改多个表以及在进程中生成 redo 记录。启动常规作业的开销是很大的轻量作业的目的是减少启动作业所需的开销和时间。只为作业创建极少的元数据以减少启动作业时所需的时间和 redo 记录。 • 作业的元数据以及运行时的数据在磁盘上占用很小的空间可在 RAC 环境中实现负载平衡。 • 必须使用作业模板创建。作业模板是一个存储过程或一个程序。存储过程可以保存作业所需的所有信息包括权限。其中只能设置少量的作业属性如作业参数和调度等。 • 只能在命令行中创建JOB_STYLE 参数在 EM 中不可用。
选择合适的作业类型
– 常规作业可提供最大的灵活性。 – 轻量作业可在很短的时间内创建大量作业。
限于篇幅本篇未完待续。
码字不易宝贵经验分享不易请各位支持原创转载注明出处多多关注作者后续不定期分享DB基本知识和排障案例及经验、性能调优等。