资源描述:
《Oracle诊断案例》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、Oracle诊断案例:Job任务停止执行2006-11-0222:46出处:互联网作者:2【网友评论0条发言】0点击分享摘要: 本文通过一次OracleJob任务异常案例诊断,分析其原因及解决过程,从内部揭示OracleJob任务调度及内部计时机制。 问题及环境 接到研发人员报告,数据库定时任务未正常执行,导致某些操作失败。 开始介入处理该事故. 系统环境:SunOSDB5.8Generic_108528-21sun4usparcSUNW,Ultra-4Oracle9iEnterpriseEditionRelease9.2.0.3.0-Produc
2、tion 解决过程 首先介入检查数据库任务$sqlplus"/assysdba"SQL*Plus:Release9.2.0.3.0-ProductiononWedNov1720:23:532004Copyright(c)1982,2002,OracleCorporation.Allrightsreserved.Connectedto:Oracle9iEnterpriseEditionRelease9.2.0.3.0-ProductionWiththePartitioning,OLAPandOracleDataMiningoptionsJServerRel
3、ease9.2.0.3.0-ProductionSQL>selectjob,last_date,last_sec,next_date,next_sec,broken,failuresfromdba_jobs;JOBLAST_DATELAST_SECNEXT_DATENEXT_SECBFAILURESINTERVAL---------------------------------------------------------------------------------------------------3116-NOV-0401:00:0217-NOV
4、-0401:00:00N0trunc(sysdate+1)+1/242716-NOV-0400:00:0417-NOV-0400:00:00N0TRUNC(SYSDATE)+13516-NOV-0401:00:0217-NOV-0401:00:00N0trunc(sysdate+1)+1/242916-NOV-0400:00:0417-NOV-0400:00:00N0TRUNC(SYSDATE)+13001-NOV-0406:00:0101-DEC-0406:00:00N0trunc(add_months(sysdate,1),’MM’)+6/246516-
5、NOV-0404:00:0317-NOV-0404:00:00N0trunc(sysdate+1)+4/244616-NOV-0402:14:2717-NOV-0402:14:27N0sysdate+16616-NOV-0403:00:0217-NOV-0418:14:49N0trunc(sysdate+1)+3/248rowsselected. 发现JOB任务是都没有正常执行,最早一个应该在17-NOV-0401:00:00执行。但是没有执行。 建立测试JOBcreateorreplacePROCEDUREpiningISBEGINNULL;END;/
6、variablejobnonumber;variableinstnonumber;beginselectinstance_numberinto:instnofromv$instance;dbms_job.submit(:jobno,’pining;’,trunc(sysdate+1/288,’MI’),’trunc(SYSDATE+1/288,’’MI’’)’,TRUE,:instno);end;/ 发现同样的,不执行。 但是通过dbms_job.run()执行没有任何问题。 进行恢复尝试 怀疑是CJQ0进程失效,首先设置JOB_QUEUE
7、_PROCESSES为0,Oracle会杀掉CJQ0及相应job进程SQL>ALTERSYSTEMSETJOB_QUEUE_PROCESSES=0; 等2~3分钟,重新设置SQL>ALTERSYSTEMSETJOB_QUEUE_PROCESSES=5; 此时PMON会重起CJQ0进程ThuNov1811:59:502004ALTERSYSTEMSETjob_queue_processes=0SCOPE=MEMORY;ThuNov1812:01:302004ALTERSYSTEMSETjob_queue_processes=10SCOPE=MEMORY;T
8、huNov1812:01:302004Restart