Oracle - JOB não executa no horário programado

Bom dia à todos.

Estou criando uma JOB para ser executada às 02:00 horas da manhã.

Esta job executa uma procedure que faz a limpeza de alguns dados não mais utilizados na base de dados.

Porém ela está rodando em horários que não são às 02:00 da manhã.

Porque acontece isto se eu defini na JOB que é pra ela rodar SE, SOMENTE SE, forem 02:00 horas da manhã???

Agradeço a atenção.

Abraços!

Qual o valor do next_date da all_jobs?

O next_date é sempre atualizado quando a JOB é executada.

Eu queria saber porque a JOB é executada às 08:00 da manhã por exemplo, se eu defini que ela só deverá ser executada às 02:00 da manhã?

E quanto ao next_date, se ela executou em horário não programado, ele é preenchido com uma data/hora maluca que o próprio Oracle define.

Abraço!

Ele define com base na coluna INTERVAL. Qual o INTERVAL e o NEXTDATE?.

Queria saber o Nextdate pra saber se é não é problema de horário no server Oracle.

Interval: trunc(sysdate+1)+2/24
Next_Date: 17/03/2011 02:00:00

Isto quando a JOB está correta.

Abraço!

Ele tenta executar o JOB por 3 vezes antes de coloca-lo em Broken.
Não está dando erro nas primeiras tentativas?

A JOB não entra em Broken, ela fica sempre executando e atualizando o next_date.
Quando chega novamente no horário do next_date, ele executa novamente.

O que preciso entender é porque ele executou às 21:00 horas se a JOB esta programada para executar às 02:00 horas da manhã?

Porque depois da primeira vez que ele executou no horário errado, ferrou!

Abraços!

O que quero dizer é, o Job pode ter dado erro 2 vezes por exemplo, e funcionou na terceira que pode ter iniciado as 21 horas.

Quanto tempo +/- dura a execução do Job?

A execuçao depende de quantos dados ele irá remover da base de dados.
Mas em média demora 5 minutos.
Abraços!

Tem acesso ao Alert Log?

Tenho sim.
Vou dar uma verificada!

Ele registra no alert_xe.log que executou a limpeza em horário não programado, mas nada além disso!

Defina o TIME_ZONE do Oracle Schedule, talvez seja isso, para definir use o seguinte comando:

DBMS_SCHEDULER.SET_SCHEDULER_ATTRIBUTE(‘default_timezone’,‘Brazil/West’);

Para setar um timezone diferente, verifique os nomes com a seguinte consulta:

SELECT DISTINCT TZNAME FROM V$TIMEZONE_NAMES;

Abs