Oracle定时任务:job与schedules详解与实例操作
5星 · 超过95%的资源 需积分: 16 150 浏览量
更新于2024-09-16
收藏 40KB TXT 举报
Oracle的定时任务执行管理主要通过两个模块进行,分别是9i时代的`dbms_job`和10g、11g及后续版本的`schedules`。这两个模块在处理任务调度和管理上有所不同,且具有各自的特性和用法。
首先,`dbms_job`主要用于Oracle 9i时期的定时任务,它提供了一种简单的方式来安排一次性或周期性的PL/SQL代码执行。`dbms_job`的核心API包括`CREATE_JOB`、`BEGIN_JOB`、`END_JOB`以及查询和设置job属性的方法,如`GET_ATTRIBUTE`和`SET_ATTRIBUTE`。用户可以通过这些函数创建job,指定起始时间(start_time)、重复间隔(repeat_interval)、结束时间(end_time)等参数,并配置job的优先级(job_priority)、自动删除(auto_drop)和其他特性。权限管理也十分重要,非SYS用户通常需要相应权限才能创建和管理job。
然而,随着Oracle版本的升级,`dbms_job`逐渐被`schedules`取代。`schedules`模块在10g及以后的版本中引入,提供了更强大的任务调度能力。它允许用户创建更复杂的任务,支持多种作业类型,如EXECUTABLE(可执行脚本)、PLSQL_BLOCK(PL/SQL块)、STORED_PROCEDURE(存储过程)等。`CREATE_SCHEDULE`函数用于创建一个新的调度,用户可以指定job与schedule关联,以及job的运行策略,比如是否重启(restartable)、最大运行次数(max_runs)和失败次数限制(max_failures)等。
在实际操作中,例如创建一个名为`ARC_MOVE`的job,用户可以编写shell脚本作为job_action,然后通过`scheduler`模块将其与特定的schedule关联,如`EVERY_60_MINS`,表示每60分钟执行一次。此外,job的命名(job_name)和schedule的名称(schedule_name)都是必需的,且job_name在整个数据库中必须唯一,而schedule_name在同一个scheduler下是唯一的。
对于查询和管理,用户不仅可以通过`DBA_SCHEDULER_JOBS`视图查看job列表,还可以使用`DBMS_SCHEDULER.GET_ATTRIBUTE`获取job的详细属性,并通过`DBMS_SCHEDULER.SET_ATTRIBUTE`来修改它们。权限控制同样关键,创建和修改特定job时,需要确保具有相应的系统权限。
Oracle的定时任务执行管理经历了从`dbms_job`到`schedules`的演进,后者提供了更灵活、功能更丰富的任务调度方案。熟悉这两个模块的操作,对于有效地管理和优化数据库的日常维护工作至关重要。
2012-09-21 上传
2019-05-16 上传
2021-04-03 上传
2021-02-03 上传
2020-09-11 上传
2020-10-23 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
龙城少君
- 粉丝: 0
- 资源: 4
最新资源
- 探索数据转换实验平台在设备装置中的应用
- 使用git-log-to-tikz.py将Git日志转换为TIKZ图形
- 小栗子源码2.9.3版本发布
- 使用Tinder-Hack-Client实现Tinder API交互
- Android Studio新模板:个性化Material Design导航抽屉
- React API分页模块:数据获取与页面管理
- C语言实现顺序表的动态分配方法
- 光催化分解水产氢固溶体催化剂制备技术揭秘
- VS2013环境下tinyxml库的32位与64位编译指南
- 网易云歌词情感分析系统实现与架构
- React应用展示GitHub用户详细信息及项目分析
- LayUI2.1.6帮助文档API功能详解
- 全栈开发实现的chatgpt应用可打包小程序/H5/App
- C++实现顺序表的动态内存分配技术
- Java制作水果格斗游戏:策略与随机性的结合
- 基于若依框架的后台管理系统开发实例解析