Archivos de la categoría Administración Sistemas

En esta categoría implementaré entradas relacionadas con sistemas en general independientemente de la plataforma en que se implemente. Puede ser tanto en Windows, Unix, Linux como Oracle, SQL Server, etc…

Cómo crear el usuario ORACLE necesario para monitorizar con NAGIOS

Para poder monitorizar con NAGIOS los parámetros de Oracle, es necesario crear un usuario llamado “nagios” dentro de la BBDD que queremos monitorizar. Dependiendo de la versión de Oracle que tengamos, tendremos que asignarle unos grants diferentes para que la monitorización se pueda realizar de manera adecuada.

Para versiones 9,10G y 11G:

CREATE USER nagios IDENTIFIED BY oradbmon; -- Poner el password que deseemos
  GRANT CREATE SESSION TO nagios;
  GRANT SELECT any dictionary TO nagios; -- Este no funciona en 8i
  GRANT SELECT ON V_$SYSSTAT TO nagios;
  GRANT SELECT ON V_$INSTANCE TO nagios;
  GRANT SELECT ON V_$LOG TO nagios;
  GRANT SELECT ON SYS.DBA_DATA_FILES TO nagios;
  GRANT SELECT ON SYS.DBA_FREE_SPACE TO nagios;

Para versiones 8i (8.1.7) poner además …

 GRANT SELECT ON sys.dba_tablespaces TO nagios;
 GRANT SELECT ON dba_temp_files TO nagios;
 GRANT SELECT ON sys.v_$Temp_extent_pool TO nagios;
 GRANT SELECT ON sys.v_$TEMP_SPACE_HEADER  TO nagios;
 GRANT SELECT ON sys.v_$session TO nagios;
 GRANT SELECT ON SYS.OBJAUTH$ TO nagios;
 GRANT SELECT ON SYS.OBJ$ TO nagios;
 GRANT SELECT ON SYS.USER$ to nagios;
 GRANT SELECT ON SYS.COL$ TO nagios;
 GRANT SELECT ON SYS.TABLE_PRIVILEGE_MAP TO nagios;

Hay que tener en cuenta que para versiones 8i el privilegio SELECT ANY DICTIONARY no está soportado, y por tanto, se deben conceder de manera individual sobre los objetos del diccionario. Asimismo, el privilegio SELECT ANY TABLE  no permite el acceso a objetos del diccionario, a menos que cambiemos el parámetro…
O7_DICTIONARY_ACCESSIBILITY  de FALSE a TRUE de la siguiente manera:

alter system set o7_dictionary_accessibility=TRUE scope=spfile;

Cómo saber si nuestro Windows es de 32 o 64 bits

Muchas veces es necesario saber si nuestro Windows o el Windows donde vamos a instalar el software de Oracle es de 32 o 64 bits. Lo necesitamos saber basicamente para la elección del CD a instalar. Si nos equivocamos e intentamos instalar un software Oracle de 32 bits en uno de 64 bits o alrevés, podemos encontrarnos con errores que nos puedan despistar y resulta que es porque nos hemos equivocado al seleccionar el CD. Por este motivo es importante, antes de ponerse a instalar nada, elegir correctamente el CD de 32 o 64 bits.

Para saber si nuestro servidor o PC cliente donde se va a instalar el software Oracle es de 32 o 64 bits tenemos que hacer:

Windows 8
Abre el menú Inicio de Windows 8 y elige Sistema. Se muestra una ventana. Arriba te indica la versión. Por la mitad, en la línea Tipo de sistema, aparece si el sistema operativo es de 32 o 64 bits.

Windows 7
Entra en el menú Inicio, haz clic con el botón derecho del ratón en Equipo y luego pincha en Propiedades. Se abrirá la ventana Sistema. Entre otras cosas te dice tu versión de Windows y de Service Pack y el número de bits.

Windows XP y Windows Vista
Esto lo podemos hacer de 2 maneras:

La primera ejecutándo desde el menú el sysdm para sacar las propiedades del sistema o bien accediendo a la misma pantalla mediante el ratón.

