Archivos mensuales: septiembre 2013

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.