ORACLE DBA_JOBS中的FAILURES

今天,开发反应一个job执行有时成功,有时失败,让帮忙查看下原因。

检查dba_jobs视图发现FAILURES为0,broken为N

检查alert log发现了报错信息:

ORA-12012: 自动执行作业 43 出错
ORA-01400: 无法将 NULL 插入 ("a"."gw")
ORA-06512: 在 "a.gw", line 22
ORA-06512: 在 "a.pre_gw", line 3
ORA-06512: 在 line 1

那么为什么明明报错了,但是failures显示为0呢,那么查查这个failures的意思吧:

dba_jobs视图:

JOB
      Identifier of job. Neither import/export nor repeated executions change it.
   LOG_USER
      USER who was logged in when the job was submitted
   PRIV_USER
      USER whose default privileges apply to this job
   SCHEMA_USER
      select * from bar means select * from schema_user.bar
   LAST_DATE
      Date that this job last successfully executed
   LAST_SEC
      Same as LAST_DATE. This is when the last successful execution started.
   THIS_DATE
      Date that this job started executing (usually null if not executing)
   THIS_SEC
      Same as THIS_DATE. This is when the last successful execution started.
   NEXT_DATE
      Date that this job will next be executed
   NEXT_SEC
      Same as NEXT_DATE. The job becomes due for execution at this time.
   TOTAL_TIME
      Total wallclock time spent by the system on this job,in seconds
   BROKEN
      If Y,no attempt is being made to run this job. See dbms_jobq.broken(job).
   INTERVAL
      A date function
   FAILURES
      How many times has this job started and failed since its last success?  哦,原来是从上次成功执行后算的,也就是说成功执行一次后,就清零了。再次查看报错的时间,是几天前,那么昨天是成功执行了的,因此是0。
   WHAT
      Body of the anonymous PL/SQL block that this job executes
   NLS_ENV
      alter session parameters describing the NLS environment of the job
   MISC_ENV
      a versioned raw maintained by the kernel
   INSTANCE
      Instance number restricted to run the job

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Oracle DBA_JOBS是用于创建和管理Oracle数据库作业的系统表。它允许您创建周期性或非周期性作业,并在指定时间自动运行这些作业。 以下是创建和管理Oracle DBA_JOBS的步骤: 1. 创建作业:使用DBMS_JOB包的PROCEDURE来创建作业。例如,要创建一个名为"my_job"的作业,可以使用以下命令: ```sql DECLARE jobno NUMBER; BEGIN DBMS_JOB.SUBMIT( job => jobno, what => 'BEGIN my_procedure(); END;', next_date => SYSDATE, interval => 'SYSDATE + 1/24'); COMMIT; END; ``` 这个命令将在每个小时的第一分钟运行名为"my_procedure"的PL/SQL过程。 2. 查看作业:使用DBA_JOBS视图来查看所有作业的列表和详细信息。例如,要查看所有作业的列表,可以使用以下命令: ```sql SELECT job, schema_user, what, next_date, interval, failures, broken FROM dba_jobs; ``` 这个命令将返回所有作业的列表以及它们的详细信息。 3. 修改作业:您可以使用DBMS_JOB包的PROCEDURE来修改已经存在的作业。例如,要修改名为"my_job"的作业以使其在每个小时的第十五分钟运行,可以使用以下命令: ```sql DECLARE jobno NUMBER; BEGIN SELECT job INTO jobno FROM dba_jobs WHERE job = 'my_job'; DBMS_JOB.BROKEN(jobno, false); DBMS_JOB.CHANGE( job => jobno, what => 'BEGIN my_procedure(); END;', next_date => SYSDATE, interval => 'SYSDATE + 1/24/4'); COMMIT; END; ``` 这个命令将修改名为"my_job"的作业以使其在每个小时的第十五分钟运行。 4. 删除作业:您可以使用DBMS_JOB包的PROCEDURE来删除已经存在的作业。例如,要删除名为"my_job"的作业,可以使用以下命令: ```sql DECLARE jobno NUMBER; BEGIN SELECT job INTO jobno FROM dba_jobs WHERE job = 'my_job'; DBMS_JOB.REMOVE(jobno); COMMIT; END; ``` 这个命令将删除名为"my_job"的作业。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值