Primera opción:
1.    Entra en el menú Inicio y haz clic en Ejecutar (abajo, a la derecha).
2.    Escribe en la ventana sysdm.cpl y pulsa Enter o Aceptar.
3.    Pincha en la pestaña General.
Si tu Windows XP es de 64 bits deberás ver x64 justo después del nombre de la versión (Windows XP Professional x64 Edition Versión). Si no pone nada significa que es de 32 bits.

Segunda opción:

En el icono Mi PC, pulsar botón derecho y saldrá la pantalla siguiente de propiedades del sistema o también desde Inicio -> Panel de control -> Sistema y mantenimiento -> Sistema.

En este ejemplo, como no sale nada de x64 significa que es de 32 bits.

Si tu Windows XP es de 64 bits deberás ver x64 justo después del nombre de la versión (Windows XP Professional x64 Edition Versión). Si no pone nada significa que es de 32 bits.

NOTA:
En los CD´s originales de Oracle, si la versión es de 32 bits no suele tampoco poner nada. Sin embargo, si la versión es de 64 bits lo indica expresamente en el mismo CD al lado del nombre del producto.

OEM no arranca después de llenarse el filesystem que contiene el software ORACLE

Tal y como indica el título de la entrada de blog me he encontrado que después de llenarse al 100% el filesystem que contiene el software de Oracle, donde normalmente, por defecto se copian los datafiles de los tablespaces TEMP, REDO, SYSTEM, USERS, etc… el Oracle Enterprise Manager no me arranca.

Cuando intento acceder mediante el navegador a la url:

https://<IP_de_mi_servidor_oracle>:1158/em/console/logon/logon

Sale un error parecido o igual a:

404 Not Found

¿ Que ha sucedido ?

¿Porqué se ha llenado el filesystem?
Normalmente, por un crecimiento inesperado de cualquier tablespace definido como autoextensible automáticamente y que llene el disco. Esto suele suceder con los tablespaces UNDO y TEMP que si no los modificas después de la primera instalación del servidor Oracle se quedan configurados como autoextensibles.

Independientemente de cómo se hayan llenado el filesystem la solución es la siguiente:

Solución

He comprobado que cuando se llena el filesystem que contiene los binarios de Oracle, no sé explicar el motivo, pero los ficheros server.xml y emoms.properties se “truncan” y se quedan en el directorio donde residen, pero sorprendentemente sin contenido.

Estos ficheros se encuentran normalmente en las rutas:

$ORACLE_HOME/oc4j/j2ee/OC4J_DBConsole_<tu_servidor>/config/server.xml
$ORACLE_HOME/<tu_servidor>/sysman/config/emoms.properties

La solución, pasa por recuperar de un backup ambos ficheros y el problema se solucionará. Ya podrás volver a arrancar la consola de OEM. Te recomiendo entonces, tener un backup de esos mismos ficheros ubicados en los directorios anteriores.

Por ejemplo:

$ cd $ORACLE_HOME/oc4j/j2ee/OC4J_DBConsole_<tu_servidor>/config/server.xml
$ cp server.xml server.xml.backup
$ cd $ORACLE_HOME/<tu_servidor>/sysman/config/emoms.properties
$ cp emoms.properties emoms.properties.backup

Después al arrancar de nuevo la consola de OEM puede salir esto, pero al rato, en el próximo refresco volverá automáticamente a su estado normal.

Instalar Easysoft ODBC driver en sistemas HP-UX para conectar Oracle con SQL Server

Con el objeto de poder conectar Oracle con SQL Server, uno de los pasos necesarios es instalar el driver ODBC en el servidor donde está Oracle para conectarlo con SQL Server vía ODBC.

En este caso, el servidor donde estaba la BBDD Oracle instalada es un Unix de HP. Es decir, HP-UX versión 11.x. (Podemos saber nuestra versión ejecutando uname -a desde el prompt del sistema).

Podemos encontrar los drivers ODBC para Unix en www.unixodbc.org o bien en algún CD de Oracle que los proporcione. Normalmente, los drivers ODBC los encontramos en software de ORACLE Developer.

En esta entrada de blog se explica la instalación usando los descargados en la página anterior pero que los proporciona Easysoft. Se encuentran accediendo a www.unixodbc.org y pulsando en Drivers. Deben salir los enlaces a Easysoft. Sino, podemos ir directamente a la WEB www.easysoft.com.

