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

025.Oracle_DBMS_job定时任务

无奋斗不青春

课 程 推 荐
我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈
入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈
虚 拟 环 境 搭 建 :👉👉 Python项目虚拟环境(超详细讲解) 👈👈
PyQt5 系 列 教 程:👉👉 Python GUI(PyQt5)教程合集 👈👈
Oracle数据库教程:👉👉 Oracle数据库教程合集 👈👈
MySQL数据库教程:👉👉 MySQL数据库教程合集 👈👈
优 质 资 源 下 载 :👉👉 资源下载合集 👈👈
优 质 教 程 推 荐:👉👉 Python爬虫从入门到入狱系列 合集 👈👈
.

分隔线
在这里插入图片描述

DBMS_job定时任务

      • DBMS_JOBS
        • job的定时执行和时间间隔说明
      • Oracle中DBMS\_jobs(自动任务/定时任务)运行时候一直显示正在执行1%
      • DBMS_SCHEDULER

DBMS_JOBS

job的定时执行和时间间隔说明
  • 间隔/interval是指上一次执行结束到下一次开始执行的时间间隔,当interval设置为null时,该job执行结束后,就被从队列中删除。假如我们需要该job周期性地执行,则要用‘sysdate+m’表示
  • 每分钟执行
    TRUNC(sysdate,'mi') + 1/ (24*60)
    
  • 每小时执行
    Interval => TRUNC(sysdate,'hh') + 1/ (24)
    
  • 每天定时执行
    -- 例如:每天的凌晨1点执行
    TRUNC(sysdate+ 1)  +1/ (24)
    
  • 每周定时执行
    -- 例如:每周一凌晨1点执行
    TRUNC(next_day(sysdate,'星期一'))+1/24
    
  • 每月定时执行
    -- 例如:每月1日凌晨1点执行
    TRUNC(LAST_DAY(SYSDATE))+1+1/24
    
  • 每季度定时执行
    -- 例如每季度的第一天凌晨1点执行
    TRUNC(ADD_MONTHS(SYSDATE,3),'Q') + 1/24
    
  • 每半年定时执行
    -- 例如:每年7月1日和1月1日凌晨1点
    ADD_MONTHS(trunc(sysdate,'yyyy'),6)+1/24
    
  • 每年定时执行
    -- 例如:每年1月1日凌晨1点执行
    ADD_MONTHS(trunc(sysdate,'yyyy'),12)+1/24
    
  • 查看任务
    • 如果想查看一些脚本,处理通过打开文件夹的方式,也可以使用更方便的sql语句进行查看。
    • 查询job,BROKEN为Y表示停止,,BROKEN为N表示运行中。
    select * from all_jobs; --查到job的id号
    
  • 启动job
    begin
      -- dbms_job.run(job_id);
      dbms_job.run(3);
    end;
    
  • 停止job
    begin
      -- dbms_job.broken(job_id, true);
      dbms_job.broken(3, true); 
    end;
    
  • 删除任务
    begin
      -- dbms_job.remove(job_id);
      dbms_job.remove(3);
    end;
    

Oracle中DBMS_jobs(自动任务/定时任务)运行时候一直显示正在执行1%

  • 关于 job_queue_processes
    • job_queue_processes 指每个实例中job进程的最大值。这个job包括dbms_jobdbms_scheduler_job。这两者共享相同的job协调进程与job 执行进程
    • job_queue_processes 设置为0,不会执行任何job
    • job_queue_processes 设置成1~1000之间的值,实际的job进程数量受很多因素的影响,包括可用资源、资源管理设置,当前处于运行中job。
    • 运行job的总的job进程数不会超过 job_queue_processes 的设置。
    • job_queue_process 可以表示为oracle能够并发的job的数量,当 job_queue_process 值为0时表示全部停止oracle的job
  1. 查询 job_queue_processes的值

    • 进入PL/SQL,新建命令窗口,执行:
      show parameter job;
      
    • 请添加图片描述
  2. 修改 job_queue_processes 的值

    • PL/SQL命令窗口,执行:
      alter system set job_queue_processes = 1000;
      
      -- 1000是设置job进程的最大值
      

DBMS_SCHEDULER

  • Oracle 10g开始提供了一个新的job管理包:DBMS_SCHEDULER
  • Oracle 10g引入的这个dbms_scheduler包,替代了之前的dbms_job包,该包功能更强大,可以将job需要的各种资源分开再进行组合
  • 1、dbms_scheduler包概念: “分而治之”
    • 替代了之前的 dbms_job 包,功能更加强大,可以将job需要的各种资源分开再进行组合
    • 核心三要素:schedule, programjob 其它都是围绕它们来的
    • 除了单个 job,还能设置job组
  • 2、主要视图
    • 基础信息查询
      select * from dba_scheduler_programs;
      select * from dba_scheduler_program_args; -- 过程参数
      select * from dba_scheduler_schedules;
      select * from dba_scheduler_jobs;
      
    • 执行信息查询
      select * from dba_scheduler_running_jobs;
      select * from dba_scheduler_job_log;
      select * from dba_scheduler_job_run_details;
      
  • 思维导图
    • 请添加图片描述

http://www.kler.cn/news/327461.html

相关文章:

  • 单片机在控制和自动化任务中的应用场景广泛
  • 关于区块链的安全和隐私
  • 国外问卷调查匠哥已经不带人了,但是还可以交流
  • Windows平台如何实现RTSP|RTMP流录像?
  • STM32F1+HAL库+FreeTOTS学习14——数值信号量
  • 如何创建一个包含多个列的表?
  • PHP的guzzlehttp/guzzle库在碰到各种异常时的场景
  • 前端框架对比和选择:Vue、React 和 Angular 谁更适合你的项目?
  • Java 死锁及避免讲解和案例示范
  • 初识Linux · O(1)调度算法
  • 新品 | Teledyne FLIR IIS 推出Forge 1GigE SWIR 短波红外工业相机系列
  • 【d57】【sql】1661. 每台机器的进程平均运行时间
  • 【AI学习笔记】基于Unity+DeepSeek开发的一些BUG记录解决方案
  • 【YashanDB知识库】YashanDB-OCI-快速上手
  • 仿真设计|基于51单片机的路口交通灯控制系统仿真
  • sudo 命令:掌握系统权限控制,实现安全高效管理
  • C++----类和对象(一)
  • SpringBoot集成-RocketMQ快速入门
  • 使用 SSH 连接 Docker 服务器:IntelliJ IDEA 高效配置与操作指南
  • Day48_SpringSecurity
  • 上海市计算机学会竞赛平台2024年9月月赛丙组材料组合
  • sql 时间交集
  • C# 变量与常量
  • Unity3D Shader的阴影部分法线效果详解
  • Android Studio | 无法识别Icons.Default.Spa中的Spa
  • 软件设计师——计算机网络
  • 【有啥问啥】卡尔曼滤波(Kalman Filter):从噪声中提取信号的利器
  • 【鸿蒙】HarmonyOS NEXT应用开发快速入门教程之布局篇(上)
  • PCL GridMinimum获取栅格最低点
  • 无人机在抗洪方面的作用!