当前位置: 首页 > news >正文 全面学习ORACLE Scheduler特性(5)Schedules调度Programs执行的Jobs news 来源:原创 2024/5/4 15:14:13 3.2 Schedules调度Programs执行的Jobs 通过schedule调度program的执行的job,看到这样的形容是不是让你彻底晕头了,就说明你还是没搞明白10g中SCHEDULERS特性管理的jobs的含意,让三思更直白地给你描述描述。10g版本中SCHEDULER将JOB分成了多个部分,program负责做什么,schedule负责啥时候做,job就简单了,一个字:做。 前面几个小节,三思已经分别演示了创建管理Jobs,创建管理Programs以及创建和管理Schedules,下面我们通过实例来演示,如何创建通过schedule调度program的执行的job吧。 首先,创建一个program,操作如下: SQL> BEGIN 2 DBMS_SCHEDULER.CREATE_PROGRAM ( 3 program_name => 'my_program1', 4 program_action => '/bin/date', 5 program_type => 'EXECUTABLE', 6 enabled => TRUE); 7 END; 8 / PL/SQL procedure successfully completed. 通过上述语句,我们定义了一个program,执行操作系统命令date,并输入到dt.log文件中。 接下来定义一个schedule,操作如下: SQL> begin 2 DBMS_SCHEDULER.CREATE_SCHEDULE ( 3 schedule_name => 'my_first_schedule', 4 start_date => SYSDATE, 5 repeat_interval => 'FREQ= DAILY ; INTERVAL=1', 6 comments => 'Every 1 weeks'); 7 END; 8 / PL/SQL procedure successfully completed. 定义调试为每周执行一次。此处repeat_interval可根据实现情况进行修改。 最后,创建job,按照指定的schedule,执行program,操作如下: SQL> BEGIN 2 DBMS_SCHEDULER.CREATE_JOB ( 3 job_name => 'execOScmd', 4 program_name => 'my_program1', 5 schedule_name => 'my_first_schedule', 6 enabled => true); 7 END; 8 / PL/SQL procedure successfully completed. 创建job时,start_date,repeat_interval,job_action等均无须指定,因为这些参数将由program和schedule来控制。 这样,操作完成后,ORACLE就会自动定时(当前设置为每周执行一次)program中定义的操作。 要查看当前的执行情况,通过*_scheduler_job_run_details即可查询(*_scheduler_job_log也可以,不过该视图中信息不如detail中全面)。例如,查看刚刚创建的"EXECOSCMD"任务的执行情况,执行命令如下: SQL> select log_id, log_date, status, additional_info 2 from user_scheduler_job_run_details 3 where job_name = 'EXECOSCMD' 4 ; LOG_ID LOG_DATE STATUS ADDITIONAL_INFO ---------- -------------------- ---------- ------------------------------ 13760 17-AUG-09 02.47.53.7 SUCCEEDED 34050 PM +08:00 看完这个示例之后,你是否对10g中的SCHEDULER特性多了些了解呢?千万表自满,SCHEDULER特性的功能还多着哪,接着往下看吧。 相关文章: 全面学习ORACLE Scheduler特性(6)设置Repeat Interval参数 Oracle创建删除用户、角色、表空间、导入导出数据库命令行方式总结 ORACLE计划(schedule)详解 Oracle初学者必知的100个疑问 WML学习(一):概述和基本规则 WML学习(二):基本格式和文件头 WML学习(四):锚和任务 WML学习(三):显示文本 WML学习(五):显示表单 WML学习(七):CGI编程 WML学习(六):事件 UDP数据传输实例 在线播放器代码大全 TcpListener和TcpClient简单例子 C#自定义事件 【Leetcode】101. 对称二叉树 [笔记] php常见简单功能及函数 2019.2.20 c++ 知识梳理 bearychat的java client canvas绘制圆角头像 Flannel解读 Intervention/image 图片处理扩展包的安装和使用 Java 9 被无情抛弃,Java 8 直接升级到 Java 10!! JAVA SE 6 GC调优笔记 js继承的实现方法 Lucene解析 - 基本概念 sublime配置文件 Vue ES6 Jade Scss Webpack Gulp vue总结 Windows Containers 大冒险: 容器网络 阿里云Kubernetes容器服务上体验Knative 从零开始的webpack生活-0x009:FilesLoader装载文件 发布国内首个无服务器容器服务,运维效率从未如此高效 全栈开发——Linux 微信开放平台全网发布【失败】的几点排查方法 学习笔记TF060:图像语音结合,看图说话 - 转 Ext2.0 form使用实例 python最赚钱的4个方向,你最心动的是哪个? 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ... 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ... 软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】 # 执行时间 统计mysql_一文说尽 MySQL 优化原理 #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目 #数学建模# 线性规划问题的Matlab求解 (1)Android开发优化---------UI优化 (cos^2 X)的定积分,求积分 ∫sin^2(x) dx (pytorch进阶之路)CLIP模型 实现图像多模态检索任务 (论文阅读32/100)Flowing convnets for human pose estimation in videos (论文阅读40-45)图像描述1 (四)鸿鹄云架构一服务注册中心 (转)EXC_BREAKPOINT僵尸错误 (转)nsfocus-绿盟科技笔试题目 (转)一些感悟 **PHP分步表单提交思路(分页表单提交) .NET “底层”异步编程模式——异步编程模型(Asynchronous Programming Model,APM)...
3.2 Schedules调度Programs执行的Jobs 通过schedule调度program的执行的job,看到这样的形容是不是让你彻底晕头了,就说明你还是没搞明白10g中SCHEDULERS特性管理的jobs的含意,让三思更直白地给你描述描述。10g版本中SCHEDULER将JOB分成了多个部分,program负责做什么,schedule负责啥时候做,job就简单了,一个字:做。 前面几个小节,三思已经分别演示了创建管理Jobs,创建管理Programs以及创建和管理Schedules,下面我们通过实例来演示,如何创建通过schedule调度program的执行的job吧。 首先,创建一个program,操作如下: SQL> BEGIN 2 DBMS_SCHEDULER.CREATE_PROGRAM ( 3 program_name => 'my_program1', 4 program_action => '/bin/date', 5 program_type => 'EXECUTABLE', 6 enabled => TRUE); 7 END; 8 / PL/SQL procedure successfully completed. 通过上述语句,我们定义了一个program,执行操作系统命令date,并输入到dt.log文件中。 接下来定义一个schedule,操作如下: SQL> begin 2 DBMS_SCHEDULER.CREATE_SCHEDULE ( 3 schedule_name => 'my_first_schedule', 4 start_date => SYSDATE, 5 repeat_interval => 'FREQ= DAILY ; INTERVAL=1', 6 comments => 'Every 1 weeks'); 7 END; 8 / PL/SQL procedure successfully completed. 定义调试为每周执行一次。此处repeat_interval可根据实现情况进行修改。 最后,创建job,按照指定的schedule,执行program,操作如下: SQL> BEGIN 2 DBMS_SCHEDULER.CREATE_JOB ( 3 job_name => 'execOScmd', 4 program_name => 'my_program1', 5 schedule_name => 'my_first_schedule', 6 enabled => true); 7 END; 8 / PL/SQL procedure successfully completed. 创建job时,start_date,repeat_interval,job_action等均无须指定,因为这些参数将由program和schedule来控制。 这样,操作完成后,ORACLE就会自动定时(当前设置为每周执行一次)program中定义的操作。 要查看当前的执行情况,通过*_scheduler_job_run_details即可查询(*_scheduler_job_log也可以,不过该视图中信息不如detail中全面)。例如,查看刚刚创建的"EXECOSCMD"任务的执行情况,执行命令如下: SQL> select log_id, log_date, status, additional_info 2 from user_scheduler_job_run_details 3 where job_name = 'EXECOSCMD' 4 ; LOG_ID LOG_DATE STATUS ADDITIONAL_INFO ---------- -------------------- ---------- ------------------------------ 13760 17-AUG-09 02.47.53.7 SUCCEEDED 34050 PM +08:00 看完这个示例之后,你是否对10g中的SCHEDULER特性多了些了解呢?千万表自满,SCHEDULER特性的功能还多着哪,接着往下看吧。