lunes, 4 de octubre de 2010

ERROR EJECUTANDO SYSREV

ERROR EJECUTANDO SYSREV

Hola, esto es una problemilla simple y muy tonto que es cuando SYSRESV y aparece :

oracle@mybd:/home/oracle $ sysresv

/usr/lib/hpux64/dld.so: Unable to find library 'libclntsh.so.10.1'.

Killed


 

Y se arregla exportando las variables de entorno de las librerías de Oracle, por ejemplo para HP-UX viene a ser SHLIB_PATH, o en Linux LIBRARY_PATH con $ORACLE_HOME/lib, por ejemplo:

oracle@mybd:/home/oracle $ export SHLIB_PATH=$ORACLE_HOME/lib

oracle@mybd:/home/oracle $ sysresv


 

IPC Resources for ORACLE_SID "MYDB" :

Shared Memory:

ID KEY

21 0x7cdca070

Semaphores:

ID KEY

360486 0xe36a4220

Oracle Instance alive for sid " MYDB "

oracle@mybd:/home/oracle $


 

Particularmente uso SYSRESV para ver los "cachos" de memoria compartida de la que hace uso la SGA, y también de los semáforos. Otra opción es usa IPCS, pero este comando no te muestra el nombre de la instancia, y si tú maquina tiene más de una instancia, no lo sabes que es para quien. Con SYSRESV solo tienes que exportar el ORACLE_SID y te da la dirección de la memoria compartida y los semáforos de esa instancia solamente.

Si un SHUTDOWN ABORT no elimina la memoria compartida y tienes muchas instancias arriba, es otra opción de eliminar ese cacho de memoria.

Es BASTANTE improbable que falle un "SHUTDOWN ABORT", o que la maquina quede con cacho de memoria compartida con el nombre de la instancia, y que no desees hacer un ipcrm, y no sabes cual instancia es y no puedas bajar el resto de instancias, sino que solamente esa es la que es necesaria bajar. Pero si todas estas desgracias en cadena suceden una opción es SYSRESV.