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

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.mrgr.cn/news/40338.html

相关文章:

  • Java之线程篇七
  • 问:JAVA阻塞队列实现类及最佳实践?
  • 数据库 - Redis数据库
  • 如何实现多套环境的自动化测试?
  • 使用Jmeter进行http接口性能测试
  • 2024年9月总结及随笔之丢卡
  • Divide Rows and Conquer Cells: Towards Structure Recognition for Large Table
  • Debezium日常分享系列之:Debezium 3.0.0.CR2发布
  • JMeter 性能测试基本过程及示例
  • 开发平台 开放平台 集成平台 配置平台的区别
  • Java服务端数据库连接:连接池的资源优化
  • python itertools模块介绍
  • lambda表达式底层实现:反编译LambdaMetafactory + 转储dump + 运行过程 + 反汇编 + 动态指令invokedynamic
  • ICM20948 DMP代码详解(53)
  • 前端规范工程-5:Git提交信息规范(commitlint + czg)
  • 问:JAVA中阻塞队列的概念、原理及使用场景?
  • 基于JAVA Web的校园快递代领系统设计与实现(源码+定制+文档)
  • SSM私人诊所管理系统—计算机毕业设计源码36406
  • ICM20948 DMP代码详解(54)
  • 华为OD机试 - 工单调度策略 - 并查集(Python/JS/C/C++ 2024 E卷 200分)