Los drivers o “conductores” ODBC de Easysoft requieren de licencia, pero te los puedes descargar y solicitar una licencia de prueba de unos 14 días. Si ya has descargado alguna vez los drivers ODBC y necesitas instalarlos de nuevo en la misma máquina, es recomendable hacer una copia del fichero “licenses” que normalmente está en la ruta: /usr/local/easysoft/license. Para solicitar la licencia de prueba, previamente debes darte de alta en la Web de Easysoft y posteriormente solicitarla enviando un e-mail con la información que se proporciona en uno de los pasos de la instalación que veremos más adelante.

Para evitar quebraderos de cabeza posteriores a la instalación, tened en cuenta las siguientes consideraciones:

- Esta instalación esta basada en una instalación en la que se requería instalar los drivers ODBC para 32 bits, ya que los quería utilizar para configurar los servicios heterogéneos de Oracle.

- Los servicios heterogéneos de Oracle que usan HSODBC normalmente son de 32 bits a pesar de que el servidor Oracle sea de 64 bits. Es importante, saber esto, porque si instalamos la versión de 64 bits sólo nos funcionará en sistemas de 64 bits. Pero si lo hacemos de 32 bits, nos funcionará tanto en sistemas 32 bits como en 64 bits. Además,la aplicación o componente Oracle HSODBC suele ser 32 bits aunque sea distribuido en la versión del servidor Oracle de 64 bits.

-Este producto de Easysoft para cargar los datos a Oracle usa el manager del driver ODBC. Digamos que existe como un enlace entre HSODBC con unixODBC y es el manager el responsable del acceso definitivo al ODBC que permitirá la conexión a la Base de datos destino. Sería de esta manera …

SQL*Plus–>Oracle Client–>HSODBC instance–>UnixODBC–>ODBC driver–>Database

- Si ya tenemos una instalación previa en el servidor de drivers ODBC, el proceso de instalación conserva el contenido de los ficheros odbcinst.ini y odbc.ini, hecho que es de agradecer. Ambos ficheros, son los que almacenan los accesos a la base de datos destino, como son la IP del servidor destino, el nombre de la base de datos, el puerto, el usuario y la clave, etc…. Pero si es la primera vez que se realiza la instalación, el proceso mismo, genera ambos ficheros con un ejemplo que podemos adaptar a nuestras necesidades.

Sabiendo esto, podemos empezar con la instalación. He de comentar, que he realizado instalaciones tanto de 32 bits como de 64 bits y los pasos a seguir son los mismos.

Comenzamos …

En la siguiente pantalla vemos la página de descarga de los drivers. A pesar de que nuestro sistema operativo es HP-UX de 64 bits, tenemos que descargar el de 32 bits. Puede ser un tanto confusa la página, pero es que debe ser 32 bits por lo que he comentado antes de que HSODBC de Oracle suele ser una aplicación 32 bits.

En mi caso, como había tenido una instalación previa (de hecho la de 64 bits) que quería eliminar para poder instalar la de 32 bits. Lo que hice, fue guardarme una copia de la licencia y eliminar el directorio de la instalación previa. Si es la primera instalación este paso no hace falta hacerlo.

Accedo al servidor HP como root y ejecuto:

# cp /usr/local/easysodt/license/licenses /tmp

Ahora borro la antigua instalación:

# rm -rf /usr/local/easysoft

Antes de instalar, y una vez descargado el driver, yo lo hice en formato comprimido .tar. Hay que copiarlo en el servidor donde queremos instalarlo. Podemos usar cualquier programa de FTP para hacerlo si es que no tenemos el fichero .tar ya descargado en el mismo servidor dónde vamos a hacer la instalación. Pues teniendo en cuenta que ya tenemos o hemos copiado el fichero en el servidor seguimos haciendo ….

Entramos al directorio donde tengamos el fichero .tar y lo descomprimimos …

# tar -xvf odbc-sqlserver-1.5.2-hpux11-parisc1.tar

Ahora entramos al directorio que se ha creado y buscamos el fichero INSTALL.txt que explica como realizar la instalación.

Los pasos que se explican en mi caso son los que siguen …

