1818IP-服务器技术教程,云服务器评测推荐,服务器系统排错处理,环境搭建,攻击防护等

当前位置:首页 - 数据库 - 正文

君子好学,自强不息!

Oracle JOB异常中断原因分析

2022-11-22 | 数据库 | gtxyzz | 534°c
A+ A-

Oracle JOB异常中断原因分析

注释

今天研发同事找我确认 PKG_WMS.proc_TaskMain 存储的 job 是否还在运行,竟发现 dba_jobs.NEXT_DATE=4000/1/1,如下看看究竟原因吧~

JOB 信息:

参数:

BROKEN : 中断标记 ,’N 启动、Y 中断’ –> DBMS_JOBS.BROKEN(job_id,TRUE/FALSE); 停止 / 启动 job, 随后需要 COMMIT; 否则设置失效

FAILURES :错误次数

last_date:job 上次成功执行的时间

next_date:job 下次执行的时间 (受 last_date 和 interval 的影响)

total_time:job 运行的总时间 (每次运行的时间累加)

this_date:job 正在执行的时间 (如果查询时 job 正在执行则有值)

分析:

*** 若定时任务 what 存储过程调用出现异常 (例如:空间不足、存储过程本身编写问题..)

*** job 会自动尝试 16 次连续失败后再将 broken 状态改为 Y,并将 next-date 改为 “4000-1-1”,只能手动 exec dbms_job.run(:id); 来启动 job;

譬如:存储过程 p1,随便注释 begin/end 行, 体现语法问题,job 会正常按照 p1 存储过程的 job 运行 16 次,再 broken 中断 job,

若到 10 次,存储过程更改为正确状态,错误次数将改为 0,job 改为正常;

判断问题方法:

1、手动 call 存储来判断是什么问题,若 call 存储时未报错,说明之前该存储有问题过,job 尝试运行已超过 16 次,需要手动 exec dbms_job.run(:id); 启动 job;

2、查看 alert 日志,oracle job 异常会记录到告警日志;

尝试启动…

SQL>begin
2dbms_job.run(1543);
3end;
4/

ORA-12011:无法执行1作业
ORA-06512:在"SYS.DBMS_IJOB",line648
ORA-06512:在"SYS.DBMS_JOB",line284
ORA-06512:在line2

SQL>

报错,再看下 alert 内容 (方案 2):

1、

ORA-12012:自动执行作业1543出错
ORA-12899:列"FWS"."RECODE_ERROR_MSG"."ERROR_MSG"的值太大(实际值:704,***值:500)
ORA-06512:在"FWS.PROC_WRITEERRMSG",line22
ORA-06512:在"FWS.PKG_WMS",line132
ORA-01688:表FWS.RECODE_ERROR_MSG分区SYS_P6181无法通过8192(在表空间TBS_WMS_CITY_JK_DATA中)扩展
ORA-06512:在"FWS.PROC_WRITEERRMSG",line22
ORA-06512:在"FWS.PKG_WMS",line514
ORA-01688:表FWS.RECODE_ERROR_MSG分区SYS_P6181无法通过8192(在表空间TBS_WMS_CITY_JK_DATA中)扩展
ORA-06512:在"FWS.PROC_WRITEERRMSG",line22
ORA-06512:在"FWS.PKG_WMS",line502
ORA-01400:无法将NULL插入("FWS"."BILL_RECEIPT_CITY"."CREATOR")
ORA-06512:在line1
ORA-1688:unabletoextendtableFWS.RECODE_ERROR_MSGpartitionSYS_P6181by128intablespaceTBS_WMS_CITY_JK_DATA
ORA-1688:unabletoextendtableFWS.RECODE_ERROR_MSGpartitionSYS_P6181by8192intablespaceTBS_WMS_CITY_JK_DATA
ORA-1688:unabletoextendtableFWS.RECODE_ERROR_MSGpartitionSYS_P6181by128intablespaceTBS_WMS_CITY_JK_DATA
ORA-1688:unabletoextendtableFWS.RECODE_ERROR_MSGpartitionSYS_P6181by8192intablespaceTBS_WMS_CITY_JK_DATA

2、

ORA-12012:自动执行作业26出错
ORA-06550:第1行,第96列:
PLS-00905:对象LOTTERY.P_LOCK_CHECK_HD无效
ORA-06550:第1行,第96列:
PL/SQL:Statementignored
MonJul1314:39:552015
Errorsinfile/u01/app/oracle/diag/rdbms/bjcc/ccem01/trace/ccem01_j001_36869.trc:

按照 alert log 解决即可..

***1、空间不足是因为 RECODE_ERROR_MSG 表每天 1 亿数据量增加导致..truncate table RECODE_ERROR_MSG 即可; 表暴涨原因 Oracle 归档暴涨分析

***2、自己测试将存储置失效的报错信息;

原文链接 :http://t.cn/RmQyDdn

本文来源:1818IP

本文地址:https://www.1818ip.com/post/10854.html

免责声明:本文由用户上传,如有侵权请联系删除!

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。