请教一个 Oralce 的任务调度的问题,万分感谢!

blackkettle 2013-03-14 10:58:11
各位达人,

我在专家 海鲨Oracle的个人空间上看到一篇博客 “ORACLE 报表数据库开发设想”

地址是 http://blog.csdn.net/zengmuansha/article/details/7659870

里面提到


4 任务调度:

采用储存过程和软件包来做每个报表,每个表的数据产生. 那么这些任务之间必然产生了依赖.

...

应该采用crontab 方式的调度. 比如说写个轮休的JOB 该JOB每隔5-10分钟运行一次. 该JOB只调用一个存储过程. 存储过程启动任务,任务是软件包或者是存储过程.

该存储过程 读取任务信息表, 任务依赖表,何时启动该任务, 并监督任务运行状况和报警.


这段话我没有看得明白。

请达人给个简单的例子以明示。

万分感谢!
...全文
328 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
blackkettle 2013-03-15
  • 打赏
  • 举报
回复
就这样吧。再去问问别人。
blackkettle 2013-03-14
  • 打赏
  • 举报
回复
能让我看看 drop.sql 里是怎么写的么? 只要个格式就行...
music_mouse 2013-03-14
  • 打赏
  • 举报
回复
没有。你再拓展一下就可以了。。我在代码drop.sql中有存储过程的调用过程。。没必要再另立任务依赖表了
blackkettle 2013-03-14
  • 打赏
  • 举报
回复
哦,非常感谢! 你的那个 任务依赖表 有么?
music_mouse 2013-03-14
  • 打赏
  • 举报
回复
有个简单的例子,我自己的任务调度表: create table T_SCHEDULER_TASK ( ID NUMBER not null, NAME VARCHAR2(50), TYPE CHAR(1), TASKEXECUTE CHAR(1), TASKDATE DATE, LASTEXECUTEDATE DATE, LASTTIMETASKSTATUS CHAR(1), MAILTOADDRESSLIST VARCHAR2(1000), MAILSUBJECT VARCHAR2(100), EVERYNUMBER NUMBER, REDUCEWARNLEVEPOINT NUMBER, FREQUENCY NUMBER(4,2) ) 任务调度是用crontab跑的,也发你看看吧。 export ORACLE_BASE ORACLE_HOME ORACLE_SID PATHTH=/app/oracle/product/10.2.0/bin:/usr/sbin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/oracle/bin export ORACLE_BASE=/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/ export ORACLE_SID=vv export ORACLE_TERM=xterm export TMP=/tmp export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH sqlplus aa/bb@vv @/drop.sql; imp dd/ee@fftables=\(table\) file=/test.dmp ignore=y;
blackkettle 2013-03-14
  • 打赏
  • 举报
回复
有没有实实在在的一个例子呀?简单的就可以了。
music_mouse 2013-03-14
  • 打赏
  • 举报
回复
任务信息表:保存任务的执行时间,状态,执行代码等 依赖表应该是指任务之间的关系,这个也要看实际情况,有的时候依赖直接在存储过程中做了,有的也喜欢通过主任务的依赖来做,必须某些任务完成后才能执行当前任务等。 存储过程启动任务:一般都是用户Crontab定时调用每隔一段时间扫描任务表,如果任务到了执行时间且没有被执行,就把任务的代码动态加到脚本中执行.
blackkettle 2013-03-14
  • 打赏
  • 举报
回复
比如说 海鲨Oracle博客里提到的 存储过程 读取任务信息表, 任务依赖表,何时启动该任务, 并监督任务运行状况和报警 里的 任务信息表,任务依赖表的表结构上怎样的, 存储过程是怎么启动该任务的。 万分感谢!
blackkettle 2013-03-14
  • 打赏
  • 举报
回复
嗯,我还是没有明白。。。
music_mouse 2013-03-14
  • 打赏
  • 举报
回复
参数就不要放到任务表中了。。执行脚本的时候赋值就可以
blackkettle 2013-03-14
  • 打赏
  • 举报
回复
你的那个表 create table T_SCHEDULER_TASK ( ID NUMBER not null, NAME VARCHAR2(50), TYPE CHAR(1), TASKEXECUTE CHAR(1), TASKDATE DATE, LASTEXECUTEDATE DATE, LASTTIMETASKSTATUS CHAR(1), MAILTOADDRESSLIST VARCHAR2(1000), MAILSUBJECT VARCHAR2(100), EVERYNUMBER NUMBER, REDUCEWARNLEVEPOINT NUMBER, FREQUENCY NUMBER(4,2) ) 放的是什么任务呢? 如果我的一个任务是要执行一个存储过程,该过程有 3个输入参数,要每天早上 6:00开始执行,每天执行一次。这 3个输入参数就没有办法放到你的这个任务调度表里来了。 是不是?

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