Arrancamos la instalación
#./install
Escribiremos "yes" para aceptar la licencia

Realiza comprobaciones de que se tienen los comandos de S.O necesarios
para hacer la instalación 

Pulsaremos cualquier tecla

Realiza comprobaciones de paquetes necesarios para hacer la instalación Pulsaremos cualquier tecla

En esta pantalla nos propone realizar la instalación base en el directorio por defecto,
lo aceptaremos pulsando "Intro". Y en la siguiente pantalla, pulsaremos cualquier tecla.

Pulsaremos "n" y empezará el desempaquetamiento ...

Iremos pulsando cualquier tecla cada vez que lo solicite ...

En este caso, como tenía configurados los ficheros odbcinst.ini y odbc.ini de una instalación
previa, los detecta. Esto es una advertencia unicamente.

Pulsamos una tecla para continuar ...
Y en la siguiente pantalla, cuando nos solicite respuesta de la licencia pulsaremos "n"
 
Detectará automáticamente instancias SQL Server y propondrá acceder a ellas ...
En mi caso, como no quería acceder de momento, puse "n"

 Acaba la instalación correctamente si sale la pantalla siguiente:

Una vez finalizada la instalación es imprescindible configurar las variables de entorno para HP-UX. La variable LD_LIBRARY_PATH es la que configuramos para las aplicaciones de 64 bits y la SHLIB_PATH para la de 32 bits.

Ejemplo de configuración:

export LD_LIBRARY_PATH=$ORACLE_HOME/jdbc/lib:$ORACLE_HOME/lib:/usr/local/easysoft/sqlserver:/usr/local/easysoft/lib:/usr/local/easysoft/unixODBC/lib:/usr/local/easysoft/sqlserver/lib
export SHLIB_PATH=$ORACLE_HOME/jdbc/lib:$ORACLE_HOME/lib:/usr/local/easysoft/sqlserver:/usr/local/easysoft/lib:/usr/local/easysoft/unixODBC/lib:/usr/local/easysoft/sqlserver/lib

Ahora debemos realizar las comprobaciones pertinentes de que la instalación se ha hecho correctamente. La herramienta odbcinst pasándole determinados parámetros, nos informará de cómo está hecha la instalación.

Ejecuando ./odbcinst -j obtenemos la información de los drivers, su ubicación, ficheros de configuración etc….

odbcj pasándole el parámetro “?” nos mostrará todos los comandos posibles a utilizar.

Ejemplo:

$ ./odbcinst ?
odbcinst: Invalid Object
**********************************************
* unixODBC - odbcinst                        *
**********************************************
*                                            *
* Purpose:                                   *
*                                            *
*      An ODBC Installer and Uninstaller.    *
*      Updates system files, and             *
*      increases/decreases usage counts but  *
*      does not actually copy or remove any  *
*      files.                                *
*                                            *
* Syntax:                                    *
*                                            *
*      odbcinst Action Object Options        *
*                                            *
* Action:                                    *
*                                            *
*      -i         install                    *
*      -u         uninstall                  *
*      -q         query                      *
*      -j         print config info          *
*      -c         call SQLCreateDataSource   *
*      -m         call SQLManageDataSources  *
*      --version  version                    *
*                                            *
* Object:                                    *
*                                            *
*      -d driver                             *
*      -s data source                        *
*                                            *
* Options:                                   *
*                                            *
*      -f file name of template.ini follows  *
*         this (valid for -i)                *
*      -r get template.ini from stdin, not   *
*         a template file                    *
*      -n Driver or Data Source Name follows *
*      -v turn verbose off (no info, warning *
*         or error msgs)                     *
*      -l system dsn                         *
*      -h user dsn                           *
*                                            *
* Returns:                                   *
*                                            *
*      0   Success                           *
*     !0   Failed                            *
*                                            *
* Please visit;                              *
*                                            *
*      http://www.unixodbc.org               *
*      pharvey@codebydesign.com              *
**********************************************

Con comprobar lo siguiente tenemos suficiente … vamos a la ruta:

$ cd /usr/local/easysoft/unixODBC/bin

Ejecutamos …

