Oracle Jobs. Planificando tareas en Oracle

E-mail Imprimir PDF

1. Objetivo

Este artículo muestra como ORACLE maneja las tareas planificadas (oracle jobs) y qué parámetros y procesos afectan a esta planificación así como la manera de crearlos fácilmente a través de TOAD. (Para bases de datos ORACLE 9).

2. Introducción

La base de datos ORACLE ofrece una cola para planificar algunas operaciones que se hace rutinarias en una base de datos ORACLE. La funcionalidad de los Jobs de oracle es parecida al cron de UNIX en el cual se puede planificar una tarea a una determinada hora y con una periodicidad concreta. La diferencia notable que podríamos tener entre el cron de UNIX y el job de oracle es obvia. El job de oracle se programa dentro de la base de datos por lo tanto si la base de datos no está funcionando, el job no se ejecutará.

3. ¿Cómo se lleva a cabo la planificación?

La planificación (en oracle9i) se lleva a cabo a través del paquete DBMS_JOB. Dada la diferencia anotada anteriormente entre cron y job podemos decir que la utilización de jobs sería conveniente realizarla cuando la tarea que se realice afecte a la base de datos, que es la que tiene que estar funcionado. Para tareas del sistema en este caso sería más propio utilizar el cron o “gestor” de tareas programadas que tenga el sistema operativo.
ORACLE iniciará un proceso coordinador de esta cola de tareas coordinator job queue (CJQ0) para gestionar la planificación los jobs.

4. Parámetros en init.ora / spfile.ora

Para que cualquier Job de oracle se pueda ejecutar correctamente tenemos que tener en cuenta el parámetro job_queue_processes el cual nos indica el número de colas que gestionarán nuestros jobs. Si este parámetro está a cero, por muchos Jobs que programemos en nuestra base de datos, no se ejecutarán.

En este caso no se ejecutarían nuestros Jobs:

SQL> show parameter job_queue_processes

NAME TYPE VALUE
---------------------------------------
job_queue_processes integer 0

En este caso disponemos de una cola que gestionará todos nuestros JOBS:

SQL> show parameter job_queue_processes

NAME TYPE VALUE
---------------------------------------
job_queue_processes integer 1

Este parámetro debe de ser mayor del número de jobs que se desee ejecutar de forma simultánea. El máximo lo pone ORACLE en 1000. Una de las formas de cambiar este parámetro es lanzando la siguiente sentencia.

ALTER SYSTEM SET job_queue_processes = numero_colas

Para que esta operación tenga efecto se debe de reiniciar la base de datos ya que es un parámetro estático.

5. Vistas para ver los jobs de la base de datos

Estas son las vistas a través de las cuales se pueden ver los jobs que están planificados en la base de datos.

DBA_JOBS: Muestra la información de todos los jobs de la base de datos.
ALL_JOBS: Muestra la misma información que dba_jobs pero sólo los jobs a los cuales puede acceder el usuario actual con el que se está realizando la consulta.
USER_JOBS: Muestra la misma información que dba_jobs pero solo con los jobs del cual es propietario el usuario con el que se realiza la consulta.
DBA_JOBS_RUNNING: Esta vista contiene la información de todos los jobs que actualmente están corriendo en la base de datos.

6. Manejo de jobs con TOAD

Mediante el cliente Toad es muy sencillo gestionar los JOBS de oracle, tanto su creación como su modificación y planificación.
En la pestaña Jobs podemos gestionar estas tareas a través de una sencilla interfaz.



Cuando seleccionamos el job que queremos modificar se activan los demás botones para gestionar estos jobs. El primer icono indica la “creación de un nuevo Job”. El segundo icono indica la “modificación del Job seleccionado”. El tercer icono que no está resaltada indicaría la puesta en marcha de ese Job ya que significaría que estaría parado. El cuarto icono sería para parar la ejecución de ese job. El quinto icono sería para ejecutar la tarea en ese preciso instante. Y el último icono sería para borrar el job seleccionado.



A continuación mostramos la pantalla que TOAD utilizaría para crear y modificar estos jobs.

Como podemos ver es tan sencillo como indicar el momento en el que queremos que se ejecute por primera vez (At this time) , la periodicidad (Interval) con la que queremos que se ejecute y el código que queremos que se ejecute. ( What to execute )


NOTA: Oracle 10g modifica algunos conceptos sobre los oracle jobs

 

Comentarios  

 
0 #1 flipi 17-10-2007 19:00
Por qué puede ocurrir que me salgan deshabilitadas todas las opciones para trabajar con Jobs desde el TOAD?
 
 
0 #2 Ale 24-10-2007 12:30
A mi me pasa algo parecido. Tengo la versión 8.0.0.47 de Toad y Oracle 10g.

Desde el menú "Create" consigo crear un Job, pero luego no tengo forma de ver los Jobs que están programados. No sé cómo llegar al listado donde poder gestionarlos.
 
 
0 #3 Pepe 28-12-2007 17:19
Es el toad-free?
 
 
+1 #4 AMG 08-01-2008 15:11
La imagen que se muestra no corresponde al TOAD free
 
 
+1 #5 Selene 20-02-2008 19:20
Soy novata con las BD, Si deseo poner un select donde deberia ir?

Gracias
 
 
+1 #6 NeO 18-05-2010 12:31
Para hacer un select, tienes que abrir el SQL Style editor del TOAD
 
 
+1 #7 OMARE 19-08-2010 15:14
Que pasa si se programa un job pero por alguna razon este no se ejecuta, ¿hace procesos de rollback o algo asi? y ¿en que afecta al rendimiento de la DB?
 
 
+1 #8 chio 18-02-2011 12:49
Me parecen muy buenas las utilidades de los jobs, sera que puedo poner en ellos la generacion de backup's ?, como lo haria? , gracias de antemano
 
 
+1 #9 MarcBisbalOliver 02-03-2012 20:47
Yo tengo el oracle free pero no me deja usar los jobs. ¿Alguna solución?
 

Haz login para dejar un comentario. Puedes hacer login con tu cuenta de:


Haz login con tu cuenta orasite

Haz login con tu cuenta de:

Errores Oracle más comunes