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

Oracle Scheduler学习

参考文档:
Primary Note: Overview of Oracle Scheduler (Doc ID 1485539.1)


Oracle® Database Administrator's Guide
12c Release 1 (12.1)
E17636-21
Chapter(30) Administering Oracle Scheduler
Examples of Using the Scheduler
http://docs.oracle.com/cd/E16655_01/server.121/e17636/schedadmin.htm#ADMIN12062

Oracle® Database Administrator's Guide
12c Release 1 (12.1)
E17636-21
Chapter(28) Oracle Scheduler Concepts
http://docs.oracle.com/cd/E16655_01/server.121/e17636/schedover.htm#ADMIN033

Oracle® Database PL/SQL Packages and Types Reference
12c Release 1 (12.1)
E17602-14
Chapter(138) DBMS_SCHEDULER
http://docs.oracle.com/cd/E16655_01/appdev.121/e17602/d_sched.htm#ARPLS72235

Oracle® Database 
Database Administrator’s Guide 19c 
E96348-16 September 2022
https://docs.oracle.com/en/database/oracle/oracle-database/19/admin/index.html

Creating a scheduler job that inserts the systimestamp into a table every second

SQL> create table messages (message varchar2(100) not null);Table created.SQL> select * from messages;no rows selectedSQL> Begin2    DBMS_SCHEDULER.CREATE_JOB (3             job_name             => 'job_runs_every_second',4             job_type             => 'PLSQL_BLOCK',5             job_action           => 'Begin insert into messages values (''Current Timestamp is: '' || SYSTIMESTAMP); commit; End;',6             start_date           => SYSTIMESTAMP,7             repeat_interval      => 'freq=secondly; interval=1',8             end_date             => null,9             enabled              => TRUE,10             comments             => 'A job scheduled to insert into messages table the current timestamp every second');11  End;12  /PL/SQL procedure successfully completed.SQL> Begin2    DBMS_SCHEDULER.RUN_JOB (job_name => 'job_runs_every_second');3  End;4  /PL/SQL procedure successfully completed.SQL> select * from messages;MESSAGE
----------------------------------------------------------------------------------------------------
Current Timestamp is: 24-AUG-12 04.57.00.647000 PM +02:00
Current Timestamp is: 24-AUG-12 04.57.01.624000 PM +02:00
Current Timestamp is: 24-AUG-12 04.57.02.757000 PM +02:00
Current Timestamp is: 24-AUG-12 04.57.03.807000 PM +02:00
Current Timestamp is: 24-AUG-12 04.57.04.816000 PM +02:00
Current Timestamp is: 24-AUG-12 04.57.05.814000 PM +02:00
Current Timestamp is: 24-AUG-12 04.57.06.813000 PM +02:00
Current Timestamp is: 24-AUG-12 04.57.07.812000 PM +02:00
Current Timestamp is: 24-AUG-12 04.57.08.813000 PM +02:00
Current Timestamp is: 24-AUG-12 04.57.09.810000 PM +02:0010 rows selected.SQL> Begin2    DBMS_SCHEDULER.DISABLE (name => 'job_runs_every_second', FORCE=>TRUE);3  End;4  /PL/SQL procedure successfully completed.SQL> Begin2    DBMS_SCHEDULER.DROP_JOB (job_name => 'job_runs_every_second');3  End;4  /PL/SQL procedure successfully completed.SQL> drop table messages;Table dropped.

Creating a scheduler job that gathers <USER> CBO stats every day at mid-night and every weekend day at 06:00 am

