ORACLE JOB 失败 查看,Oracle JOB异常中断原因分析

fac02dbecc4db68ee9f0fb7d043354d5.png

注释

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

JOB 信息:

format,png

参数:

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

2     dbms_job.run(1543);

3    end;

4  /

ORA-12011: 无法执行 1 作业

ORA-06512: 在 "SYS.DBMS_IJOB", line 648

ORA-06512: 在 "SYS.DBMS_JOB", line 284

ORA-06512: 在 line 2

SQL>

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

1、

ORA-12012 : 自动执行作业 1543 出错

ORA-12899 : 列 "FWS"."RECODE_ERROR_MSG"."ERROR_MSG"的值太大 (实际值 : 704, ***值: 500)

ORA-06512 : 在 "FWS.PROC_WRITEERRMSG", line 22

ORA-06512 : 在 "FWS.PKG_WMS", line 132

ORA-01688 : 表 FWS.RECODE_ERROR_MSG 分区 SYS_P6181 无法通过 8192 (在表空间 TBS_WMS_CITY_JK_DATA 中) 扩展

ORA-06512 : 在 "FWS.PROC_WRITEERRMSG", line 22

ORA-06512 : 在 "FWS.PKG_WMS", line 514

ORA-01688 : 表 FWS.RECODE_ERROR_MSG 分区 SYS_P6181 无法通过 8192 (在表空间 TBS_WMS_CITY_JK_DATA 中) 扩展

ORA-06512 : 在 "FWS.PROC_WRITEERRMSG", line 22

ORA-06512 : 在 "FWS.PKG_WMS", line 502

ORA-01400 : 无法将 NULL插入 ("FWS"."BILL_RECEIPT_CITY"."CREATOR")

ORA-06512 : 在 line 1

ORA-1688 : unable toextendtableFWS.RECODE_ERROR_MSG partition SYS_P6181by128intablespace TBS_WMS_CITY_JK_DATA

ORA-1688 : unable toextendtableFWS.RECODE_ERROR_MSG partition SYS_P6181by8192intablespace TBS_WMS_CITY_JK_DATA

ORA-1688 : unable toextendtableFWS.RECODE_ERROR_MSG partition SYS_P6181by128intablespace TBS_WMS_CITY_JK_DATA

ORA-1688 : unable toextendtableFWS.RECODE_ERROR_MSG partition SYS_P6181by8192intablespace TBS_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: Statement ignored

Mon Jul 13 14:39:55 2015

Errors infile /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

【编辑推荐】

【责任编辑:庞桂玉 TEL:(010)68476606】

点赞 0

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值