Oracle Job 定时任务无法自动运行的解决方法

接同事消息说Oracle定时任务都不能自动运行了,但手动通过dbms_job.run(<job>)执行正常,经分析,发现是CJQ0进程的问题,只需执行一条SQL语句便可。

先确认Job定时任务运行状态:

select job,last_date,last_sec,next_date,next_sec,broken,failures from dba_jobs;

首先,尝试重置CJQ0进程,先执行:

SHOW PARAMETER JOB;

ALTER SYSTEM SET JOB_QUEUE_PROCESSES = 0;

视job任务量等约1-5分钟,然后重新设置:

ALTER SYSTEM SET JOB_QUEUE_PROCESSES = [原来的值];

发现定时任务的running状态依旧是no,这时候该检查CJQ0进程

1、在Linux下执行如下命令:ps -ef | grep ora_cjq0

2、在Windows服务器检查服务OracleJobScheduler[SID]

如果以上进程不存在或停止,需要重启数据库或服务,否则,执行如下SQL语句启动定时任务,恢复正常。

exec dbms_ijob.set_enabled(true);

赞 (1) 打赏

评论 3

  1. 匿名identifier "dbms_ijob.set_enabled" must be declared,报错了,脑壳疼回复
    • 智林可能是用户权限的问题哦!回复
  2. 罗拉套图网到你的博客走一趟,如同阳光洒在我脸上,心里暖洋洋!回复

感谢您的支持与帮助

支付宝扫一扫打赏

微信扫一扫打赏