-- create weekdays schedule
SQL> Begin2    DBMS_SCHEDULER.CREATE_SCHEDULE (3        schedule_name => 'WEEKDAYS_MID_NIGHTS_SCHEDULE',4        start_date => NULL, -- If start_date is null, then the date that the job or window is enabled is used.5        repeat_interval => 'freq=daily;byhour=0;byminute=0;bysecond=0;byday=MON,TUE,WED,THU,FRI',6        end_date => NULL,7        comments => 'starts every day Mon-Fri at 12:00 am');8  End;9  /PL/SQL procedure successfully completed.-- create weekends schedule
SQL> Begin2    DBMS_SCHEDULER.CREATE_SCHEDULE (3        schedule_name => 'WEEKENDS_SCHEDULE',4        start_date => NULL, -- If start_date is null, then the date that the job or window is enabled is used.5        repeat_interval => 'freq=daily;byhour=6;byminute=0;bysecond=0;byday=SAT,SUN',6        end_date => NULL,7        comments => 'starts every weekend SAT-SUN at 06:00 am');8  End;9  /PL/SQL procedure successfully completed.-- create weekdays window
SQL> Begin2    DBMS_SCHEDULER.CREATE_WINDOW (3        window_name => 'WEEKDAYS_MID_NIGHTS_WINDOW',4        resource_plan => 'DEFAULT_MAINTENANCE_PLAN',5        schedule_name => 'WEEKDAYS_MID_NIGHTS_SCHEDULE',6        duration => '0 06:00:00',7        window_priority => 'HIGH',8        comments => 'window opens every day Mon-fri at 12:00 am and ends at 06:00 am');9  End;10  /PL/SQL procedure successfully completed.-- create weekends window
SQL> Begin2    DBMS_SCHEDULER.CREATE_WINDOW (3        window_name => 'WEEKENDS_WINDOW',4        resource_plan => 'DEFAULT_MAINTENANCE_PLAN',5        schedule_name => 'WEEKENDS_SCHEDULE',6        duration => '0 06:00:00',7        window_priority => 'HIGH',8        comments => 'window opens every Saturday & Sunday at 06:00 am');9  End;10  /PL/SQL procedure successfully completed.-- create a window group for both weekdays and weekends schedule
SQL> Begin2    DBMS_SCHEDULER.CREATE_GROUP (3     group_name => 'MAINTENANCE_GROUP',4     group_type => 'WINDOW',5     member => 'WEEKDAYS_MID_NIGHTS_WINDOW,WEEKENDS_WINDOW',6     comments => 'This group is designed for grouping weekdays and weekends maintenance windows');7  End;8  /PL/SQL procedure successfully completed.-- create stored procedure
SQL> CREATE OR REPLACE PROCEDURE "SYS"."GATHER_<USER>_STATISTICS_PROC" AS2  Begin3     DBMS_STATS.GATHER_SCHEMA_STATS(ownname => '<USER>', estimate_percent => 100);4  End;5  /Procedure created.-- create program that runs the stored procedure
SQL> Begin2    DBMS_SCHEDULER.CREATE_PROGRAM (3     program_name             => 'GATHER_<USER>_STATS_PROGRAM',4     program_type             => 'STORED_PROCEDURE',5     program_action           => '"SYS"."GATHER_<USER>_STATISTICS_PROC"',6     number_of_arguments      => 0,7     enabled                  => TRUE,8     comments                 => 'This is the program unit that calls the concerned stored procedure');9  End;10  /PL/SQL procedure successfully completed.-- create job
SQL> Begin2    DBMS_SCHEDULER.CREATE_JOB (3     job_name                => 'GATHER_<USER>_STATISTICS_JOB',4     program_name            => 'GATHER_<USER>_STATS_PROGRAM',5     schedule_name           => 'MAINTENANCE_GROUP',6     enabled                 => TRUE,7     auto_drop               => FALSE,8     comments                => 'Job that gathers CBO stats for <USER> schema everyday at 12:00 am and every weekend at 06:00 am',9     job_style               => 'REGULAR');10  End;11  /PL/SQL procedure successfully completed.

File Watcher Case Study

