Oracle定时任务:job与schedules详解与实例操作
5星 · 超过95%的资源 需积分: 16 56 浏览量
更新于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
最新资源
- IEEE 14总线系统Simulink模型开发指南与案例研究
- STLinkV2.J16.S4固件更新与应用指南
- Java并发处理的实用示例分析
- Linux下简化部署与日志查看的Shell脚本工具
- Maven增量编译技术详解及应用示例
- MyEclipse 2021.5.24a最新版本发布
- Indore探索前端代码库使用指南与开发环境搭建
- 电子技术基础数字部分PPT课件第六版康华光
- MySQL 8.0.25版本可视化安装包详细介绍
- 易语言实现主流搜索引擎快速集成
- 使用asyncio-sse包装器实现服务器事件推送简易指南
- Java高级开发工程师面试要点总结
- R语言项目ClearningData-Proj1的数据处理
- VFP成本费用计算系统源码及论文全面解析
- Qt5与C++打造书籍管理系统教程
- React 应用入门:开发、测试及生产部署教程