当前位置: 首页 > news >正文

图文深入理解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 程序包执行以下操作,使用调度程序来简化管理任务:

  1. 创建 program(程序)- 可选操作
    • 可使多个 job 作业中可重复使用此 program 的操作
    • 可更改 job 作业的调度,而无需重新创建其中的 PL/SQL 块
  2. 创建并使用 schedule(调度)
  3. 创建并提交 job(作业)

注意事项

  1. Program(程序)
    • 使用调度程序时,Program 程序是一个可选的设置。
    • 可使用 CREATE_PROGRAM 过程来创建程序。
    • 通过单独创建程序,可以定义一次操作,然后在多个作业中重用此操作。
    • 使用这种方法,您无须重新创建 PL/SQL 块即可更改作业的调度。
    • 默认情况下,程序是以禁用(Disabled)状态创建的。必须将 enabled 的参数值指定为TRUE 才能使用程序。
  2. Schedule(调度)
    • Job 作业的调度可以是预设的调度(可用 CREATE_SCHEDULE 过程创建),也可以是在创建 Job 作业时设定。
    • Schedule 指定 Job 作业运行的时间属性,例如:起始时间、结束时间、重复执行的时间间隔、或者使用其它预设调度的组合、或者需要满足特定的状态事件等等
    • 通过使用 Schedule 调度(而不是在 Job 作业定义中指定作业的执行次数),可以统一管理多个作业的执行计划安排,而无须更新多个作业的定义。
  3. 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)因其轻量级和易于人类阅读的特点&#xff…...

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/…...

获取时隔半个钟的三天

摘要&#xff1a; 今天遇到需求是配送时间&#xff0c;时隔半个钟的排线&#xff01;所以需要拼接时间&#xff01;例如2024-10-08 14&#xff1a;30&#xff0c;2024-10-08 15&#xff1a;00&#xff0c;2024-10-08 15&#xff1a;30 <el-form-item label"配送时间&a…...

构建可以ssh连接的容器镜像

构建可以ssh连接的容器镜像 构建可以通过ssh进行连接容器镜像&#xff0c;实现远程登录容器的目的。 ubuntu ssh容器镜像 你可以使用以下Dockerfile来构建一个可以SSH的容器镜像&#xff1a; FROM ubuntu:20.04MAINTAINER lldhsds# 配置apt国内源 COPY sources.list /etc/a…...

数据库中JOIN的用法?

在数据库中&#xff0c;JOIN 操作用于结合来自两个或多个表的数据&#xff0c;基于它们之间的相关列。JOIN 是关系数据库查询中一个非常重要的功能&#xff0c;允许你从多个表中提取相关的数据。以下是几种常见的 JOIN 类型及其用法&#xff1a; INNER JOIN: 返回两个表中匹配的…...

java项目之纺织品企业财务管理系统源码(springboot+vue+mysql)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的纺织品企业财务管理系统。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 基于spring boot…...

C语言 编程练习:解决五个有趣的问题

文章目录 编程练习&#xff1a;解决五个有趣的问题1. 出租车费用计算器1. 1 代码code 2. 成绩转换统计2. 1 代码code 3. 交错序列求和3. 1 代码code 4. 阶乘序列求和4. 1 代码code 5. 输出星号图案5. 1 代码code 编程练习&#xff1a;解决五个有趣的问题 在编程的世界里&#…...

二、安装vmtools

1、 介绍 vmtools 安装后&#xff0c;可以让我们在 windows 下更好的管理 vm 虚拟机。可以设置 windows 和 centos 的共享文件夹 当时当我们发现安装虚拟机工具位置是灰色的 右击打开终端 在终端输入命令 yum list installed | grep open-vm-*yum list installed 命令会列出…...

网络六边形受到攻击

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 抽象 现代智能交通系统 &#xff08;ITS&#xff09; 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 &#xff08;…...

conda相比python好处

Conda 作为 Python 的环境和包管理工具&#xff0c;相比原生 Python 生态&#xff08;如 pip 虚拟环境&#xff09;有许多独特优势&#xff0c;尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处&#xff1a; 一、一站式环境管理&#xff1a…...

C++ 基础特性深度解析

目录 引言 一、命名空间&#xff08;namespace&#xff09; C 中的命名空间​ 与 C 语言的对比​ 二、缺省参数​ C 中的缺省参数​ 与 C 语言的对比​ 三、引用&#xff08;reference&#xff09;​ C 中的引用​ 与 C 语言的对比​ 四、inline&#xff08;内联函数…...

【HTML-16】深入理解HTML中的块元素与行内元素

HTML元素根据其显示特性可以分为两大类&#xff1a;块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

用docker来安装部署freeswitch记录

今天刚才测试一个callcenter的项目&#xff0c;所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈

在日常iOS开发过程中&#xff0c;性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期&#xff0c;开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发&#xff0c;但背后往往隐藏着系统资源调度不当…...

AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别

【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而&#xff0c;传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案&#xff0c;能够实现大范围覆盖并远程采集数据。尽管具备这些优势&#xf…...

如何更改默认 Crontab 编辑器 ?

在 Linux 领域中&#xff0c;crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用&#xff0c;用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益&#xff0c;允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...

Git常用命令完全指南:从入门到精通

Git常用命令完全指南&#xff1a;从入门到精通 一、基础配置命令 1. 用户信息配置 # 设置全局用户名 git config --global user.name "你的名字"# 设置全局邮箱 git config --global user.email "你的邮箱example.com"# 查看所有配置 git config --list…...

Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement

Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement 1. LAB环境2. L2公告策略2.1 部署Death Star2.2 访问服务2.3 部署L2公告策略2.4 服务宣告 3. 可视化 ARP 流量3.1 部署新服务3.2 准备可视化3.3 再次请求 4. 自动IPAM4.1 IPAM Pool4.2 …...