【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程序员面试笔试宝典》,作者:李华荣。