今天研發(fā)同事找我確認(rèn)PKG_WMS.proc_TaskMain存儲(chǔ)的job是否還在運(yùn)行,竟發(fā)現(xiàn)dba_jobs.NEXT_DATE=4000/1/1.如下看看究竟原因吧~
注釋:
今天研發(fā)同事找我確認(rèn)PKG_WMS.proc_TaskMain存儲(chǔ)的job是否還在運(yùn)行,竟發(fā)現(xiàn)dba_jobs.NEXT_DATE=4000/1/1.如下看看究竟原因吧~
JOB信息:
SQL> select JOB,SCHEMA_USER,LAST_DATE,LAST_SEC,NEXT_DATE,NEXT_SEC,BROKEN,FAILURES,INTERVAL,WHAT from dba_jobs where WHAT like 'PKG_WMS.%';
JOB SCHEMA_USER LAST_DATE LAST_SEC NEXT_DATE NEXT_SEC BROKEN FAILURES INTERVAL WHAT
---------- ------------------------------ ------------------------------ ---------------------------------------------
1543 fws 2015/7/13 13:00:57 4000/1/1 00:00:00 Y 16 sysdate+1/1440 PKG_WMS.proc_TaskMain;
參數(shù):
BROKEN : 中斷標(biāo)記 ,'N啟動(dòng)、Y中斷' --> DBMS_JOBS.BROKEN(job_id,TRUE/FALSE); 停止/啟動(dòng)job,隨后需要COMMIT;否則設(shè)置失效
FAILURES :錯(cuò)誤次數(shù)
last_date:job上次成功執(zhí)行的時(shí)間
next_date:job下次執(zhí)行的時(shí)間 (受last_date和interval的影響)
total_time:job運(yùn)行的總時(shí)間 (每次運(yùn)行的時(shí)間累加)
this_date:job正在執(zhí)行的時(shí)間 (如果查詢時(shí)job正在執(zhí)行則有值 )
*** 分析:
*** 若定時(shí)任務(wù)what存儲(chǔ)過(guò)程調(diào)用出現(xiàn)異常(例如:空間不足、存儲(chǔ)過(guò)程本身編寫問(wèn)題..)
*** job會(huì)自動(dòng)嘗試16次連續(xù)失敗后再將broken狀態(tài)改為Y,并將next-date改為 “4000-1-1”,只能手動(dòng)exec dbms_job.run(:id);來(lái)啟動(dòng)job;
譬如:存儲(chǔ)過(guò)程p1,隨便注釋begin/end行,體現(xiàn)語(yǔ)法問(wèn)題,job會(huì)正常按照p1存儲(chǔ)過(guò)程的job運(yùn)行16次,再broken中斷job,
若到10次,存儲(chǔ)過(guò)程更改為正確狀態(tài),錯(cuò)誤次數(shù)將改為0,job改為正常;
*** 判斷問(wèn)題方法:
1、手動(dòng)call存儲(chǔ)來(lái)判斷是什么問(wèn)題,若call 存儲(chǔ)時(shí)未報(bào)錯(cuò),說(shuō)明之前該存儲(chǔ)有問(wèn)題過(guò),job嘗試運(yùn)行已超過(guò)16次,需要手動(dòng)exec dbms_job.run(:id);啟動(dòng)job;
2、查看alert日志,,Oracle job異常會(huì)記錄到告警日志;
嘗試啟動(dòng)...
SQL> begin
2 dbms_job.run(1543);
3 end;
4 /
ORA-12011: 無(wú)法執(zhí)行 1 作業(yè)
ORA-06512: 在 "SYS.DBMS_IJOB", line 648
ORA-06512: 在 "SYS.DBMS_JOB", line 284
ORA-06512: 在 line 2
SQL>
報(bào)錯(cuò),再看下alert 內(nèi)容(方案2):
1、
ORA-12012 : 自動(dòng)執(zhí)行作業(yè) 1543 出錯(cuò)
ORA-12899 : 列 "FWS"."RECODE_ERROR_MSG"."ERROR_MSG" 的值太大 (實(shí)際值 : 704, 最大值: 500 )
ORA-06512 : 在 "FWS.PROC_WRITEERRMSG" , line 22
ORA-06512 : 在 "FWS.PKG_WMS" , line 132
ORA-01688 : 表FWS.RECODE_ERROR_MSG 分區(qū) SYS_P6181 無(wú)法通過(guò) 8192 (在表空間 TBS_WMS_CITY_JK_DATA 中) 擴(kuò)展
ORA-06512 : 在 "FWS.PROC_WRITEERRMSG" , line 22
ORA-06512 : 在 "FWS.PKG_WMS" , line 514
ORA-01688 : 表FWS.RECODE_ERROR_MSG 分區(qū) SYS_P6181 無(wú)法通過(guò) 8192 (在表空間 TBS_WMS_CITY_JK_DATA 中) 擴(kuò)展
ORA-06512 : 在 "FWS.PROC_WRITEERRMSG" , line 22
ORA-06512 : 在 "FWS.PKG_WMS" , line 502
ORA-01400 : 無(wú)法將 NULL 插入 ("FWS"."BILL_RECEIPT_CITY"."CREATOR" )
ORA-06512 : 在 line 1
ORA-1688 : unable to extend table FWS.RECODE_ERROR_MSG partition SYS_P6181 by 128 in tablespace TBS_WMS_CITY_JK_DATA
ORA-1688 : unable to extend table FWS.RECODE_ERROR_MSG partition SYS_P6181 by 8192 in tablespace TBS_WMS_CITY_JK_DATA
ORA-1688 : unable to extend table FWS.RECODE_ERROR_MSG partition SYS_P6181 by 128 in tablespace TBS_WMS_CITY_JK_DATA
ORA-1688 : unable to extend table FWS.RECODE_ERROR_MSG partition SYS_P6181 by 8192 in tablespace TBS_WMS_CITY_JK_DATA
2、
ORA-12012: 自動(dòng)執(zhí)行作業(yè) 26 出錯(cuò)
ORA-06550: 第 1 行, 第 96 列:
PLS-00905: 對(duì)象 LOTTERY.P_LOCK_CHECK_HD 無(wú)效
ORA-06550: 第 1 行, 第 96 列:
PL/SQL: Statement ignored
Mon Jul 13 14:39:55 2015
Errors in file /u01/app/oracle/diag/rdbms/bjcc/ccem01/trace/ccem01_j001_36869.trc:
按照alert log 解決即可..
***1、空間不足是因?yàn)镽ECODE_ERROR_MSG表每天1億數(shù)據(jù)量增加導(dǎo)致..truncate table RECODE_ERROR_MSG即可; 表暴漲原因 Oracle 歸檔暴漲分析
***2、自己測(cè)試將存儲(chǔ)置失效的報(bào)錯(cuò)信息;
本文永久更新鏈接地址:
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com