记录一次数据库Job不定时执行的问题

来源:互联网 发布:php添加自定义菜单 编辑:程序博客网 时间:2024/05/16 05:20

周一在检查job的执行状态的时候,发现服务器上所有的job都没有定时执行,这时候第一反应是检查alterlog,也没有发现什么报错。

这时候手动执行一下job,手动执行也没什么问题,job里面的数据可以正常插入,存储过程也检查没什么问题。

后来一想,上周晚上做了一次emca的操作,当时emca特别慢,直至第二天八点的时候,emca还是一直显示在删除emca资料库,这个时候检查下数据库的状态,开始以为数据库是静默状态,检查发现不是。

后来检查下job参数;

连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options


SQL> show parameter job;


NAME                                 TYPE
------------------------------------ ----------------------
VALUE
------------------------------
job_queue_processes                  integer
0
SQL>
这里发现参数变为0,这里的参数为0的话,那么数据库所有的job都不能同时执行,这个值是设置同时允许运行job的数量。

因为是生产库,这里不能重启数据库,我直接修改job_queue_processes;

alter system set job_queue_processes =10 (这样可以直接在内存中修改,但是重启数据库后失效),因此继续执行

alter system set job_queue_processes =10 scope=spfile;这样重启数据库后也可以生效。

这里说明的就是,在做emca的时候,数据库会变成静默模式,静默模式的话数据库内的job都不会字段执行,job_queue_processes参数也会变成0,因此在emca结束前后,要检查这几个参数。一般在做数据库维护的时候才会静默模式,如修改字符集。维护完后也可以用下面命令禁用静默模式;

alter system disable restricted session;



0 0
原创粉丝点击