En este ejemplo vemos que los ficheros de configuración donde pondremos la información de la conexión al servidor destino están en odbcinst.ini y odbc.ini. El fichero ODBCDataSources no existe cuando acabas la instalación, tampoco el fichero .odbc.ini de “USER DATA SOURCES”. Una solución es crear ambos con el contenido de odbc.ini.

Ahora faltaría comprobar que el ODBC se conecta al servidor destino. Para ello podemos ejecutar la utilidad isql proporcionada en la instalación y que se encuentra dentro de /usr/local/Easysoft/unixODBC/bin . Una vez que el controlador ODBC ha sido puesto en marcha, podemos hacer la parte de configuración de Oracle Heterogeneous o bien utilizar ya la conexión si la parte de Oracle se ha configurado anteriormente.

Ejemplo de comprobación del driver:

Teniendo en cuenta que en mi caso, ya estaba configurada la parte de Oracle HS (heterogeneous), que ya se han cargado las variables de entorno LD_LIBRARY_PATH y SHLIB_PATH, que además el servidor destino SQL Server tiene un administrador “sa” cuya clave es “as_clave” en el ejemplo y que la instancia HS de Oracle es MYSQLSERVERDSN.

 $ cd /usr/local/easysoft/unixODBC/bin
 $ ./isql -v MYSQLSERVERDSN sa as_clave

Esta ejecución debe dar un resultado como el que muestra la imagen siguiente.

Nos indican que falta una licencia válida. Pues para configurarla, o bien copiamos el contenido de la licencia que habíamos guardado anteriormente en /tmp si teníamos una instalación previa hecha. O bien solicitamos una nueva licencia. Para ello, mirar al final de esta entrada de blog “Cómo conseguir una licencia“.

Nos podemos encontrar con algún error de problemas de lectura de alguna librería al ejecutar la sentencia anterior. Estos errores los trato en otras entradas de Blog, pero normalmente se solucionan dando permisos “777″ inicialmente y probamos si esto funciona. Sino, revisar las otras entradas de blog para aplicar las soluciones que yo encontré.

$ cd /usr/local
$ chmod -R 777 easysoft

Cómo conseguir una licencia

Accedemos a la ruta:

$ cd /usr/local/easysoft/license
Ejecutamos ..
$ ./licshell

Saldrá esto y seleccionaremos la opción 2:

Please note that to obtain licenses automatically you need
to be connected to the Internet and allow outgoing access to
license.easysoft.com on port 8884
If this program cannot determine the IP address of license.easysoft.com
it will try 89.238.155.4
[0] Exit
[1] View existing licenses
[2] SQLServer ODBC Driver V1.5

Please choose the product you would like a license for by entering its
item number or enter one of the other options.

Option:

Rellenamos los datos poniendo el e-mail que hemos dado cuando nos dimos de alta en la Web de Easysoft para descargar el driver. Y el resultado, lo copiaremos dentro de un e-mail que enviaremos a autolicense@easysoft.com que nos devolverá una clave que copiaremos dentro del fichero licenses del directorio: /usr/local/easysoft/license/licenses. O bien, podemos utilizar la que contiene el fichero licenses del cual realizamos un backup en la ruta /tmp al principio de esta entrada de blog justo antes de hacer esta instalación.

Acceder como SYSDBA a SQLPLUS sin conocer el password

De entrada esta “pretensión” de querer entrar a sqlplus sin conocer el password del usuario “SYS” puede ser una pretensión un tanto ambiciosa, pero que como podréis comprobar es más necesario de lo habitual y no es tan difícil.

En ocasiones, si eres un DBA de esos a los que tu empresa te manda cada dos por tres a clientes diferentes donde han pasado diferentes DBA´s y te encuentras que cuando llegas al cliente, ni el mismo cliente conoce los passwords ni de SYS ni de SYSTEM. Pero almenos se tiene acceso al servidor con cuentas de usuario de sistema operativo, si es la de oracle, ya tenemos mucho ganado, sino con root nos bastaría, o incluso, simplemente con poder acceder a una cuenta de usuario que nos permita crear usuarios y asignarle el grupo que deseamos, ya tendríamos solucionado el problema de no conocer el password de SYS o SYSTEM.

Os pongo en situación:

No conocemos el password de SYS ni de SYSTEM. Pero tenemos que realizar tareas de administración.

