Oracle 11g | Fatal NI connect error 12537, connecting to

TCP state diagram
TCP state diagram (Photo credit: Wikipedia)

Hoy vamos a resolver un problema que le ocurrió a un colega del viejo mundo.

Fatal NI connect error 12537, connecting to

Este error aparecía en el alert log cuando finalizaba el Switchover.

Cabe aclarar que no es un problema de Dataguard Broker, y asumiendo que así es debemos modificar o agregar parámetros en nuestras configuraciones de listener y sqlnet.

Veamos las configuraciones como se encontraban:

Seguir leyendo «Oracle 11g | Fatal NI connect error 12537, connecting to»

Oracle RAC | PRKP-1024 : The service ha_gsqs is still running when removing a service

Español: estructura de base de datos de Oracle

PRKP-1024 : The service ha_gsqs is still running when removing a service

En un escenario donde tenemos bases de datos 10gR2 , 11gR1 y 11gR2 me toco hacer revisiones de alta disponibilidad.

Luego de ello se tomo la determinación que algunas bases serian removidas y transportadas a otros servidores.

Los servidores antiguos de bases de datos serian reutilizados para soportar aplicaciones BI.

Al momento de quitar la primera base clusterizada (10.2.0.4) y sus servicios nos encontramos con el siguiente error:

PRKP-1024 : The service OSSER02 is still running.

Veamos que ocurrió paso a paso… Seguir leyendo «Oracle RAC | PRKP-1024 : The service ha_gsqs is still running when removing a service»

Bash scripts | Variables de Entorno de Instancias en RAC

Cuando trabajamos en ambientes Clusterizados utilizamos variables de entorno que cambian sus nombres de instancia según el nodo al que nos conectamos . ( En detalle lo que cambia es la variable $ORACLE_SID. ) 

Por ello desarrolle un script para no tener que andar modificando manualmente en cada uno de los nodos y los actualizo por medio de scp, ya que mi usuario tiene llaves publicas y privadas.

Aqui les dejo el modelo.

En mi caso particular yo lo hice para un cluster de cinco nodos.

Seguir leyendo «Bash scripts | Variables de Entorno de Instancias en RAC»

Linux Services – Oracle Database And Grid Control Service START/STOP

Oracle Databases
Image via Wikipedia

Cuando trabajamos en la automatización de procesos un punto importante en las single instances es configurar un servicio del sistema operativo para poder levantarlas.

Que es un servicio ?

Un servicio son scripts automatizados para realizar start/down de programas o «servicios» (Valga la redundancia) que son lanzados cuando el kernel se carga en memoria al inicializar el Sistema Operativo y ejecuta cada uno de ellos según en el run level que se encuentren.

Como es la estructura de los servicios ?

Veamos paso por paso.

Cuando se inicializa el server, el kernel se carga en memoria como el proceso padre y dispara subprocesos ejecutando en orden lo que se encuentra en los diferentes run levels.

Los subprocesos son los scripts que se encuentran en el /etc/rc.d

Ahi podemos encontrar los subdirectorios (o run levels ) rc0.d, rc1.d … hasta llegar al rc6.d

[root@lxcontrol10 rc.d]# ls -l
total 100
drwxr-xr-x  2 root root  4096 Jul 23 19:50 init.d
-rwxr-xr-x  1 root root  2352 Jan 23  2009 rc
drwxr-xr-x  2 root root  4096 Feb 10  2010 rc0.d
drwxr-xr-x  2 root root  4096 Feb 10  2010 rc1.d
drwxr-xr-x  2 root root  4096 Jul 23 19:50 rc2.d
drwxr-xr-x  2 root root  4096 Jul 23 19:50 rc3.d
drwxr-xr-x  2 root root  4096 Feb 10  2010 rc4.d
drwxr-xr-x  2 root root  4096 Jul 23 19:50 rc5.d
drwxr-xr-x  2 root root  4096 Feb 10  2010 rc6.d
-rwxr-xr-x  1 root root   289 Aug  5 12:20 rc.local
-rwxr-xr-x  1 root root 28059 Jan 23  2009 rc.sysinit

Seguir leyendo «Linux Services – Oracle Database And Grid Control Service START/STOP»

Moving control file from file system to ASM system

The logo of Oracle Corporation
Image via Wikipedia

Como mover un controlfile de filesystem hacia ASM

Tuve como consultor las tareas de normalizar politicas, standares y otros elementos de seguridad.
La semana pasada, auditando , me tope con una base que estaba en ASM pero que el controlfile se encontraba en filesystem.
De ello es que acerco esta experiencia ya que el DBA que se econtraba no había trabajado nunca con la tecnologia ASM y al levantar la base despues de la instalacion por medio de scripts dio por sentado que esto estaba funcionando sin problemas.

Primero busque la ubicacion del controlfile y comence con mi tarea de migracion de filesytem para ASM.

SQL> sho parameter control

NAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
control_file_record_keep_time	     integer	 7
control_files			     string	 /u01/app/oracle/product/10.2.0
						 /db_ASDEF/dbs/cntrlASDEF.dbf

Seguir leyendo «Moving control file from file system to ASM system»

Spfile errors – ORA-07446: sdnfy: bad value » for parameter

Trabajando en la restauración de un nuevo ambiente el cual sufría una modificación de parámetros de la base para una migración, me encontre con el siguiente error: ORA-07446: sdnfy : bad value » for parameter.

SQL> startup nomount pfile='/u01/app/oracle/product/10.2.0/db_MANUPRO/dbs/initMANUPRO.ora.RES';
ORA-00444: background process "MMAN" failed while starting
ORA-07446: sdnfy: bad value '' for parameter .

Entonces abro el nuevo archivo pfile que quería utlizar y me pongo a revisar cada uno de los parámetros.

Que encontre ? Seguir leyendo «Spfile errors – ORA-07446: sdnfy: bad value » for parameter»

Command srvctl without SUDO – CRS-0254: authorization failure

Siguiendo desde un poco con el tema de seguridad a nivel usuarios de OS, por politica tambien puede ocurrir que no podamos hacer sudo a comandos de administración impersonandonos en el usuario oracle.

Cuando trabajamos en RAC la cosa se pone un poco mas dificil, ya que debemos utilizar comandos de cluster que suben y bajan instancias , entre otras tareas.

Vamos a trabajar en nuestro ejemplo con el comando srvctl que es el más familiar, por lo que venimos posteando y por que es el mismo concepto para el resto de los comandos que precisamos.

Si quisieramos ejecutar comandos de oracle con nuestro usuario ( en este ejemplo useros ) deberiamos:

  • Verificar que estemos en el grupo oinstall para ejecucion de algunos comandos que no impliquen logueranos a la base.
  • Verificar que estemos en el grupo dba en el caso que nuestro usuario se pueda loguear a la base con privilegios dba.
  • Verificar que tengamos algun script que exporte las variables de entorno , para poder ejecutar estos comandos.

Ahora que verificamos estos pasos, estamos en condiciones de hacer :

sqlplus /
lsnrctl
dgmgrl
dbca
netca
emca
emctl
rman /
srvctl

Y todos los comandos que se encuentran en el $ORACLE_HOME/bin

Ahora bien, como dijimos antes algunas cosas se ponen dificiles por que cuando voy a ejecutar el comando srvctl sufro el error:

 CRS-0254:  authorization failure.

Como ? no habiamos chequeado los permisos y grupos ? Seguir leyendo «Command srvctl without SUDO – CRS-0254: authorization failure»