Oracle定时任务:job与schedules详解与实例操作
5星 · 超过95%的资源 需积分: 16 33 浏览量
更新于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`的演进,后者提供了更灵活、功能更丰富的任务调度方案。熟悉这两个模块的操作,对于有效地管理和优化数据库的日常维护工作至关重要。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2021-04-03 上传
2021-02-03 上传
2020-09-11 上传
2012-09-21 上传
2019-05-16 上传
2020-10-23 上传
龙城少君
- 粉丝: 0
- 资源: 4
最新资源
- Python中快速友好的MessagePack序列化库msgspec
- 大学生社团管理系统设计与实现
- 基于Netbeans和JavaFX的宿舍管理系统开发与实践
- NodeJS打造Discord机器人:kazzcord功能全解析
- 小学教学与管理一体化:校务管理系统v***
- AppDeploy neXtGen:无需代理的Windows AD集成软件自动分发
- 基于SSM和JSP技术的网上商城系统开发
- 探索ANOIRA16的GitHub托管测试网站之路
- 语音性别识别:机器学习模型的精确度提升策略
- 利用MATLAB代码让古董486电脑焕发新生
- Erlang VM上的分布式生命游戏实现与Elixir设计
- 一键下载管理 - Go to Downloads-crx插件
- Java SSM框架开发的客户关系管理系统
- 使用SQL数据库和Django开发应用程序指南
- Spring Security实战指南:详细示例与应用
- Quarkus项目测试展示柜:Cucumber与FitNesse实践