SQL*Plus: Release 12.1.0.1.0 Production on Thu Mar 6 13:31:09 2014Copyright (c) 1982, 2013, Oracle.  All rights reserved.Enter user-name: / as sysdbaConnected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing optionsSQL> --
SQL> -- Setting the monitoring repeat interval to 1 minute
SQL> --
SQL> begin2      dbms_scheduler.set_attribute ('FILE_WATCHER_SCHEDULE', 'REPEAT_INTERVAL', 'FREQ=MINUTELY;INTERVAL=1');3  end;4  /PL/SQL procedure successfully completed.SQL> grant dba to fw identified by fw;Grant succeeded.SQL> conn fw/fw
Connected.
SQL> --
SQL> -- creating necessary credential
SQL> --
SQL> begin2      dbms_scheduler.create_credential('FW_CREDENTIAL', 'Administrator', 'vcap4CEL');3  end;4  /PL/SQL procedure successfully completed.SQL> --
SQL> -- creating file watcher
SQL> --
SQL> begin2      dbms_scheduler.create_file_watcher (3          file_watcher_name => 'FW_FILE_WATCHER',4          directory_path => 'C:\xxx',5          file_name => '*.txt',6          credential_name => 'FW_CREDENTIAL',7          destination => null,8          enabled => false);9  end;10  /PL/SQL procedure successfully completed.SQL> --
SQL> -- creating monitoring table
SQL> --
SQL> create table fw_monitoring (2      file_timestamp timestamp with time zone,3      directory_path varchar2(4000),4      file_size number);Table created.SQL> --
SQL> -- creating procedure
SQL> --
SQL> create or replace procedure FW_PROC (fw_result in sys.scheduler_filewatcher_result) as2  begin3      insert into fw_monitoring values (4          fw_result.file_timestamp,5          fw_result.directory_path || '/' || fw_result.actual_file_name,6          fw_result.file_size);7  end;8  /Procedure created.SQL> --
SQL> -- creating program
SQL> --
SQL> begin2      dbms_scheduler.create_program (3          program_name => 'FW.FW_PROG',4          program_type => 'STORED_PROCEDURE',5          program_action => 'FW_PROC',6          number_of_arguments => 1,7          enabled => false);8  end;9  /PL/SQL procedure successfully completed.SQL> --
SQL> -- defining metadata argument
SQL> --
SQL> begin2      dbms_scheduler.define_metadata_argument (3          program_name => 'FW.FW_PROG',4          metadata_attribute => 'event_message',5          argument_position => 1);6  end;7  /PL/SQL procedure successfully completed.SQL> --
SQL> -- creating job
SQL> --
SQL> begin2      dbms_scheduler.create_job (3          job_name => 'FW.FW_JOB',4          program_name => 'FW.FW_PROG',5          event_condition => null,6          queue_spec => 'FW_FILE_WATCHER',7          auto_drop => false,8          enabled => false);9  end;10  /PL/SQL procedure successfully completed.SQL> --
SQL> -- setting parallel instances
SQL> --
SQL> begin2      dbms_scheduler.set_attribute ('FW.FW_JOB','PARALLEL_INSTANCES', true);3  end;4  /PL/SQL procedure successfully completed.SQL> --
SQL> -- enable program, job and file watcher
SQL> --
SQL> begin2      dbms_scheduler.enable ('FW.FW_PROG, FW.FW_JOB, FW_FILE_WATCHER');3  end;4  /PL/SQL procedure successfully completed.SQL> -- create <file.txt> in 'c:\xxx' folder
SQL> select to_char(sysdate, 'dd-mm-yyyy hh:mi:ss') as "current time" from dual;current time                                                                                                                                                                                                                                                                                         
-------------------                                                                                                                                                                                                                                                                                         
06-03-2014 01:27:54                                                                                                                                                                                                                                                                                         SQL> select * from fw_monitoring;no rows selectedSQL> -- wait for at least 1 minute
SQL> select to_char(sysdate, 'dd-mm-yyyy hh:mi:ss') as "current time" from dual;current time                                                                                                                                                                                                                                                                                                
-------------------                                                                                                                                                                                                                                                                                         
06-03-2014 01:29:00                                                                                                                                                                                                                                                                                         SQL> select * from fw_monitoring;FILE_TIMESTAMP                                               DIRECTORY_PATH                  FILE_SIZE                                                                                                  
------------------------------------------------------------ ------------------------------ ----------                                                                                                  
06-MAR-14 01.27.32.376000 PM +00:00                          C:\xxx/file.txt                      0                                                                                                  

END

相关文章:

Oracle Scheduler学习

参考文档&#xff1a; Primary Note: Overview of Oracle Scheduler (Doc ID 1485539.1) Oracle Database Administrators Guide 12c Release 1 (12.1) E17636-21 Chapter(30) Administering Oracle Scheduler Examples of Using the Scheduler http://docs.oracle.com/cd/E166…...

用户体验地图是什么?UX设计心得分享

大家好&#xff0c;我是设计师l1m0身。本篇文章是关于UX设计中的用户体验地图。 对于新手设计师来说&#xff0c;建立用户体验地图会有一些难度。本篇文章中&#xff0c;我会以简单、易懂的语言分享UX设计师如何制作用户体验地图&#xff0c;希望对你的日常项目体验提升有所帮…...

vue3动态路由警告问题

