【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程序員面試筆試寶典》,作者:李華榮。