背景:在新创建的ORACLE 19c单实例数据库环境,恢复生产环境数据后,发现任务调度重启、重建仍不能自动进行调度,后发现DBA_JOBS不会自动执行,NEXT_DATE正常,LAST_DATE为空,排查方法如下。
1.检查pdb及cdb job队列参数
SQL> show parameter job
若值为0或者值太小,将会影响DBA_JOB任务的执行。
与job相关的参数一个是job_queue_processes,这个是运行JOB时候所起的进程数。
当job数量大于参数值,就会有排队等候,当值为0的时候 就不会运行JOB。
ALTER SYSTEM SET job_queue_processes = 60;
2.检查JOB的BROKEN字段
若某JOB的BROKEN字段值为Y,查看DBA_JOB_RUNNING 若无记录 将值修改为N。
declare BEGIN DBMS_JOB.BROKEN(JOB_ID,FALSE); END;
OR
SQL> exec dbms_job.broken(job_id,false);
————————————
后检查,job正常执行
3.如以上排查后还不能自动执行
可以考虑把JOB进程重启,防止是SNP进程死了造成JOB不跑。
ALTER SYSTEM SET job_queue_processes = 0; --关闭进程
ALTER SYSTEM SET job_queue_processes = 60; --恢复参数值
4.若还不行
重启大法好!
最后 祝各位运维永无坑~
Abuo.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)