Nos tenemos que plantear lo siguiente…

- ¿ Tenemos acceso al servidor con un usuario de sistema operativo ? ¿ cúal ?
- ¿ Tenemos acceso al servidor con el usuario de sistema operativo oracle ?
- ¿ Tenemos acceso al servidor con  el usuario root ?

Pues si tenemos acceso con “root” al sistema operativo es fácil. Si hacemos el “su” al usuario oracle ya podremos acceder al servidor de base de datos de dos maneras diferentes con perfil de DBA.

# su – oracle
$ whoami
oracle

– Ahora entramos a sqlplus: forma 1
$ sqlplus “/as sysdba”
$ show user
SQL> show user
USER is “SYS”
SQL>

– O  entramos a sqlplus: forma 2
$ sqlplus /nolog
$ show user
SQL> show user
USER is “”
SQL> connect /as sysdba
SQL> show user
USER is “SYS”

Si tenemos acceso con el usario “oracle”, pues simplemente ejecutar cualquiera de las formas anteriores del ejemplo.

Y sino tenemos acceso con “root” pero tenemos acceso con un usuario que tenga permisos para crear usuarios y cambiar el grupo. Lo que deberíamos hacer es crearnos un usuario con cualquier nombre y asignarlo al grupo “dba”, configuraríamos el .profile (.bash_profile) del usuario el entorno Oracle (Path, ORACLE_HOME, ORACLE_SID, etc…) y entraríamos posteriormente con ese usuario al S.O y luego a sqlplus como lo hemos hecho en cualquiera de los dos ejemplos anteriores.

Para hacer lo comentado anteriormente, primero crearemos el usuario:

# useradd usuario_dba -m -g dba
# passwd usuario_dba
Introduciremos el password.

Ahora configuraremos el entorno Oracle para este usuario. Para ello es necesario conocer algunas de las variables de entorno imprescindibles que tendremos en un “.profile” del usuario “oracle”. Este profile nos sirve de ejemplo y lo tendremos que adaptar al entorno que queremos administrar, es decir, cambiar el ORACLE_HOME y el ORACLE_SID  y adecuarlo al entorno que vamos a administrar.

Ejemplo de .bash_profile en Linux RedHat válido para el entorno Oracle:

#vi  .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH

ORACLE_HOME=/u/oracle/11.2.0/ORCL
export ORACLE_HOME

PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch
export PATH

ORACLE_SID=ORCL
export ORACLE_SID

LD_LIBRARY_PATH=/usr/lib64:$ORACLE_HOME/lib
export LD_LIBRARY_PATH

ORACLE_UNQNAME=ORCL
export ORACLE_UNQNAME

Las líneas anteriores adaptadas al servidor en concreto que queramos administrar serán las que deberemos añadir en nuestro “profile” del usuario que hayamos creado.

Una vez hecho esto, ya podemos salir y volver a entrar con el usuario para cargar el profile y ejecutar sqlplus como en los primeros ejemplos. Finalmente, comentar que si quisíeramos cambiar una vez conectados a sqlplus, por ejemplo, el password del usuario SYSTEM, lo podríamos hacer sin ningún problema ejecutando:

SQL> alter user SYSTEM identified by “<nuevo password>”;

¿ No es tan complicado verdad ?

SHLIB_PATH y LD_LIBRARY_PATH y su relación con el error ORA-12547: TNS:lost contact

Al intentar conectar a Oracle versión 8.1.7.0 en un entorno HP-UX me encontré con el siguiente error:

# sqlplus scott/tiger

SQL*Plus: Release 8.1.7.0.0 – Production on Mon May 19 14:47:42 2003
(c) Copyright 2000 Oracle Corporation.  All rights reserved.
/usr/lib/pa20_64/dld.sl: Unable to find library ‘libjox8.sl’.
ERROR:
ORA-12547: TNS:lost contact
Enter user-name:

 ¿ Que puede estar sucediendo ?

Basicamente es que Oracle no puede encontrar las librerias dinámicas compartidas. Por tanto, la solución parece, a priori, ser bastante sencilla. Y de hecho lo es.

