Jobs de Oracle

Los jobs de Oracle son a grandes rasgos una herramienta para la planificación y/o programación de tareas dentro de la base de datos; tenemos una funcionalidad algo similar a la proporcionada por el cron de GNU/Linux. En versiónes Oracle 10g el paquete original ya está siendo sustituido por dbms_scheduler.

¿Qué se puede hacer cuando un job falla? En primer lugar, ver el fichero de alertas de Oracle, el alert.log, para comprobar la existencia de errores. Es posible que esos errores sean achacables a un fallo de programación; en ese caso, habría que contactar con los programadores para que sean ellos los que se encarguen de solucionar el fallo. En otros casos, la culpa será del Sistema (la bd ó el so), y ahí será el dba quien tenga que remangarse para arreglar el problema.

Consulta rápida para comprobar los jobs de una base de datos:

select job,failures,last_date,last_sec,next_date,next_sec,schema_user from dba_jobs; 

Cuando un job falla 16 veces seguidas entra en un estado que se conoce como BROKEN y no vuelve a ser ejecutado por el planificador. En este caso será necesario primero solventar el error, y seguidamente cambiar el estado del job para que el planificador lo vuelva a ejecutar. Para hacer esto se pueden usar dos métodos:

exec dbms_job.run(job);  –> job es el número de job resultado de la consulta anterior.

ó

exec dbms_job.broken(job,FALSE,next_date); –> next_date puede ser una fecha, en el formato que tenga la fecha en la base de datos, o una función que haga uso de SYSDATE.

11 Responses to Jobs de Oracle

  1. hamta dice:

    hola deberias dejar ejemplos para crear jobs xq no se :S

  2. hamta dice:

    mañana me voi a tirar cn otra jerma q nu es mi flaka yei!!!

  3. victor espejo dice:

    necesito crear un job que dispare un procedimiento en oracle todas las noches

    • marcbil dice:

      DECLARE
      X NUMBER;
      BEGIN
      SYS.DBMS_JOB.SUBMIT
      (
      job => X
      ,what => ‘MAICAO.CAMBIAR_POR_TU_PROCEDIMIENTO;’
      ,next_date => to_date(’06/27/2013 17:38:15′,’mm/dd/yyyy hh24:mi:ss’)
      ,interval => ‘TRUNC(SYSDATE+1)’
      ,no_parse => FALSE
      );
      :JobNumber := to_char(X);
      END;

  4. Peter dice:

    Hola.
    Trabajo sobre bases de datos Oracle y me ha ocurrido un problema. Resulta que debido a necesidades del proyecto cree un job que ejecuta un procedimiento y este a su vez mata una sesion. Al ejecutarse el job se produce un fallo en el mismo y el error me dice que es porque no puede matar la sesion, hice pruebas de este procedidmiento en otras sesiones y si trabaja pero al parecer es por falta de permisos que me esta saliendo este error, sabes algo de este tema. Garcias por tu atención.

    • luisito dice:

      Asi es, es por falta de permisos en la sesión con la que lo estas ejecutando! Deberias validar que tipo de permisos tienes entre la sesión que falla y la que no!!
      Saludpos

  5. Pingback: Los números de 2010 « Blog Técnico

  6. Giomar dice:

    tengo un job que ejecuta un sp, todo esta muy bien ejecuta bien de lunes a viernes pero sabados y domingo no ejecuta el job alguna idea de porque ese problema gracias.

  7. Milagro Shaik dice:

    puedo recibir alguna alerta cuando un jobs falla

  8. Oscar Javier dice:

    Buen dia
    Tengo un jobs que quiero ejecutar dos veces dentro de un dia a las 7:00:00 a.m y luego
    a las 12:30:00 a.m como puedo programar dentro del intervalo..gracias

    • Roberto dice:

      Una solución “fácil” es crear dos jobs, uno que se ejecute todos los días a las 7:00 a.m. y otro que se ejecute todos los días a las 12:30.

      El next es trunc(sysdate+1) + 7/24 y el otro trunc(sysdate+1) + 12.5/24

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: