您的位置:首页 > 数据库

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

2016-08-08 14:42 381 查看
周一在检查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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