【DB笔试面试482】如何查询SCHEDULER JOB的运行日志?

  • 2019 年 10 月 11 日
  • 筆記

题目部分

如何查询SCHEDULER JOB的运行日志?

答案部分

可以通过查询视图DBA_SCHEDULER_JOB_RUN_DETAILS来获取SCHEDULER JOB的运行日志、产生的错误等信息。如下所示:

SELECT JRD.LOG_ID,         JRD.JOB_NAME,         N.JOB_CLASS,         --TO_CHAR(JRD.ACTUAL_START_DATE, 'YYYY-MM-DD HH24:MI:SS') ACTUAL_START_DATE,         TO_CHAR(JRD.LOG_DATE, 'YYYY-MM-DD HH24:MI:SS') LOG_DATE,         JRD.STATUS,         JRD.ERROR#,         JRD.RUN_DURATION 运行时长,         JRD.ADDITIONAL_INFO    FROM DBA_SCHEDULER_JOB_LOG N, DBA_SCHEDULER_JOB_RUN_DETAILS JRD   WHERE N.LOG_ID = JRD.LOG_ID     AND N.JOB_NAME = 'JOB_INSERT_SQL_LHR'  --JOB的名称   ORDER BY JRD.LOG_ID DESC;

从查询结果中可以看到,JOB_INSERT_SQL_LHR从2016-11-29 13:03:36开始执行的时候就报错了,报错信息可以从ADDITIONAL_INFO列里找到,其报错的具体信息如下:

ORA-01658: unable to create INITIAL extent for segment in tablespace TS_LHR  ORA-06512: at "DB_MONITOR.PKG_SQL_HISTORY_LHR", line 180

可见,涉及到的程序是DB_MONITOR用户下的PKG_SQL_HISTORY_LHR包,而ORA-01658的错误是由于表空间不足引起的。

本文选自《Oracle程序员面试笔试宝典》,作者:李华荣。