环境:
操作系统:windows server 2008 r2
数据库版本:oracle 11g r2遇到的问题:
昨天在测试服务器上创建了一个调度任务,任务内容是每过一分钟,对一个表的数据进行按时段分组统计,并将结果插入一个统计表。
测试过程很顺利,生成了很多统计数据,但今天发现这个调度没有运行。
于是看了一下调度信息表:
/*查看下一个任务*/
SELECT JOB, NEXT_DATE, NEXT_SEC, BROKEN FROM USER_JOBS; 发现结果是:
1 45 2015/6/1 17:41:00 17:41:00 N
原来昨天5点40分关了服务器下班了,调度任务设置了下一个调用时间是5点41分,今天服务器启动了,由于时间已经超过这个时间了,所以就一直没有运行这个任务。
需要解决的问题:
在生产环境中,机房是有可能会宕机的,有时候回来停电的情况出现,虽然很少,但是确实是有,这种情况怎么处理呢?怎么才能让他一直按照设定的时间间隔运行下去呢?我分不多,希望能有人指点一下,万分感谢!
操作系统:windows server 2008 r2
数据库版本:oracle 11g r2遇到的问题:
昨天在测试服务器上创建了一个调度任务,任务内容是每过一分钟,对一个表的数据进行按时段分组统计,并将结果插入一个统计表。
测试过程很顺利,生成了很多统计数据,但今天发现这个调度没有运行。
于是看了一下调度信息表:
/*查看下一个任务*/
SELECT JOB, NEXT_DATE, NEXT_SEC, BROKEN FROM USER_JOBS; 发现结果是:
1 45 2015/6/1 17:41:00 17:41:00 N
原来昨天5点40分关了服务器下班了,调度任务设置了下一个调用时间是5点41分,今天服务器启动了,由于时间已经超过这个时间了,所以就一直没有运行这个任务。
需要解决的问题:
在生产环境中,机房是有可能会宕机的,有时候回来停电的情况出现,虽然很少,但是确实是有,这种情况怎么处理呢?怎么才能让他一直按照设定的时间间隔运行下去呢?我分不多,希望能有人指点一下,万分感谢!
在这个表的触发器上打主意
1.从临时表中读取最后一条数据的时间信息
2.与sysdate做比较,如果大于一分钟,则统计一次数据并插入到统计数据表中
3.获取临时表第一条数据的时间
4.如果第一条数据的时间和现在插入的数据的时间超过了3分钟,则删掉2分钟前的数据 这样做有点麻烦的就是,我要维护两个操作,从时间上来判断是否统计数据,从时间上来判断是否删除数据。 我知道这样做起来很麻烦,有办法能让调度任务按照设置时段运行吗?即使宕机也能重新运行?如果不行我就只有考虑这个办法了。