1. OBJETIVO
  2. El objetivo de este articulo explicar el problema que puede surgir en las bases de datos oracle9 cuando el proceso background que gestiona las colas de oracle se queda colgado. En este documento se explica como detectar esta situación y solucionarla. Si deseas saber más acerca de Oracle Jobs pincha aquí.


  3. JOBS ORACLE
  4. Los jobs de oracle es una forma de automatizar una tarea dentro de la base de datos oracle. Para que estos funcionen la base de datos tiene que estar activa y el parámetro job_queue_processes del init.ora o spfile tiene que ser mayor que cero.

    Para verificar que el valor de este parámetro es mayor que cero podemos realizarlo de la siguiente forma. (Usuario sys)

    SQL> select value from v$parameter where name like '\%job\%'

    El número obtenido nos indicará las “colas” que gestionarán los jobs de nuestra base de datos y creará el proceso ora_cjq0_sid en el sistema operativo.


    Para ver si la base de datos tiene algún job programado podemos realizar la siguiente consulta con el usuario sys

    SQL> select * from dba_jobs


    2.1 Ejemplo de consultas con usuario sys:

    SQL> select job,log_user,priv_user,schema_user,last_date,last_sec,next_date,broken,interval from dba_jobs


    2.2 Vemos si el parámetro job_queue_processes es mayor que 0:

    SQL> select value from v$parameter where name like '\%job\%'

    En caso de que no sea mayor que cero habría que modificarlo para que los jobs pudieran funcionar.


    2.3 Vemos que existe un proceso en el sistema operativo ora_cjq0_sid:

    $ ps –fea | grep cjq


  5. PROBLEMAS JOBS
  6. El principal problema de los jobs surge cuando estos no están ejecutando. Las causas pueden ser varias:


    3.1 No existen Jobs en la base de datos:

    • Para ello comprobamos según se ha explicado en el apartado anterior accediendo a la tabla dba_jobs los jobs que existen en la base de datos.
    • En caso de que existan jobs es importante fijarse cuando fue la última vez que se ejecutaron y cuando se deberían de haber ejecutado.

    3.2 El parámetro del job_queue_processes es igual a cero.

    • Si existen jobs en la base de datos y estos deberían de ejecutarse nos tenemos que fijar en este parámetro para ver si es mayor que cero. Si este parámetro está a cero por muchos jobs que haya programados en la base de datos no se ejecutarán.

    3.3 El proceso de jobs del sistema operativo está colgado.

    • Cuando se detecta que un job debería haberse ejecutado y el parámetro job_queue_processes es mayor que cero, tenemos que comprobar que el proceso background que controla este proceso es correcto. Para ello realizamos como se ha visto en el apartado anterior: ps –fea | grep cjq para ver si ese proceso tiene un “tiempo” o “parámetro anormal” de ejecución.

      Ejemplo:

      [root@orasite root]# ps -fea | grep cjq
      oracle9 1558 1 0 Jun08 ? 00:00:05 ora_cjq0_orasite1
      oracle9 1626 1 38 Jun08 ? 9-22:26:08 ora_cjq0_orasite2
      oracle9 18806 1 0 Jun18 ? 00:00:03 ora_cjq0_orasite3
      root 27950 27883 0 10:14 pts/1 00:00:00 grep cjq

      En este caso es la base de datos orasite2 la que tiene un problema en la gestión de los jobs


  7. SOLUCIONAR PROBLEMA JOBS
  8. Para solucionar el último caso explicado en el apartado anterior (el proceso background de la base de datos está “colgado”) realizamos los siguientes pasos

    4.1 Vemos cuantos procesos hay:

    SQL> show parameter job_queue_processes;


    4.2 Ponemos el valor de job_queue_processes a 0 y matamos el proceso con kill -9 a nivel del sistema operativo el proceso.

    SQL> alter system set job_queue_processes=0;
    kill -9


    4.3 Una vez que el proceso se ha ido reiniciamos al valor original job_queue_processes:

    SQL> alter system set job_queue_processes=


Escribe un comentario:

Autor:

Comentarios:

por ERamirez | 10/01/2008 17:23:31

RE: Problemas Oracle Jobs - No se están ejecutando

Hola, ya probe las indicaciones dadas por estas sugerencias, sin embargo siempre persiste el problema, podrian ayudarme. saludos,

por AMG | 15/01/2008 12:04:23

RE: Problemas Oracle Jobs - No se están ejecutando

cuales son los pasos que sigues?
cuantos jobs tienes en la base de datos?
cual es tu valor actual del job_queue_processes?



Buscar errores


Buscar en la web

 
Web orasite.com
· Tutoriales
- Export / Import Oracle 9i
- Instalación Oracle 10g
- Archivos de configuración de red para Oracle
- Administración de usuarios
- Configurar modo archivelog
- Export Oracle 10g
- init.ora spfile.ora fichero de parámetros oracle
- Tunning Oracle
- Arrancar o parar base de datos Oracle
- Controlar espacio tablespaces
- Activar auditoria de la base de datos
- Seguridad listener Oracle 10g
- Consultas sobre V$
- Parámetros memoria SGA
- Hotbackup de una base de datos Oracle
- Oracle Jobs (9i)
- Cambiar ubicación base de datos
- Bloquear acceso a base de datos por IP
- Privilegios sysoper y sysdba
- Instalación de la máquina virtual Java
- Recover database until time
- Recuperación modo noarchivelog
- Encriptación e integridad de datos en Oracle
- Instalación statspack
- Configuración de memoria
- Loadjava y Dropjava en Oracle
- Cambiar a modo restricted session
- Búsquedas en Oracle 10g case-insensitive
- Problemas Oracle Jobs
- Introducción Oracle 10g
 
· Oracle FAQ
- Oracle database
 
· Noticias
- Oracle 11g presentada
- Oracle vulnerable a inyección SQL en cursores
- Procesos de negocio con Oracle
- OracleXE para Debian
 
· Descargas
- Free Toad
 
· Errores Oracle
· Libros sobre Oracle
· Sitios relacionados
- ZonaOracle.com
- AjpdSoft
- La Web del Programador
· Sitios recomendados
- Cronica24.com
- TPV
Los contenidos de esta web son producto de la colaboración de sus usuarios, por lo que puede haber erratas. Si encuentras una información incorrecta agradeceremos que nos lo comuniques en nuestra dirección:
Cualquier información aquí publicada es de libre distribución, siempre y cuando se haga referencia mediante un link al documento original.
Orasite.com