Las librerias o bibliotecas compartidas son librerias que cargan los programas cuando se inician. Cuando una biblioteca compartida se instala correctamente, todos los programas que se inician automáticamente usan esta biblioteca compartida. Es más, en Linux estas bibliotecas se pueden actualizar, se pueden anular íncluso funciones específicas de una determinada biblioteca, y todo esto mientras los programas están en ejecución.

Para poder realizar estas tareas, se pueden configurar variables de entorno que nos permitan controlar estos procesos y normalmente se suelen usar para sustituir una biblioteca por una diferente para una ejecución particular, como por ejemplo un entorno ORACLE determinado.

Es aquí donde prestan protagonismo las variables de entorno que hago referencia en esta entrada de blog.

LD _LIBRARY_PATH y SHLIB_PATH es un conjunto de directorios separados por “:” en donde se especifica o fija la ruta donde primero se tiene que buscar para encontrar las librerias necesarias para ejecutar cualquier programa, como por ejemplo sqlplus.

¿ Pero que diferencia hay o porqué se usa una u otra ?

LD_LIBRARY_PATH funciona en muchos sistemas Unix como Sun  y Linux, SHLIB_PATH sólo funciona en HP-UX y su equivalencia en AIX es la variable de entorno LIBPATH con la misma sintaxis, lista separada por “:”.

Lo que quiere decir que para sistemas HP-UX usaremos las dos variables de entorno (SHLIB_PATH y LD_LIBRARY_PATH) para Linux o Sun Solaris sólo LD_LIBRARY_PATH y para AIX LIBPATH.

Ahora, volvamos al error que nos ha dado ORACLE y vamos a solucionarlo ….

Simplemente editaremos el fichero donde tengamos definidas las variables del entorno Oracle (normalmente el .profile del usuario Oracle) y añadiremos las rutas que nos muestra el error Oracle (/usr/lib) a las variables de entorno que toque en función del sistema Unix/Linux en el que estemos trabajando. En mi caso era HP-UX y tuve que configurar el entorno como sigue:

export ORACLE_SID=ORCL
export ORACLE_HOME=/u/oracle
export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/lib:$ORACLE_HOME/lib32
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/lib32:/usr/lib
export SHLIB_PATH=/usr/lib:/psg_pr103/oracle/lib:/psg_pr103/oracle/lib64

Ahora ya podríamos ejecutar sqlplus sin problemas.

Cómo acceder remotamente a un servidor Oracle para su administración

En el siguiente artículo explicaré alguno de los métodos más utilizados para acceder a servidores, ya sean Windows, Linux o Unix para administrar el servidor Oracle que tienen instalado en su sistema.

Alguno de los métodos más extendidos para acceder a máquinas remotas son SSH y VNC

Según la WIKIPEDIA se define:

SSH (Secure SHell, en español: intérprete de órdenes segura) es el nombre de un protocolo y del programa que lo implementa, y sirve para acceder a máquinas remotas a través de una red. Permite manejar por completo la computadora mediante un intérprete de comandos, y también puede redirigir el tráfico de X para poder ejecutar programas gráficos si tenemos un Servidor X (en sistemas Unix y Windows) corriendo.

Además de la conexión a otros dispositivos, SSH nos permite copiar datos de forma segura (tanto ficheros sueltos como simular sesiones FTP cifradas), gestionar claves RSA para no escribir claves al conectar a los dispositivos y pasar los datos de cualquier otra aplicación por un canal seguro tunelizado mediante SSH.

VNC son las siglas en inglés de Virtual Network Computing (Computación Virtual en Red). Es un programa de software libre basado en una estructura cliente-servidor el cual permite tomar el control del ordenador servidor remotamente a través de un ordenador cliente. También llamado software de escritorio remoto. VNC no impone restricciones en el sistema operativo del ordenador servidor con respecto al del cliente: es posible compartir la pantalla de una máquina con cualquier sistema operativo que soporte VNC conectándose desde otro ordenador o dispositivo que disponga de un cliente VNC portado.

Bueno, hasta aquí las definiciones teoricas ….

Vamos a ver ahora cómo podemos acceder desde nuestro PC, (imaginemos que tenemos instalado un Windows XP) a los servidores donde se encuentran los servidores de base de datos Oracle instalados para poder realizar las tareas de administación que precisemos cómo si estuviésemos conectados directamente en el servidor.

