Chinaunix首页 | 论坛 | 博客
  • 博客访问: 143908
  • 博文数量: 161
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: -30
  • 用 户 组: 普通用户
  • 注册时间: 2017-09-21 21:45
文章分类
文章存档

2009年(1)

2008年(74)

2007年(48)

2006年(38)

我的朋友

分类: Oracle

2007-03-08 09:53:35

Oracle9i中和JOB有关的初始化参数只剩下一个:job_queue_processes。设置job进程的数量。这个初始化参数的最大值由8i的36个增加到了1000个。由CJQ0进程负责唤醒job进程J000~J999对Oracle中的JOB进行处理。

由于采用了这种机制,9i中的JOB总会比设置的NEXT_DATE晚几秒。为了保证多次运行的JOB不会由于这种不准确的因素而造成时间偏移,最好使用TRUNC函数设立JOB运行时间的基准。

Oracle文档上关于JOB失败的情况描述的不很准确。JOB失败后,Oracle会在2分钟左右去再次执行,如果还是执行失败,会在4分钟后重试,然后是8分钟、16分钟。直到遇到3种情况,否则每次重试的时间都会翻倍。

1.执行成功,这时清除失败次数,恢复正常时间间隔。

2.重试16次后,Oracle将JOB设置为BROKEN,停止再次重试。

3.重试的时间超过INTERVAL设置的值,至此以后,Oracle都会以INTERVAL为间隔进行重试,直到上面的两种情况出现。

关于JOB的一些特点:

JOB会对what中进行的操作自动提交;

同时使用数据库链和JOB时应该提供用户名和密码,匿名数据库链会失败;

如果将INTERVAL或者NEXT_DATE设置为NULL,则下次JOB不会再次执行,且会从JOB队列中自动删掉;

通过EXP和IMP可以导出导入JOB(只能通过SCHEMA和DATABASE模式导出,不能单独导出),但是如果JOB号已经在目的数据库中存在,则JOB无法导入;

DBMS_JOB的SUBMIT和REMOVE等过程需要COMMIT;

JOB有关的视图:DBA_JOBS和DBA_JOBS_RUNNING。

阅读(1249) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~