{ path: "/:pathMatch(.*)*", // 必备 component: () > import("/views/error/404.vue"), }, 路由里添加...

17 Linux之大数据定制篇-Shell编程

17 Linux之大数据定制篇-Shell编程 文章目录 17 Linux之大数据定制篇-Shell编程17.1 Shell编程简介17.1.1 为什么要学习Shell编程17.1.2 Shell是什么17.1.3 执行Shell脚本 17.2 Shell的变量17.2.1 Shell变量介绍17.2.2 设置环境变量17.2.3 位置参数变量17.2.4 预定义变量 17.3 …...

SpringBoot集成WebSocket

SpringBoot集成WebSocket 项目结构图 项目架构图 前端项目 socket.js 注意前端这里的端口是9000, 路劲是ws开头 function createScoket(token){var socket;if(typeof(WebSocket) "undefined") {console.log("您的浏览器不支持WebSocket");}else{var ho…...

Linux服务器部署JavaWeb后端项目

适用于&#xff1a;MVVM前后台分离开发、部署、域名配置 前端&#xff1a;Vue 后端&#xff1a;Spring Boot 这篇文章只讲后端部署&#xff0c;前端部署戳这里 目录 Step1&#xff1a;服务器上搭建后端所需环境1、更新服务器软件包2、安装JDK83、安装MySQL4、登录MySQL5、修…...

原生小程序 wxs 语法(详细)

WXS WXS&#xff08;WeiXin Script&#xff09;是内联在 WXML 中的脚本段。通过 WXS 可以在模版中内联少量处理脚本&#xff0c;丰富模板的数据预处理能力。另外&#xff0c; WXS 还可以用来编写简单的 WXS 事件响应函数。 从语法上看&#xff0c; WXS 类似于有少量限制的 Java…...

MySQL中count(*)和count(1)和count(column)使用比较

分页查询数据&#xff0c;需要返回total&#xff0c;而这个值一般都是通过count函数实现。但是&#xff0c;针对count函数&#xff0c;有多种写法&#xff0c;如count(*)、count(1) 和 count(column)等。本文主要介绍以上几种写法的差异。 注意&#xff0c;这里仅针对MySQL数据…...

python用 xlwings库对Excel进行 字体、边框设置、合并单元格, 版本转换等操作

xlwings 其他的一些单元格读取写入操作网上很多&#xff0c; 下面就写些如何设置单元格的 字体对齐&#xff0c;字体大小、边框&#xff0c; 合并单元格&#xff0c; 这些设置。 import xlwings as xwapp xw.App(visibleTrue, add_bookFalse) app.display_alerts False #…...

Golang 中的 archive/zip 包详解(二):常用类型

Golang 中的 archive/zip 包用于处理 ZIP 格式的压缩文件&#xff0c;提供了一系列用于创建、读取和解压缩 ZIP 格式文件的函数和类型&#xff0c;使用起来非常方便。 zip.File 类型 定义如下&#xff1a; type File struct {FileHeaderzip *Readerzipr io…...

Qt应用开发(基础篇)——错误提示框 QErrorMessage

一、前言 QErrorMessage类继承于QDialog&#xff0c;是一个用来显示错误信息的对话框。 提示框QDialog 消息对话框 QMessageBox QErrorMessage错误消息对话框提供了一个主文本窗口、一个复选框、一个图标和按钮。文本框用来显示错误信息&#xff0c;复选框用来让用户选择未来是…...

HLS 后端示例

更多 TVM 中文文档可访问 →Apache TVM 是一个端到端的深度学习编译框架&#xff0c;适用于 CPU、GPU 和各种机器学习加速芯片。 | Apache TVM 中文站 TVM 支持带有 SDAccel 的 Xilinx FPGA 板&#xff0c;接下来介绍如何将 TVM 部署到 AWS F1 FPGA 实例。 备注&#xff1a;此功…...

实录分享 | Alluxio在AI/ML场景下的应用

欢迎来到【微直播间】&#xff0c;2min纵览大咖观点 本次分享主要包括五个方面&#xff1a; 关于Alluxio&#xff1b;盘点企业在尝试AI时面临的挑战&#xff1b;Alluxio在技术栈中的位置&#xff1b;Alluxio在模型训练&模型上线场景的应用&#xff1b;效果对比&#xff1…...

Streamlit 讲解专栏(十二):数据可视化-图表绘制详解(下)

文章目录 1 前言2 使用st.vega_lite_chart绘制Vega-Lite图表2.1 示例1&#xff1a;绘制散点图2.2 示例2&#xff1a;自定义主题样式 3 使用st.plotly_chart函数创建Plotly图表3.1 st.plotly_chart函数的基本用法3.2 st.plotly_chart 函数的更多用法 4 Streamlit 与 Bokeh 结合进…...

Dockerfile 使用教程

1.Dockerfile 1.1 什么是Dockerfile Dockerfile可以认为是 Docker镜像的描述文件&#xff0c;是由一系列命令和参数构成的脚本 。主要作用是 用来构建docker镜像的构建文件 。 通过架构图可以看出通过DockerFile可以直接构建镜像 1.2 Dockerfile解析过程 构建镜像步骤&#xf…...

InnoDB的Buffer

一、Buffer内存结构 MySQL 服务器启动的时候就向操作系统申请了一片连续的内存&#xff0c;默认128M&#xff0c;可通过从参数修改。 [server] innodb_buffer_pool_size 268435456 1.1 控制块 控制块包括该页所属的 表空间编号、页号、缓存页在 Buffer Pool 中的地址、链表…...

普洛斯常熟东南数据中心获LEED金级认证及IDCC绿色算力基础设施奖

近日&#xff0c;普洛斯常熟东南数据中心获得美国绿色建筑评估标准体系LEED v4 BDC&#xff08;建筑设计与建造&#xff09;金级认证&#xff0c;并获评IDCC2023长三角区域绿色算力基础设施奖。以可持续发展理念为核心&#xff0c;该数据中心从设计规划、开发建设&#xff0c;到…...

RabbitMQ 启动及参数说明

/usr/local/lib/erlang/erts-10.4/bin/beam.smp -W w -A 128 -MBas ageffcbf -MHas ageffcbf -MBlmbcs 512 -MHlmbcs 512 -MMmcs 30 -P 1048576 -t 5000000 -stbt db -zdbbl 128000 -K true – -root /usr/local/lib/erlang -progname erl – -home /var/lib/rabbitmq – -pa /…...

Vite打包性能优化及填坑

最近在使用 Vite4.0 构建一个中型前端项目的过程中&#xff0c;遇到了一些坑&#xff0c;也做了一些项目在构建生产环境时的优化&#xff0c;在这里做一个记录&#xff0c;以便后期查阅。(完整配置在后面) 上面是dist文件夹的截图&#xff0c;里面的内容已经有30mb了&#xff…...

JDBC使用了哪种设计模式

JDK中提供了操作数据库的接口&#xff0c;比如 java.sql.Driver java.sql.Connection java.sql.Statement java.sql.PreparedStatement 不同的数据库厂商提供操作自己数据库的驱动包&#xff0c; 比如mysql public class Driver extends NonRegisteringDriver implements jav…...

Java 8 Stream API 入门到实践详解

一、告别 for 循环&#xff01; 传统痛点&#xff1a; Java 8 之前&#xff0c;集合操作离不开冗长的 for 循环和匿名类。例如&#xff0c;过滤列表中的偶数&#xff1a; List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

抖音增长新引擎:品融电商,一站式全案代运营领跑者

抖音增长新引擎&#xff1a;品融电商&#xff0c;一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中&#xff0c;品牌如何破浪前行&#xff1f;自建团队成本高、效果难控&#xff1b;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业

6月9日&#xff0c;国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解&#xff0c;“超级…...

【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】

1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件&#xff08;System Property Definition File&#xff09;&#xff0c;用于声明和管理 Bluetooth 模块相…...

【AI学习】三、AI算法中的向量

在人工智能&#xff08;AI&#xff09;算法中&#xff0c;向量&#xff08;Vector&#xff09;是一种将现实世界中的数据&#xff08;如图像、文本、音频等&#xff09;转化为计算机可处理的数值型特征表示的工具。它是连接人类认知&#xff08;如语义、视觉特征&#xff09;与…...

Python如何给视频添加音频和字幕

在Python中&#xff0c;给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加&#xff0c;包括必要的代码示例和详细解释。 环境准备 在开始之前&#xff0c;需要安装以下Python库&#xff1a;…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作

一、上下文切换 即使单核CPU也可以进行多线程执行代码&#xff0c;CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短&#xff0c;所以CPU会不断地切换线程执行&#xff0c;从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...

【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)

1.获取 authorizationCode&#xff1a; 2.利用 authorizationCode 获取 accessToken&#xff1a;文档中心 3.获取手机&#xff1a;文档中心 4.获取昵称头像&#xff1a;文档中心 首先创建 request 若要获取手机号&#xff0c;scope必填 phone&#xff0c;permissions 必填 …...

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索&#xff08;基于物理空间 广播范围&#xff09;2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...

LeetCode - 199. 二叉树的右视图

题目 199. 二叉树的右视图 - 力扣&#xff08;LeetCode&#xff09; 思路 右视图是指从树的右侧看&#xff0c;对于每一层&#xff0c;只能看到该层最右边的节点。实现思路是&#xff1a; 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...