Para ello, existen las herramientas 1.-putty, 2.-Xming y 3.-Escritorio remoto de Windows por ejemplo, que nos van a permitir hacerlo. Evidentemente, existen muchas más herramientas en el mercado. Pero en este artículo explicaré estas en concreto porque suelen ser unas de las más utilizadas.

1.-Xming es una implementación de software libre, portátil del sistema de ventanas X para sistemas operativos Microsoft Windows XP, 2003, Vista y seven. El servidor X Xming está basado en el servidor X.Org, cruzado en Linux con el compilador MinGW y Pthreads-Win32.

Xming está disponible con soporte Mesa 3D, soporta una gran variedad de lenguajes y al contrario que Cygwin/X, no requiere de bibliotecas Cygwin.

Xming se usa en implementaciones de Secure Shell (SSH) para asegurar sesiones X11 en otras computadoras. Soporta PuTTY y ssh.exe, y tiene una versión de PuTTY’s plink.exe.

2.- PuTTY es una implementación libre de Telnet y SSH para plataformas Windows y Unix, junto con un emulador de terminal xterm. Está escrito y mantenido principalmente por Simon Tatham. Es decir, es un cliente ssh que nos da acceso a una consola dentro del servidor al que accedemos.

3.-Escritorio remoto es una característica de Windows 2000 y superiores. Esta característica permite controlar de forma remota un equipo con Windows XP Professional desde otro equipo que ejecuta Windows XP Profesional o una versión anterior de Windows.

Bueno, con todo lo explicado hasta ahora podemos deducir lo siguiente:

- Si quiero conectarme con mi PC con Windows XP a un servidor Windows que soporte Escritorio remoto, lo haré usando “escritorio remoto” de Windows.

- Si quiero conectarme con mi PC con Windows XP a un servidor Unix/Linux y a su vez poder ejecutar algunas aplicaciones gráficas, lo haré ejecutándo una combinación de Xming y Putty. A diferencia de aplicaciones como VNC que nos permite tomar el control de un equipo remoto, la combinación Xming+Putty nos permite ejecutar aplicaciones individuales en el escritorio de nuestro PC con Windows instalado de una manera muy sencilla.

Seguidamente se explica cómo acceder usando dicha combinación:

Pasos para configurar el reenvío de X11 en Putty con Xming

(1) Descargar e instalar Putty en el PC

(2) Descargar e instalar Xming en el PC

(3) Iniciar el servidor Xming

(4) Guardar el servidor al que desea conectarse en Putty en las sesiones guardadas

(5) Cargue el servidor al que desea conectarse con Putty (Tecla Load)

(6) En el panel izquierdo categoría, haga clic en conexiones SSH y luego X11 entonces.

Marcar “Permitir el reenvío X11″  (Enable X11 forwaeding) y puedes escribir en el checkbox “X display location” localhost: 0

Nota: dejándolo en blanco también debería funcionar.

(7) En el panel izquierdo “categoría” ir a las sesiones (Session) principales y seleccione la que queremos guardar.

(8) Pulse el botón Guardar

(9) Establecer variable de entorno siguiente en el servidor

export DISPLAY = localhost: 10.0

O no hacer esta acción si ya está definida por defecto.

Pasos para realizar la conexión al servidor remoto donde está configurado el servidor de base de datos Oracle

 Tened en cuenta que para conectarnos al servidor remoto primero iniciaremos Xming (debemos ver un icono de X cerca del reloj en la barra de tareas). Sino lo vemos ejecutaremos el programa desde el menú inicio –> Xming –> xming

Luego iniciamos PuTTY, y nos conectamos usando el servidor que habíamos guardado previamente con la casilla habilitada “enable X11 forwarding”.

 Ya podemos ejecutar aplicaciones gráficas de Linux en nuestro Windows XP.

Para comprobar que funciona, podemos conectarnos al servidor y ejecutar el reloj del  entorno gráfico:

$ xclock

Debería aparecer este reloj digital en una ventanita como el de la  imagen que indica que nuestra configuración Xming+Putty está adecuadamente configurada.

Si esto falla mirar este artículo para solucionar el error.