Tradueix

miércoles, 28 de enero de 2009

startup automático de las bbdd de oracle

En Linux, una vez creado el proceso en /etc/init.d/ para encender el oracle automaticamente al reiniciar la màquina, no sus olvideis de modificar el fichero /etc/oratab. En el se encuentra una lista de las bbdd que tenemos en la máquina y si queremos que se enciendan o no automaticamente al reiniciar el sistema de la siguiente forma:

:/opt/app/oracle/product/10.2.0/db_1:Y
:/opt/app/oracle/product/10.2.0/db_1:N

Simplemente cambiando Y o N se monta la base de datos escogida al reiniciar Oracle.

miércoles, 21 de enero de 2009

ORA-12500

Las conexiones se estan multiplicando y el uso en general de la bbdd ha empezado a crecer. Empiezan a atacar la bbdd por todas partes. En algunos intentos de conexión ha aparecido el fastidioso error:
ORA-12500: TNS:listener failed to start a dedicated server process
En el sistema los procesos de oracle (ps -A) eran numerosos. Lo curioso és que al principio las conexiones desde SQLDeveloper funcionaban, en cambio las de un cliente desarrollado en NetBeans no. Desconozco la razón de esta discriminación.
Rastreando por internet he llegado a la web donde escribe este señor al que apodaré Boris Yelsin (que por cierto, se merece el cielo y mucho mas) y he comprobado el parámetro de procesos. Según el init.ora o segun el TOAD o segun el comando "show parameter process" tenia 150 procesos como máximo.
Despues he comprobado en el fichero /opt/u01/app/oracle/admin//bdump/alert_.log
para ver si hay algún error mas y he encontrado este:
kkjcre1p: unable to spawn jobq slave process
Buscando en internet al respecto como siempre llegamos al mismo sitio (Boris Yelsin otra vez): http://www.dba-oracle.com/t_kkjcre1p_unable_to_spawn.htm
Efectivamente parece que la máquina no tiene suficientes recursos. La cuestión és si el problema es de la RAM o bien de la limitación del parámetro de Oracle para generar mas procesos para cada nueva conexión. Según parece hay tres posibilidades:
  1. El parámetro process es demasiado pequeño
  2. La RAM de la máquina es demasiado limitada
  3. El job_queue_processes es 0
Creo que de la RAM no es problema así que aumentaré el valor del parámetro. Para ello:
  1. entrar en: sqlplus /nolog
  2. connect sys as sysdba;
  3. ALTER SYSTEM SET processes=500 SCOPE=SPFILE;
    (el valor inicial era 150. Scope=spfile hace que el cambio afecte al spfile, con lo que al arrancar la bbdd de nuevo tendria que canviarse. Ojo, NO afecta al pfile, o sea, al init.ora, con lo que si queremos cambiarlo en el init.ora hay que hacerlo en el fichero y convertir el init.ora en un spfile. Otro rato veremos como hacer esta operación)
  4. shutdown immediate (hay que bajar la bbdd para que tenga efecto el cambio)
  5. startup
  6. show parameter process; --para comprobar que realmente ha cambiado.
La lucha sigue!!!

Introducción

Este es el n-esimo dia de mi guerra contra el sistema de base de datos Oracle. Y és una autentica guerra pues de tanto en cuanto me peleo con el, con todas y cada una de sus tropas. Pero hoy es diferente. La diferència es que después de la última batalla he decidido empezar este diario de guerra. Espero que sea útil, tanto para mi como para la gente en general, pues así poder luchar en futuras batallas con la ventaja que proporciona la experiencia.
Que la suerte nos acompañe!!

Oracle Wars © 2008. Template by Dicas Blogger.

TOPO