关于Oracle定时作业的问题

mbugaifc 2011-10-01 10:06:15
大家好,请教一个问题。
我在PL/SQL中,建立了一个存储过程。创建了一个‘作业’,对‘存储过程’进行定时执行。
正常运行了,好几个月。‘作业’每天都会定时执行。但前几天,忽然没反应了,‘作业’不再自动执行。我重新创建其它的‘存储过程’、‘作业’,也是同样的没反应。
我猜测,是不是Oracle数据库服务器上,停掉了【作业定时执行的服务】?
因为,我之前接触MS SQL 2000时,是有一项,Agent服务,执行‘定时任务’的。我在网上,找了些相关的资料,但都不知所云。所以在此,向大家求教。谢谢。
...全文
257 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
recallani 2012-11-08
  • 打赏
  • 举报
回复
权限不够吧!
mbugaifc 2011-10-09
  • 打赏
  • 举报
回复
问题,我已经解决了。
感谢【zhuomingwang】,
感谢大家。
mbugaifc 2011-10-09
  • 打赏
  • 举报
回复
跪求,高人指点
mbugaifc 2011-10-08
  • 打赏
  • 举报
回复
跪求高手指点,谢谢
geniuscch 2011-10-08
  • 打赏
  • 举报
回复
帮顶~~~··
kingkingzhu 2011-10-08
  • 打赏
  • 举报
回复
关注下
tom0812 2011-10-08
  • 打赏
  • 举报
回复
关注中。。。。
youqi1984 2011-10-03
  • 打赏
  • 举报
回复
关注中,!!!
mbugaifc 2011-10-03
  • 打赏
  • 举报
回复
【anjiushian】,你好。
我这边不是服务器,只是客户端。但是我这边,右击‘作业’,再点击‘运行’按钮,是可以正常执行的。(如下图示)


在客户端执行语句‘select * from user_jobs’,是可以显示对应的‘Job’。(如下图示)

  • 打赏
  • 举报
回复

--做个试验演示下
SQL> show parameter job;

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
job_queue_processes integer 1000

SQL> select count(*) from dept1;

COUNT(*)
----------
27

SQL> /

COUNT(*)
----------
28

SQL> /

COUNT(*)
----------
29

SQL> alter system set job_queue_processes=0 ;

系统已更改。

SQL> select count(*) from dept1;

COUNT(*)
----------
33

SQL> /

COUNT(*)
----------
33

SQL> begin
2 dbms_job.run(49);
3 commit;
4 end;
5 /

PL/SQL 过程已成功完成。

SQL>
SQL> select count(*) from dept1;

COUNT(*)
----------
34

SQL> /

COUNT(*)
----------
34

SQL> /

COUNT(*)
----------
34

dawugui 2011-10-02
  • 打赏
  • 举报
回复
你在别的机器上试试你的作业是否能正常运行?如果行,则该服务器出现问题,如果不行,则是你的作业有问题.
mbugaifc 2011-10-02
  • 打赏
  • 举报
回复
楼上的两位哥们儿,你们好!感谢你们的回复。
我刚才照【一楼】的思路,试了一下儿。手动,是可以执行【作业】的,调用的‘存储过程’生效了,对应的‘数据表BQ_OYCS’有记录生成(执行‘作业’之前,该表的记录为空)。说明‘作业’是没有问题的。我在其它电脑上,通过PL/SQL访问,重建‘作业’,也是不能正常执行。可能是数据库服务器那边,暂停了‘作业服务’吧。因为对这一块涉猎不深,所以不是很清楚,盼指点,谢谢!


我本是朱 2011-10-02
  • 打赏
  • 举报
回复
我在其它电脑上,通过PL/SQL访问,重建‘作业’,也是不能正常执行。可能是数据库服务器那边,暂停了‘作业服务’吧。
---------------------------------
你这边只是客户端?我们公司的也是服务器把作业停了,我的客户端也无法运行job,但我手动运行也没反应。
你看下user_job里面是否有你的这个job
mbugaifc 2011-10-02
  • 打赏
  • 举报
回复
【zhuomingwang】,请你分析一下,我以下的理解是否正确:
Oracle如何想要‘作业’正常执行,则首先的一个必要条件,即‘job_queue_processes’的‘value’不能等于0,可以为非0的任何整数。(通过语句进行修改 alter system set job_queue_processes=10;)
执行这条SQL语句‘show parameter job’,是为了查看数据库‘作业’的,为什么我这边,无论是用[sql 窗口],还是[命令窗口],都不能正常执行这一条语句。(如下图示)
请指点,谢谢!




  • 打赏
  • 举报
回复
[Quote=引用 5 楼 mbugaifc 的回复:]
4楼的【zhuomingwang】,你好。
不好意思,我没怎么看明白,你的意思。
是要我用SQL脚本,来验证一下,‘作业Job’能否正常运行吗?
[/Quote]

show parameter job;
看看这个参数是不是设置为0了
mbugaifc 2011-10-02
  • 打赏
  • 举报
回复
4楼的【zhuomingwang】,你好。
不好意思,我没怎么看明白,你的意思。
是要我用SQL脚本,来验证一下,‘作业Job’能否正常运行吗?
iqlife 2011-10-01
  • 打赏
  • 举报
回复
手动运行JOB可以?

17,377

社区成员

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

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