图文深入理解Oracle DB Scheduler
值此国庆佳节,深宅家中,闲来无事,就多写几篇博文。今天继续宅继续写。本篇图文深入介绍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基本知识和排障案例及经验、性能调优等。
相关文章:
图文深入理解Oracle DB Scheduler
值此国庆佳节,深宅家中,闲来无事,就多写几篇博文。今天继续宅继续写。本篇图文深入介绍Oracle DB Scheduler。 Oracle为什么要使Scheduler? 答案就是6个字:简化管理任务。 • Scheduler(调度程序&#x…...
gin如何具体利用Server-Send-Events(SSE)实时推送技术实现消息推送
目录 业务场景 解决方案 1. 轮询 2. WebSocket 3. SSE(Server-Send-Events) 代码实现 总结 业务场景 在抖音、美团等APP中,我们经常会遇到APP内部的消息推送,如关注的人的动态消息推送、点赞评论互动消息推送以及算法推荐消息推送。这些场景都是…...
写端口-tcp udp不同方式发包和接包
最近一直在学习网络编程,今天把 socket部分做一个总结。 Python 的socket库可以实现不同协议不同地址的发包和收包,无奈资料很少,官方例子有限,大神博客很少提及, 经过一番尝试后,总结以下几点用法以便大家…...
计算机的错误计算(一百二十)
摘要 探讨在许多应用中出现的函数 的计算精度问题。 例1. 考虑在许多应用中出现的函数 计算 不妨在Python下计算: 若用下列Rust代码在线计算: fn f(x: f64) -> f64 {(x.exp() - 1.0) / x }fn main() {let result f(0.9e-13);println!("…...
Spring Boot 中使用 JSON Schema 来校验复杂 JSON 数据
博客主页: 南来_北往 系列专栏:Spring Boot实战 在现代软件开发中,尤其是构建 RESTful API 时,处理 JSON 数据已成为一项基本任务。JSON(JavaScript Object Notation)因其轻量级和易于人类阅读的特点ÿ…...
QT实现Opencv图像处理
案例 基于QT的人脸识别 pro文件需要加以下代码 INCLUDEPATH E:/opencv/opencv3.4-qt-intall/install/include INCLUDEPATH E:/opencv/opencv3.4-qt-intall/install/include/opencv INCLUDEPATH E:/opencv/opencv3.4-qt-intall/install/include/opencv2 LIBS E:/opencv/o…...
刚转Mac的新手如何卸载不需要的应用程序
最开始转Mac系统的时候很是苦恼,到底该怎么卸载App啊,App直接拖到废纸篓真的能卸载干净吗,卸载App时会不会留下一些文件残留,慢慢的会不会占满内存,于是我找到了一个免费的卸载工具——XApp。 这是一款Mac应用程序卸载…...
Unity 3d 继承MonoBahaviour的单例
在使用Unity3d开发游戏或做客户端项目时,单例是最常见的模式之一,他简单了类的创建,在代码中可以直接调用。下面是两个例子,代码两种不同类型的单例,一个是基本类的单例基类,不是unity MonoBehaviour的类都…...
grafana version 11.1.0 设置Y轴刻度为1
grafana 版本 # /usr/share/grafana/bin/grafana --version grafana version 11.1.0设置轴 Axis 搜索 Standard options 在"Decimals"中输入0,确保只显示整数...
Elasticsearch的安装与配置
注意:elasticsearch 禁止安装在/root路径下! 1、创建用户组 groupadd elastic 2、创建用户 useradd es -d /home/es -g elastic echo es | passwd es --stdin 3、给新创建的用户进行授权 chown -R es:elastic /home/es chmod -R 775 /home/es 4…...
win0删除 Windows.old
参考:https://blog.csdn.net/xitongzhijia_abc/article/details/126270452 win10如下所示: 打开 设置–>系统—>存储...
常见IDE及其编译器的讲解
IDE 意思是:集成开发环境 常见的IDE有哪些? eg. devC,VS2022,xcode,codeblocks,clion常见编译器有哪些? eg.msvc,gcc,clang微软的底层编译器是msvc苹果的底层编译器是clang IDE编译器特点devC集成了gcc小巧,工具简单&…...
用SQLyog连接mysql提示2058错误
1)在cmd下(必须是这个,不能是gitbash) // step1:修改下数据库 C:\Users\elex>mysql -uroot -p Enter password: **** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 97 Server version: 8.1.0 MySQL Community Server - GPLCopy…...
Web集群服务-Nginx
1. web服务 1. WEB服务:网站服务,部署并启动了这个服务,你就可以搭建一个网站 2. WEB中间件: 等同于WEB服务 3. 中间件:范围更加广泛,指的负载均衡之后的服务 4. 数据库中间件:数据库缓存,消息对列 2. 极速上手指南 nginx官网: nginx documentation 2.1 配置yum源 vim /etc/…...
获取时隔半个钟的三天
摘要: 今天遇到需求是配送时间,时隔半个钟的排线!所以需要拼接时间!例如2024-10-08 14:30,2024-10-08 15:00,2024-10-08 15:30 <el-form-item label"配送时间&a…...
构建可以ssh连接的容器镜像
构建可以ssh连接的容器镜像 构建可以通过ssh进行连接容器镜像,实现远程登录容器的目的。 ubuntu ssh容器镜像 你可以使用以下Dockerfile来构建一个可以SSH的容器镜像: FROM ubuntu:20.04MAINTAINER lldhsds# 配置apt国内源 COPY sources.list /etc/a…...
数据库中JOIN的用法?
在数据库中,JOIN 操作用于结合来自两个或多个表的数据,基于它们之间的相关列。JOIN 是关系数据库查询中一个非常重要的功能,允许你从多个表中提取相关的数据。以下是几种常见的 JOIN 类型及其用法: INNER JOIN: 返回两个表中匹配的…...
java项目之纺织品企业财务管理系统源码(springboot+vue+mysql)
风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的纺织品企业财务管理系统。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 基于spring boot…...
C语言 编程练习:解决五个有趣的问题
文章目录 编程练习:解决五个有趣的问题1. 出租车费用计算器1. 1 代码code 2. 成绩转换统计2. 1 代码code 3. 交错序列求和3. 1 代码code 4. 阶乘序列求和4. 1 代码code 5. 输出星号图案5. 1 代码code 编程练习:解决五个有趣的问题 在编程的世界里&#…...
二、安装vmtools
1、 介绍 vmtools 安装后,可以让我们在 windows 下更好的管理 vm 虚拟机。可以设置 windows 和 centos 的共享文件夹 当时当我们发现安装虚拟机工具位置是灰色的 右击打开终端 在终端输入命令 yum list installed | grep open-vm-*yum list installed 命令会列出…...
多模态2025:技术路线“神仙打架”,视频生成冲上云霄
文|魏琳华 编|王一粟 一场大会,聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中,汇集了学界、创业公司和大厂等三方的热门选手,关于多模态的集中讨论达到了前所未有的热度。其中,…...
基于Java+MySQL实现(GUI)客户管理系统
客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息,对客户进行统一管理,可以把所有客户信息录入系统,进行维护和统计功能。可通过文件的方式保存相关录入数据,对…...
Webpack性能优化:构建速度与体积优化策略
一、构建速度优化 1、升级Webpack和Node.js 优化效果:Webpack 4比Webpack 3构建时间降低60%-98%。原因: V8引擎优化(for of替代forEach、Map/Set替代Object)。默认使用更快的md4哈希算法。AST直接从Loa…...
MySQL 8.0 事务全面讲解
以下是一个结合两次回答的 MySQL 8.0 事务全面讲解,涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容,并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念(ACID) 事务是…...
【学习笔记】erase 删除顺序迭代器后迭代器失效的解决方案
目录 使用 erase 返回值继续迭代使用索引进行遍历 我们知道类似 vector 的顺序迭代器被删除后,迭代器会失效,因为顺序迭代器在内存中是连续存储的,元素删除后,后续元素会前移。 但一些场景中,我们又需要在执行删除操作…...
tomcat入门
1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效,稳定,易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...
什么是VR全景技术
VR全景技术,全称为虚拟现实全景技术,是通过计算机图像模拟生成三维空间中的虚拟世界,使用户能够在该虚拟世界中进行全方位、无死角的观察和交互的技术。VR全景技术模拟人在真实空间中的视觉体验,结合图文、3D、音视频等多媒体元素…...
Java 与 MySQL 性能优化:MySQL 慢 SQL 诊断与分析方法详解
文章目录 一、开启慢查询日志,定位耗时SQL1.1 查看慢查询日志是否开启1.2 临时开启慢查询日志1.3 永久开启慢查询日志1.4 分析慢查询日志 二、使用EXPLAIN分析SQL执行计划2.1 EXPLAIN的基本使用2.2 EXPLAIN分析案例2.3 根据EXPLAIN结果优化SQL 三、使用SHOW PROFILE…...
车载诊断架构 --- ZEVonUDS(J1979-3)简介第一篇
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 做到欲望极简,了解自己的真实欲望,不受外在潮流的影响,不盲从,不跟风。把自己的精力全部用在自己。一是去掉多余,凡事找规律,基础是诚信;二是…...
更新 Docker 容器中的某一个文件
🔄 如何更新 Docker 容器中的某一个文件 以下是几种在 Docker 中更新单个文件的常用方法,适用于不同场景。 ✅ 方法一:使用 docker cp 拷贝文件到容器中(最简单) 🧰 命令格式: docker cp <…...
