I have a scheduled a job in DBMS jobs (not DBMS scheduler). I can see the job has failed in weekends. I want to see the log file with failure reason. Where i can i find this?
Any suggestions please?
Thanks in advance.
asked Feb 24, 2014 at 8:55
3
For DBMS_SCHEDULER (as noted by Frank Schmitt) try this:
SELECT *
FROM DBA_SCHEDULER_JOB_RUN_DETAILS
ORDER BY LOG_DATE DESC;
and then look in your bdump folder, for the trace files.
For DBMS_JOB you can view your alert log file:
SELECT VALUE
FROM V$PARAMETER
WHERE NAME = 'background_dump_dest';
or
SELECT VALUE
FROM V$SPPARAMETER
WHERE NAME = 'background_dump_dest';
The alert log file has a name like «alert_orcl.log», if your database name is the default «orcl».
answered Feb 24, 2014 at 9:12
Corrado PiolaCorrado Piola
8591 gold badge14 silver badges18 bronze badges
5
For DBMS_JOB you’d see the information about failed job in the database alert log. There you’d also see a name of the tracefile with more information about the failure.
answered Feb 24, 2014 at 12:06
Late answer, but I think it will help people coming on this page for solution.
Before getting into log details to debug, you will need to enable logging.
By default, logging is disabled.
Below are options to enable logging :
Logging Level DBMS_SCHEDULER.LOGGING_OFF
DBMS_SCHEDULER.LOGGING_FAILED_RUNS DBMS_SCHEDULER.LOGGING_RUNS
DBMS_SCHEDULER.LOGGING_FULL
Now, you can set attribute to update logging level :
begin
DBMS_SCHEDULER.SET_ATTRIBUTE('job_name','logging_level',DBMS_SCHEDULER.LOGGING_FULL);
end;
David Buck
3,72335 gold badges31 silver badges35 bronze badges
answered Sep 14, 2020 at 6:14
1
Check Scheduler job detail in CDB
select CON_ID, JOB_NAME,JOB_TYPE,ENABLED, STATE,NEXT_RUN_DATE, REPEAT_INTERVAL from cdb_scheduler_jobs;
Monitor currently running jobs
SELECT job_name, session_id, running_instance, elapsed_time, FROM dba_scheduler_running_jobs;
View the job run details
select * from DBA_SCHEDULER_JOB_RUN_DETAILS;
View the job related logs:
select * from DBA_SCHEDULER_JOB_LOG;
Check all scheduler schedules
set pagesize 200
set lines 299
col START_DATE for a45
col REPEAT_INTERVAL for a45
col schedule_name for a34
select schedule_name, schedule_type, start_date, repeat_interval from dba_scheduler_schedules;
History of all scheduler job runs
set pagesize 299
set lines 299
col JOB_NAME for a24
col actual_start_date for a56
col RUN_DURATION for a34
select job_name,status,actual_start_date,run_duration from DBA_SCHEDULER_JOB_RUN_DETAILS order by ACTUAL_START_DATE desc;
Check log information for all Scheduler jobs
set pagesize 299
set lines 299
col job_name for a24
col log_date for a40
col operation for a19
col additional_info a79
select job_name,log_date,status,OPERATION,ADDITIONAL_INFO from dba_scheduler_job_log order by log_date desc;
Check all scheduler windows details
set pagesize 300 linesize 200
select * from dba_scheduler_windows;
Информацию о журналах заданий можно найти в двух представлениях словаря данных: DBA_SCHEDULER_JOB_LOG и DBA_SCHEDULER_JOB_RUN_DETAILS.
Представление DBA_SCHEDULER_JOB_LOG
При создании, изменении, удалении и запуске заданий результаты таких операций загружаются в сводную таблицу, которая доступна через представление DBA_SCHEDULER_JOB_LOG. Перечень столбцов представления приведен в таблице ниже.
Имя столбца |
Описание |
LOG_ID |
Уникальный идентификатор записи. |
LOG_DATE |
Временная метка записи журнала. |
OWNER |
Владелец журнала. |
JOB_NAME |
Имя задания. |
JOB_CLASS |
Класс заданий (если задан). |
OPERATION |
Что произошло при обращении к заданию (например, CREATE, RUN, BROKEN). |
STATUS |
Что произошло после выполнения операции заданием (например, SUCCEEDED, FAILED). |
USER_NAME |
Имя пользователя, вызвавшего задание. |
CLIENT_ID |
Идентификатор клиента, если он был задан посредством DBMS_SESSION.SET_IDENTIFIER. |
GLOBAL_UID |
Глобальный UID для глобальных пользователей. |
ADDITIONAL_INFO |
Любая дополнительная информация о выполнении задания хранится в данном столбцев виде значения типа CLOB. Например, если задание было автоматически удалено после успешного выполнения (параметр auto_drop был установлен в TRUE), то в столбце OPERATION отображается значение DROP. Однако этих сведений недостаточно для того, чтобы понять, автоматически удалено задание или явно, пользователем. В столбце дополнительной информации выводится конкретная причина удаления, в данном случае это будет REASON=»Auto drop job dropped». Аналогично здесь сохраняется и любая другая информация, связанная с выполнением задания. |
Представление DBA_SCHEDULER_JOB_RUN_DETAILS
Представление DBA_SCHEDULER_JOB_LOG, описанное в предыдущем разделе, выводит сводную журнальную информацию для заданий, но не детали выполнения. Подробные сведения о выполнении работы содержатся в представлении DBA_SCHEDULER_JOB_RUN_DETAILS, столбцы которого описаны в следующей таблице.
Имя столбца |
Описание |
LOG_ID |
Уникальный номер, представляющий определенную запись журнала. |
LOG_DATE |
Временная метка записи журнала, выводимая как значение типа TIMESTAMP WITH TIME ZONE. |
OWNER |
Владелец задания. |
JOB_NAME |
Имя задания. |
STATUS |
Статус задания после выполнения операции (например, FAILED, SUCCEEDED). |
ERROR# |
Номер ошибки Oracle (в случае ошибки). |
REQ_START_DATE |
Спланированное или запрошенное время запуска задания, которое может не совпадать с фактическим временем запуска. |
ACTUAL_START_DATE |
Выполнение задания может не начаться в запланированное или запрошенное время (например, если окно не было предварительно открыто или выполнялось более высокоприоритетное задание). В этом случае временная метка в данном столбце фиксирует фактическое время начала выполнения задания. |
RUN_DURATION |
Продолжительность выполнения задания, отображаемая как значение типа TIMESTAMP. |
INSTANCE_ID |
При работе с базой данных RAC задание должно выполняться на определенном экземпляре базы данных. Номер такого экземпляра записывается в данный столбец. |
SESSION_ID |
SID сеанса, который запустил процесс задания. |
SLAVE_PID |
Идентификатор подчиненного процесса задания. |
CPU_USED |
Процессорное время, израсходованное на выполнение задания. |
ADDITIONAL_INFO |
Дополнительная информация об особенностях выполнения задания, сохраненная в виде значения типа CLOB. Такая информация может быть чрезвычайно полезна для диагностики проблем с выполнением задания. Предположим, например, что задание выполнить не удалось, а в данном столбце находятся такие сведения: ORA-01014: ORACLE shutdown in progress Или предположим, что задание сбора статистики не выполнилось, и в столбце отображается следующее: ORA-28031: maximum of 148 enabled roles exceeded В обоих случаях вы можете определить точную причину невыполнения задания. Аналогично здесь сохраняется и другая информация, связанная с соответствующей строкой представления DETAILS. |
Очистка журнала заданий
Журналирование заданий обеспечивает доступ к очень полезной информации, но если время от времени не очищать журналы, они будут неограниченно увеличиваться в объеме и заполнят все пространство базы данных. По умолчанию журнальная информация хранится в таблице (SYS.SCHEDULER$_JOB_RUN_DETAILS) табличного пространства SYSAUX. Oracle решает проблему, автоматически удаляя журнальные записи через определенные промежутки времени. Операция удаления выполняется заданием планировщика под названием PURGE_LOG, которое принадлежит пользователю SYS. Это задание автоматически устанавливается при создании базы данных Oracle в составе класса заданий DEFAULT_JOB_CLASS. Оно вызывает именованную программу PURGE_LOG_PROG, которая указывает на хранимую процедуру AUTO_PURGE самого пакета DBMS_SCHEDULER.
Это задание выполняется на основе именованного расписания DAILY_ PURGE_SCHEDULE, которое запускается в 3:00 утра ежедневно. Хотя это автоматически создаваемое задание, это не мешает управлять его выполнением. Как и для любых других видов заданий, вы можете изменять его свойства (например, изменить время его запуска, вызываемую программу или определить, следует ли связывать его с окном).
PURGE_LOG удаляет только те записи журнала, которые помечены для удаления, так как истек их период сохранения (retention period) (см. далее раздел «Задание периода сохранения»).
Уровень журналирования
Управлять объемом журнала заданий можно также за счет ограничения объема информации о задании, записываемой в журнал. Например, можно вести журнал только при выполнении задания, но не при его создании. В некоторых случаях можно вообще отказаться от жур- налирования.
Определить уровень журналирования можно при создании класса заданий, задав параметр logging_level процедуры CREATE_JOB_CLASS. Впоследствии задание унаследует свойства класса (при наличии ссылки на класс при создании задания).
DBMS_SCHEDULER поддерживает три уровня журналирования:
DBMS_SCHEDULER.LOGGING_OFF
Журналирование полностью отключено. DBMS_SCHEDULER.LOGGING_RUNS
Журналы ведутся только при выполнении задания. Значение по умолчанию.
DBMS_SCHEDULER.LOGGING_FULL
Журналы ведутся при выполнении задания, а также при осуществлении любых операций над заданиями (таких как создание, удаление и изменение).
Можно задать параметр logging_level процедуры CREATE_JOB_CLASS следующим образом:
Можно изменить уровень журналирования, задав атрибут logg- ing_level класса заданий как в следующем примере (см. далее раздел «Управление атрибутами»).
Задание периода сохранения
Существует еще один способ ограничения размера журналов — задание периода сохранения для записей в журнальных таблицах. При запуске автоматического задания PURGE_LOG из журнала удаляются только те записи, которые старше соответствующей даты. Длительность периода сохранения по умолчанию составляет 30 дней. Через 30 дней журнальные записи, созданные 31 день назад, будут автоматически удалены.
При необходимости можно указать разные периоды сохранения для всех классов заданий. Для этого задайте параметр log_history процедуры CREATE_JOB_CLASS (значение по умолчанию — 30 дней). Позже можно будет изменить период сохранения для существующего класса заданий, задав атрибут log_history.
В следующем примере период сохранения задается для уже существующего класса заданий DEFAULT_JOB_CLASS:
Зададим период сохранения для журнала продолжительностью 120 дней при создании класса заданий:
Текущее значение длительности периода сохранения журнала можно найти в представлении словаря данных DBA_SCHEDULER_JOB_CLASSES:
В большинстве случаев значения по умолчанию для уровня журнали- рования и периода сохранения оказываются вполне подходящими. Однако в некоторых случаях может возникнуть необходимость замены этих значений. Журналы обычно являются единственным средством, с помощью которого можно выявить проблемы после завершения заданий. Для особенно важных заданий можно включить полное жур- налирование. Для заданий, по которым вам необходимо просматривать более старые, чем обычно, сведения, можно указать более долгий (по отношению к значению по умолчанию) период сохранения.
< Предыдущая | Следующая > |
---|