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