oracle 作业 断开原因,解惑 | Oracle JOB 异常中断原因分析
注釋
今天研發(fā)同事找我確認(rèn) PKG_WMS.proc_TaskMain 存儲(chǔ)的 job 是否還在運(yùn)行,竟發(fā)現(xiàn) dba_jobs.NEXT_DATE=4000/1/1. 如下看看究竟原因吧~
JOB 信息:
參數(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ǔ)過程調(diào)用出現(xiàn)異常 (例如:空間不足、存儲(chǔ)過程本身編寫問題..)
*** 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ǔ)過程 p1,隨便注釋 begin/end 行, 體現(xiàn)語(yǔ)法問題,job 會(huì)正常按照 p1 存儲(chǔ)過程的 job 運(yùn)行 16 次,再 broken 中斷 job,
若到 10 次,存儲(chǔ)過程更改為正確狀態(tài),錯(cuò)誤次數(shù)將改為 0,job 改為正常;
判斷問題方法:
1、手動(dòng) call 存儲(chǔ)來(lái)判斷是什么問題,若 call 存儲(chǔ)時(shí)未報(bào)錯(cuò),說明之前該存儲(chǔ)有問題過,job 嘗試運(yùn)行已超過 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ú)法通過 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ú)法通過 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 128in tablespace TBS_WMS_CITY_JK_DATA
ORA-1688: unable to extend table FWS.RECODE_ERROR_MSG partition SYS_P6181 by 8192in tablespace TBS_WMS_CITY_JK_DATA
ORA-1688: unable to extend table FWS.RECODE_ERROR_MSG partition SYS_P6181 by 128in tablespace TBS_WMS_CITY_JK_DATA
ORA-1688: unable to extend table FWS.RECODE_ERROR_MSG partition SYS_P6181 by 8192in 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 1314: 39: 552015
Errors in file /u01/app/oracle/diag/rdbms/bjcc/ccem01/trace/ccem01_j001_36869. trc:
按照 alert log 解決即可..
***1、空間不足是因?yàn)?RECODE_ERROR_MSG 表每天 1 億數(shù)據(jù)量增加導(dǎo)致..truncate table RECODE_ERROR_MSG 即可; 表暴漲原因 Oracle 歸檔暴漲分析
***2、自己測(cè)試將存儲(chǔ)置失效的報(bào)錯(cuò)信息;
總結(jié)
以上是生活随笔為你收集整理的oracle 作业 断开原因,解惑 | Oracle JOB 异常中断原因分析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle 11查询sid,oracl
- 下一篇: 增加 oracle服务名,oracle本