Oracle数据库Job的下次执行时间老是变动问题

job的 interval设置为 sysdate+1 结果好多客户的这个时间最后会变的乱起八糟,

或是 导入 , 或是手动执行了等等, 还有自动会变的, 而且不少,

觉得莫名其妙, ,

今天网上搜了下 , 终于明白了其中的原因

由于oracle的job的时间检查周期的差异性  和 job进程数量及job并发量的问题
以及 job失败等原因导致job延后执行成功  都会导致  下次job的起点时间的变化(sysdate发生了变化)

并且也找到了解决办法,

比如,我要每天凌晨1点执行, interval就应该是:

trunc(SYSDATE)+1+1/24

表示 今天的凌晨 加 一天 加 一小时 ==>明天凌晨1点

原因:

SYSDATE会不稳定,但是不管是今天什么时候,trunc(sysdate) 返回的都是今天的 0点!!!!

so.... 只要job在当天完成都可以保证每天时间点基本一致!

如果要间隔半小时执行, interval就应该是:

TRUNC(sysdate,‘HH24‘) + (trunc(to_char(sysdate,‘mi‘)/30)+1)/(24*2)

[引用参考:http://www.itpub.net/thread-264556-1-1.html]

时间: 2024-08-27 13:17:49

Oracle数据库Job的下次执行时间老是变动问题的相关文章

Oracle 数据库 JOB 失败后的重试规律解密

由于官方文档上没有找到相关的说明,所以这里进行了如下测试,为了找到oracle数据库中 job 失败后重试时间的规律. 数据库版本:11.2.0.3 测试说明:这里创建了一个日志表以及一个运行时必定出错的procedure,用于job的运行.这里只要记录下每次job执行时视图user_jobs 中的 next_date就可以推断出job 执行失败后的重试规律. 为了测试job的重试规律我做了如下工作 日志表以及序列: create table job_exec_logs (id number ,

Toad for Oracle针对于Oracle数据库的可视化管理工具使用

Toad for Oracle安装包下载地址:http://pan.baidu.com/s/1mgBOLZU 在Oracle应用程序的开发过程中,访问数据库对象和编写SQL程序是一件乏味且耗费时间的工作,对数据库进行日常管理也是需要很多SQL脚本才能完成的.Quest Software为此提供了高效的Oracle应用开发工具-Toad(Tools of Oracle Application Developers).在Toad的新版本中,还加入了DBA(Database Administrator

Oracle数据库基础知识

oracle数据库plsql developer 目录(?)[-] 一     SQL基础知识 创建删除数据库 创建删除修改表 添加修改删除列 oracle cascade用法 添加删除约束主键外键 创建删除索引 创建修改删除视图 二     SQL查询 基本的SQL语句 unionminusintersect 内连接外连接 子查询关联子查询 betweeninexists 复制表insert into selectselect into from 三     SQL查询优化 尽量少用 IN 操

Oracle数据库中文乱码问题

最近碰到Oracle乱码问题,刚开始甚是头疼,以前在合肥出差的时候,这种问题也碰到过,当时直接抛给了“乌压压一片”(一个搞数据的同事儿),这次没办法躲过,只好硬着头皮上.虽然我这次碰到的是Oracle乱码问题中的一个,但是我决定将这个乱码问题整理清楚(不整清楚,就觉得身边有个定时炸弹,怕下次整数据库的时候会突然又爆炸). 解决这个问题的关键在于理解字符集的概念,所以在正文开始之前,有必要先提一下字符集的相关知识!(这部分知识,对于解决j2ee中文参数传递过程中出现的乱码,也非常具有参考意义) 一

谈谈Oracle数据库的关闭

之前说过了Oracle数据库的启动,今天再来说说Oracle数据库的关闭. 一.数据库关闭的三个阶段 Oracle数据库启动过程包括三个步骤: NOMOUNT -> MOUNT -> OPEN,数据库的SHUTDOWN实际也是有三个步骤:CLOSE -> DISMOUNT - > SHUTDOWN. SQL> SHUTDOWN; Database closed.Database dismounted.ORACLE instance shut down. 也可从STARTUP状

Oracle数据库手动恢复备忘日志

最近因为升级了Mac os x 10.10 Yosemite,突然前几天的一个晚上,开机发现就停留在开机界面了,看来BETA果然是不靠谱,然后想到自己这不前几天刚备份完吗,没事,TimeMachine是何等神器,二话不说直接恢复.但是恢复完,我后悔了,一来是忘了昨天晚上还加班呢,加班的成功保留成果所剩无几,关键我这才发现TimeMachine既然不备份虚拟机文件(虚拟机文件30G,估计直接给略过了吧),难怪每次都觉得备份那么快. 不过后悔也没用,重新搭开发环境吧.操作系统WIN7->开发工具VS

安装部署oracle数据库

部署Oracle数据库 防伪码:宝剑锋从磨砺出,梅花香自苦寒来. 前言:前面我们学习过微软的sqlserver,还有甲骨文公司的mysql,也理解了数据库系统的作用,这两种数据库管理系统适用于软件,网站,游戏等后台数据库,例如我们在学习mysql的时候搭建过动态网站.但oracle属于非常安全.完善的大型数据库管理软件,在电信.银行.证券等大型应用场合拥有着绝对的优势.那么今天就给搭建介绍oracle的安装和基本的使用.Oracle可以安装到windows和linux系统上,但企业更多采用在li

ORACLE数据库定时任务—DBMS_JOB

创建 DBMS_JOB 使用以下语句: ? 1 2 3 4 5 6 7 8 9 10 VARIABLE jobno number; begin   DBMS_JOB.SUBMIT(     :jobno, --job号,ORACLE自动分配     'your_procedure;',  --执行的存储过程或SQL语句,';'不能省略     next_date, --下次执行时间     'interval' --每次间隔时间,以天为单位   );     commit; end; 例子: 作

Oracle——数据库启动与关闭

本文内容 服务器环境 客户端环境 概述 启动数据库 关闭数据库 补充 参考资料 本文说明 Oracle 数据库的启动和关闭,内容虽然基础,但是在数据库很多操作中都需要,因此,基础而重要,必须深入理解.比如,何种情况应该使用何种数据库加载模式,以及数据库文件打开模式. 服务器环境 Windows 2003 R2 Oracle11g 32位 客户端环境 Windows 2008R2 Oracle 11g 32位客户端 概述 若用 startup 命令启动数据库,执行的操作要经历三个不同的阶段: 实例