<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Administración de ORACLE en Español &#187; hs</title>
	<atom:link href="http://colacios.es/blog/WordPress3/tag/hs/feed/" rel="self" type="application/rss+xml" />
	<link>http://colacios.es/blog/WordPress3</link>
	<description>Administración de Base de datos ORACLE en español</description>
	<lastBuildDate>Tue, 11 Mar 2014 12:56:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Configurar los servicios Heterogéneos de ORACLE para acceder a SQL SERVER</title>
		<link>http://colacios.es/blog/WordPress3/configurar-los-servicios-heterogeneos-de-oracle-para-acceder-a-sql-server/</link>
		<comments>http://colacios.es/blog/WordPress3/configurar-los-servicios-heterogeneos-de-oracle-para-acceder-a-sql-server/#comments</comments>
		<pubDate>Mon, 07 Oct 2013 11:28:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Administración Oracle]]></category>
		<category><![CDATA[Can't open lib '/usr/local/easysoft/sqlserver/lib/libessqlsrv.sl' : can't open the module]]></category>
		<category><![CDATA[Cannot connect to shareable /usr/local/easysoft/sqlserver/lib/libessqlsrv.sl]]></category>
		<category><![CDATA[Could not SQLConnect]]></category>
		<category><![CDATA[FIND_IMAGE_SYMBOL]]></category>
		<category><![CDATA[heterogéneos]]></category>
		<category><![CDATA[hs]]></category>
		<category><![CDATA[isql]]></category>
		<category><![CDATA[LD_LIBRARY_PATH]]></category>
		<category><![CDATA[ODBC]]></category>
		<category><![CDATA[ORA-02063]]></category>
		<category><![CDATA[ORA-28500]]></category>
		<category><![CDATA[SHLIB_PATH]]></category>
		<category><![CDATA[Unable to find library 'libodbcinst.sl.1']]></category>

		<guid isPermaLink="false">http://colacios.es/blog/WordPress3/?p=531</guid>
		<description><![CDATA[El objetivo de esta entrada de blog es explicar cómo configurar Oracle para poder acceder a bases de datos SQL Server como si estuviésemos en el mismo Oracle. La idea parece fabulosa y de hecho lo es. Porque con lo &#8230; <a href="http://colacios.es/blog/WordPress3/configurar-los-servicios-heterogeneos-de-oracle-para-acceder-a-sql-server/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">El objetivo de esta entrada de blog es explicar cómo configurar Oracle para poder acceder a bases de datos SQL Server como si estuviésemos en el mismo Oracle. La idea parece fabulosa y de hecho lo es. Porque con lo que explicaré seguidamente, podrás conectar cualquier Base de datos Oracle 8.x o superior a SQL Server 7.0, SQL Server 2000, SQL Server 2005, SQL Server 2008, SQL Server 2012 y SQL Server Express.</p>
<p style="text-align: justify;">Servicios heterogéneos de Oracle es un componente integrado en el servidor de base de datos Oracle. Permite el acceso SQL transparente desde un cliente de Oracle para los sistemas que no son de Oracle como si el sistema no Oracle fuera una base de datos Oracle . En este ejemplo vamos a utilizar el agente de Servicios heterogéneo ODBC (HSODBC) con productos Easysoft, esta funcionalidad puede ser extendida en plataformas que no sean Windows para incluir cualquier base de datos compatible con ODBC o JDBC.</p>
<p style="text-align: justify;">Es muy importante saber que HSODBC es normalmente una aplicación de 32 bits incluso cuando se distribuye con una versión de 64 bits de Oracle. Es necesario utilizar el HSODBC 32 bits con un controlador ODBC Easysoft de 32 bits. Para las plataformas de 64 bits, seleccionar también la versión de 32 bits del controlador, incluso cuando haya una versión de 64 bits disponible, ya que los controladores de 32 bits seguirán funcionando correctamente en una plataforma de 64 bits.</p>
<p style="text-align: justify;">Para comprobar si tenemos una versión de 32 bits o 64 bits de HSODBC, en la máquina de Oracle, ejecutaremos:</p>
<pre style="text-align: justify;"><strong> $ORACLE_HOME/bin/hsodbc</strong></pre>
<p style="text-align: justify;">Si la salida del comando contiene ELF-Class64 (o algo similar, como ELF-64 o ELF 64-bit), tenemos un HSODBC 64 bits. De lo contrario, tenemos una versión de 32 bits.</p>
<p style="text-align: justify;">Otra manera de saber si un fichero es de 32 o 64 bits es mediante el uso del comando UNIX &#8220;file&#8221;, se puede determinar relativamente fiable si el programa utilizado y la biblioteca existen en 32 bits o en forma de 64 bits. Ejemplo de uso:</p>
<p style="text-align: justify;"><em>&lt;programa&gt; archivo</em><br />
<em> &lt;biblioteca&gt; archivo</em></p>
<p style="text-align: justify;">Si la línea de resultados contiene un &#8217;64 &#8216; , el archivo existe en la versión de 64 -bit . De lo contrario , se puede asumir que se trata de la versión de 32 -bit .</p>
<p style="text-align: justify;">Si se determina que la inconsistencia entre <em>&lt;programa&gt;</em> y <em>&lt;biblioteca&gt;</em> llamando el comando &#8216;file&#8217; , hay que  corregir la incompatibilidad ajustando las variables de entorno <strong>SHLIB_PATH</strong> (HP-UX) en nuestro ejemplo, LIBPATH (en sistemas AIX) y LD_LIBRARY_PATH en otras variantes de Unix.</p>
<p style="text-align: justify;">Ejemplo de ejecución de &#8220;file&#8221; que nos muestra que es de 32 bits:</p>
<pre style="text-align: justify;"><strong>$ file /usr/local/easysoft/sqlserver/lib/libessqlsrv.sl</strong>
/usr/local/easysoft/sqlserver/lib/libessqlsrv.sl: PA-RISC1.1 shared library -not stripped</pre>
<p style="text-align: justify;">Ejemplo de ejecución de &#8220;file&#8221; que nos muestra que es de 64 bits:</p>
<pre style="text-align: justify;"><strong>$ file /usr/local/easysoft/sqlserver/lib/libessqlsrv.sl</strong>
/usr/local/easysoft/sqlserver/lib/libessqlsrv.sl: <strong>ELF-64</strong> shared object file - PA-RISC 2.0 (LP64) Si <strong>$ORACLE_HOME/bin/hsodbc</strong> no está presente, debermos instalarlo para poder seguir con el proceso de configuración de esta entrada de blog.</pre>
<p style="text-align: justify;">En referencia al driver ODBC que vamos a utilizar en la parte Unix (donde tengo instalado el servidor Oracle) puedes ampliar la información en:</p>
<p style="text-align: justify;"><a title="Particularidades Driver ODBC" href="http://www.easysoft.com/products/data_access/odbc-sql-server-driver/index.html" target="_blank">http://www.easysoft.com/products/data_access/odbc-sql-server-driver/index.html</a></p>
<p style="text-align: justify;">En este ejemplo conectaremos un <strong>Oracle 8.1.7.4</strong>  instalado en un <strong>Unix HP-UX 11.11</strong> a un <strong>SQL Server 2005</strong>.</p>
<p style="text-align: justify;">Para llevar la tarea a cabo. Se realizarán los siguientes pasos:</p>
<p style="text-align: justify;"><span style="text-decoration: underline;"><strong>En el Servidor &#8220;destino&#8221; SQL SERVER</strong></span><br />
1.- Definir un nombre de origen de datos (DSN) para SQL Server.</p>
<p style="text-align: justify;"><span style="text-decoration: underline;"><strong>En el servidor &#8220;Orígen&#8221; por la parte de Oracle</strong></span><br />
2.- Crear un fichero de inicialización de los servicios heterogéneos.<br />
3.- Crear un nuevo listener dentro del fichero listener.ora.<br />
4.- Añadir una nueva entrada en el fichero tnsnames.ora.<br />
5.- Crear un Database Link en Oracle.</p>
<p style="text-align: justify;"><span style="color: #000000;"><strong><span style="text-decoration: underline;">En el servidor &#8220;Orígen&#8221;  por la parte de Unix</span></strong></span><br />
6.- <a title="Instalación del driver ODBC de Easysoft para Unix" href="http://colacios.es/blog/WordPress3/instalar-easysoft-odbc-driver-en-sistemas-hp-ux-para-conectar-oracle-con-sql-server/" target="_blank">Instalar</a>/configurar el driver ODBC en el sistema Unix donde reside el servidor Oracle.</p>
<p style="text-align: justify;"><strong><span style="text-decoration: underline;">7.- Posibles errores durante la configuración</span></strong></p>
<p style="text-align: justify;"><span style="text-decoration: underline;"><strong>8.- Juego de pruebas de comprobación de correcta instalación</strong></span></p>
<p style="text-align: justify;"><span style="text-decoration: underline;"><strong>En el Servidor destino SQL SERVER</strong></span></p>
<p style="text-align: justify;"><strong>1.- Definir un nombre de origen de datos (DSN) para SQL Server.</strong></p>
<p style="text-align: justify;">En primer lugar accederemos como administradores al servidor destino SQL Server. Y crearemos el ODBC de la siguiente manera:</p>
<p style="text-align: justify;">En versiones más antiguas &#8230;. Desde el panel de control &#8230;.</p>
<p style="text-align: justify;"><a href="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/1w_odbc.jpg"><img class="aligncenter size-full wp-image-541" title="1w_odbc" src="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/1w_odbc.jpg" alt="" width="493" height="446" /></a>En versiones posteriores sería desde <em>menú inicio &#8211;&gt; Herramientas administrativas &#8211;&gt; Orígenes de datos ODBC</em></p>
<p style="text-align: justify;"><a href="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/pant_odbc_win.jpg"><img class="aligncenter size-full wp-image-539" title="pant_odbc_win" src="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/pant_odbc_win.jpg" alt="" width="908" height="533" /></a>Importante: Seleccionar la pestaña &#8220;SystemDSN&#8221; y pulsar doble click o &#8220;Add&#8221;</p>
<p style="text-align: justify;"><a href="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/2w_odbc.jpg"><img class="aligncenter size-full wp-image-542" title="2w_odbc" src="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/2w_odbc.jpg" alt="" width="459" height="377" /></a><span id="result_box" lang="es"><span class="hps">En la siguiente pantalla seleccionaremos</span><span class="hps"> el</span> <span class="hps">controlador (driver) de SQL Server</span> <span class="hps">ya que esta será</span> <span class="hps">una conexión a</span> <span class="hps">SQL</span> <span class="hps">Server.</span> Heremos<span class="hps"> clic en Finalizar</span> <span class="hps">para continuar con</span> <span class="hps">la definición del origen</span> <span class="hps">de datos.</span></span></p>
<p style="text-align: justify;"><a href="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/3w_odbc.jpg"><img class="aligncenter size-full wp-image-543" title="3w_odbc" src="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/3w_odbc.jpg" alt="" width="468" height="346" /></a>Escribir un nombre que haga referencia a esta fuente de datos ODBC. He elegido <strong>MYSQLSERVERDSN</strong> por simplificar el entendimiento, pero debe ser descriptivo de la base de datos que conecte dentro de SQL Server. También puede describir el origen de datos en la forma que desee. Como en mi caso se conecta en local dejo Server &#8220;local&#8221;. Hacer click en Siguiente &#8220;Next&#8221; para continuar (no en finish).</p>
<p style="text-align: justify;"><a href="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/4w_odbc.jpg"><img class="aligncenter size-full wp-image-546" title="4w_odbc" src="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/4w_odbc.jpg" alt="" width="510" height="355" /></a>Seleccionaremos autentificación mediante Windows si tenemos usuario de red. En mi caso, tenía el usuario y clave del administrador de Windows.</p>
<p style="text-align: justify;"><a href="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/5w_odbc.jpg"><img class="aligncenter size-full wp-image-547" title="5w_odbc" src="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/5w_odbc.jpg" alt="" width="510" height="355" /></a><span id="result_box" lang="es"><span class="hps">En general</span><span>, en la siguiente ventana</span> <span class="hps">se rellena con</span> <span class="hps">la base de datos</span> <span class="hps">de SQL Server predeterminada</span> <span class="hps">de</span> <span class="hps">&#8220;maestro&#8221;.</span> <span class="hps">Haga clic en la</span> <span class="hps">casilla de verificación para</span> <span class="hps">cambiar la</span> <span class="hps">base de datos predeterminada</span> y selecciona la Base de datos a usar en la<span class="hps"> conexión</span> <span class="hps">ODBC</span>. En mi ejemplo, la base de datos de SQL SERVER a la que nos vamos a conectar será &#8220;<strong>bbddsqlserver</strong>&#8221; y el usuario administrador será &#8220;<strong>sa</strong>&#8221; y clave &#8220;<strong>sa_clave</strong>&#8220;.</span></p>
<p style="text-align: justify;"><span id="result_box" lang="es"><span id="result_box" lang="es">Hacer click en Siguiente</span> <span class="hps">para continuar.</span></span></p>
<p style="text-align: justify;"><a href="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/6w_odbc.jpg"><img class="aligncenter size-full wp-image-548" title="6w_odbc" src="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/6w_odbc.jpg" alt="" width="510" height="355" /></a>En la siguiente pantalla pulsar &#8220;Finish&#8221;&#8230;.</p>
<p style="text-align: justify;"><a href="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/7w_odbc.jpg"><img class="aligncenter size-full wp-image-550" title="7w_odbc" src="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/7w_odbc.jpg" alt="" width="510" height="355" /></a>Aperecerá una<span id="result_box" lang="es"><span class="hps"> ventana</span> con la información que hemos configurado <span class="hps">para que comprobemos</span> <span class="hps">los ajustes que hemos</span> <span class="hps">configurado para el</span> <span class="hps">origen de datos.</span> <span class="hps">Haremos click en</span></span><span id="result_box" lang="es"><span class="hps"> &#8220;Probar origen de datos</span>&#8221; <span class="hps">para validar su</span> <span class="hps">definición</span><span>. Y si todo ha ido correctamente saldrá una pantalla como la siguiente:</span></span></p>
<p style="text-align: justify;"><span id="result_box" lang="es"><span><a href="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/8w_odbc.jpg"><img class="aligncenter size-full wp-image-552" title="8w_odbc" src="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/8w_odbc.jpg" alt="" width="369" height="379" /></a></span></span></p>
<p style="text-align: justify;">Lo instalado debe aparecer como un DSN de sistema válido como se ve en la siguiente pantalla. Si en un futuro se desea modificar algo, basta con editarlo pulsando en &#8220;Configure&#8221; pero tendremos que volver a borrar y crear el dbLink en la parte de Oracle para activar de nuevo las modificaciones realizadas en el ODBC.</p>
<p style="text-align: justify;"><a href="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/9w_odbc.jpg"><img class="aligncenter size-full wp-image-553" title="9w_odbc" src="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/9w_odbc.jpg" alt="" width="461" height="379" /></a>Hacer click en &#8220;Ok&#8221; para salir del administrador de la DSN. Ya tenemos la parte de Windows realizada.</p>
<p style="text-align: justify;">Ahora pasaremos a configurar la parte de Oracle &#8230;.</p>
<p style="text-align: justify;"><span id="result_box" lang="es"><span><strong>En el servidor &#8220;Orígen&#8221; por la parte de Oracle</strong><br />
2.- Crear un fichero de inicialización de los servicios heterogéneos.</span></span></p>
<p style="text-align: justify;">Dentro del directorio $ORACLE_HOME/hs/admin Oracle tiene unos ficheros init de ejemplo que usaremos para configurar el nuestro.  Sino existe el directorio es porque Oracle Servicios heterogéneos no está instalado y se tendrá que instalar. (Estará en el CD de Oracle Enterprise Edition probablemente). En mi caso, como si está instalado, lo que haremos será copiar el fichero de ejemplo con otro nombre en el mismo directorio, luego lo editaremos con la información de mi configuración:</p>
<p style="text-align: justify;">Se hace así &#8230;</p>
<pre style="text-align: justify;">$ cd $ORACLE_HOME/hs/admin
$ cp inithsodbc.ora initMYSQLSERVERDSN.ora</pre>
<p style="text-align: justify;">Este es el contenido del fichero de muestra:</p>
<pre style="text-align: justify;"># This is a sample agent init file that contains the HS parameters that are
# needed for an ODBC Agent. 

#
# HS init parameters
#
HS_FDS_CONNECT_INFO = &lt;odbc data_source_name&gt;
HS_FDS_TRACE_LEVEL = &lt;trace_level&gt;
HS_FDS_TRACE_FILE_NAME = &lt;log file name&gt;
HS_FDS_SHAREABLE_NAME = &lt;full path name of odbc driver manager or driver&gt;

#
# ODBC specific environment variables
#
set ODBCINI=&lt;full path name of the odbc initilization file&gt;

#
# Environment variables required for the non-Oracle system
#
set &lt;envvar&gt;=&lt;value&gt;</pre>
<p style="text-align: justify;">Este es el fichero ya editado con los valores de mi instalación:</p>
<pre style="text-align: justify;"># This is a sample agent init file that contains the HS parameters that are
# needed for an ODBC Agent. 

#
# HS init parameters
#
HS_FDS_CONNECT_INFO = <strong>MYSQLSERVERDSN</strong>
HS_FDS_TRACE_LEVEL = 0
HS_FDS_TRACE_FILE_NAME =<strong>/tmp/hsodbcsql.trc</strong>
HS_FDS_SHAREABLE_NAME =<strong>/usr/local/easysoft/sqlserver/lib/libessqlsrv.sl</strong>

#
# ODBC specific environment variables
#
set ODBCINI=<strong>/etc/odbc.ini</strong>

#
# Environment variables required for the non-Oracle system
#
#set &lt;envvar&gt;=&lt;value&gt;</pre>
<p style="text-align: justify;">En negrita aparecen los valores que yo he añadido y he eliminado la &#8220;#&#8221; de comentario del principio de cada línea. Son los valores que necesita un SA para usar un agente ODBC. Explicaré alguno de los parámetros, pero para más información consultar la documentación de Oracle y/o la de Easysoft Driver configuration.</p>
<p style="text-align: justify;"><em><strong> HS_FDS_CONNECT_INFO</strong></em> es el nombre del origen de datos tal como se escribió dentro de <strong>/etc/odbc.ini</strong> Tener en cuenta que como hsODBC utiliza la API de ODBC SQLDriverConnect, en realidad se puede poner cualquier cadena de conexión ODBC válida aquí. Dentro de /etc/odbc.ini tendremos los datos de conexión del servidor SQL Server.</p>
<p style="text-align: justify;"><strong><em>HS_FDS_TRACE_LEVEL</em></strong> determina el nivel de rastreo. Como el rastreo ralentiza las operaciones he puesto &#8220;0&#8243;. Sin embargo, si tenemos problemas HS_FDS_TRACE_LEVEL puede ajustarse a un número del 1 al 4 (donde 4 es el más detallado) y la salida de rastreo se escribe en el archivo especificado con HS_FDS_TRACE_FILE_NAME.</p>
<p style="text-align: justify;"><strong><em>HS_FDS_SHAREABLE_NAME</em></strong> es el nombre de la shared library, coincide con el nombre del driver a utilizar (dentro del campo driver en /etc/odbc.ini). Para saber que driver se va a utilizar podemos ejecutar <strong>$ ./odbcinst -j</strong> dentro de la ruta <strong>/usr/local/easysoft/unixODBC/bin</strong> para nuestro ejemplo, ya que nosotros usamos un driver ODBC de Unix de la empresa Easysoft. Veremos todo esto en la parte de instalación/configuración del driver al final de esta entrada de blog.</p>
<p style="text-align: justify;">3.- Crear un nuevo listener dentro del fichero listener.ora.</p>
<p style="text-align: justify;">En el mismo directorio anterior, tambien tenemos un ejemplo de listener.ora y tnsnames.ora. Yo lo que hice, fue utilizar el contenido de este ejemplo y añadirlo al listener.ora &#8220;de toda la vida&#8221; ubicado en $ORACLE_HOME/network/admin. Lo que realmente se debe tener en cuenta es especificar el PROGRAM y que el SID name coincida con el que vamos a configurar en el tnsnames.ora. En negrita está todo lo modificado y de mayor importáncia:</p>
<p style="text-align: justify;">Contenido del listener.ora adecuado:</p>
<pre style="text-align: justify;"><strong>LISTENERMYSQLSERVERDSN</strong> =
 (ADDRESS_LIST=
    (ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=<strong>1522</strong>))
    (ADDRESS=(PROTOCOL=ipc)(KEY=PNPKEY)))

<strong>SID_LIST_LISTENERMYSQLSERVERDSN</strong>=
 (SID_LIST=
   (SID_DESC=
    (SID_NAME=<strong>MYSQLSERVERDSN</strong>)
    (ORACLE_HOME = /psg_oetc/oracle)
    <strong>(PROGRAM=hsodbc)</strong>
   (ENVS=LD_LIBRARY_PATH = /usr/local/easysoft/unixODBC/lib:/usr/local/easysoft/
lib:<strong>$ORACLE_HOME/lib32</strong>:/usr/local/easysoft/sqlserver/lib)
   )
 )</pre>
<p style="text-align: justify;">A tener en cuenta &#8230;</p>
<p style="text-align: justify;">- Se puede usar el puerto 1522 para evitar conflictos con otro listener o con el de por defecto de ORACLE 1521.<br />
- Se debe parar y volver a arrancar para que los cambios tengan efecto. Podemos hacer un tnsping para comprobar que todo está Ok.<br />
- La variable ENVS puede omitirse, creo que funcionaría igual, siempre y cuando definamos correctamente las variables de entorno LD_LIBRARY_PATH y SHLIB_PATH (HP-UX).<br />
- Tened en cuenta que la variable de entorno $ORACLE_HOME/lib<strong>32</strong> sólo s encontrará en sistemas de 32 bits. Para sistemas operativos de 64 bits,  poner lib64 ($ORACLE_HOME/lib64).</p>
<p style="text-align: justify;">Para arrancar el listener hacer:</p>
<pre><strong>$ lsnrctl start LISTENERMYSQLSERVERDSN</strong>
TNSLSNR for HPUX: Version 8.1.7.4.0 - Production</pre>
<pre style="text-align: justify;">El fichero de parámetros del sistema es /oracle/network/admin/listenera
Mensajes del log escritos en /oracle/network/log/listenermysqlserverdsg
Recibiendo en: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=servidor_local)(POR)
Recibiendo en: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=PNPKEY)))

Conectándose a (ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1522))
ESTADO del LISTENER
------------------------
Alias                     LISTENERMYSQLSERVERDSN
Versión                   TNSLSNR for HPUX: Version 8.1.7.4.0 - Production
Fecha de Inicio           30-SEP-2013 14:56:05
Tiempo de actividad                    0 días 0 hr. 0 min. 0 seg.
Nivel de Rastreo          off
Seguridad                 OFF
SNMP                      OFF
Fichero de Parámetros del Listener   /oracle/network/admin/listener.ora
Fichero Log del Listener      /oracle/network/log/listenermysqlserverdg
Resumen de servicios...
  MYSQLSERVERDSN                tiene 1 gestor(es) de servicio
El comando se ha ejecutado correctamente</pre>
<p style="text-align: justify;">Para pararlo:</p>
<pre style="text-align: justify;"><strong>$ lsnrctl stop LISTENERMYSQLSERVERDSN</strong>
LSNRCTL for HPUX: Version 8.1.7.4.0 - Production on 30-SEP-2013 15:02:00

(c) Copyright 1998 Oracle Corporation.  All rights reserved.

Conectándose a (ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1522))
El comando se ha ejecutado correctamente</pre>
<p style="text-align: justify;">Para comprobar que funciona:</p>
<p style="text-align: justify;">Nota: Antes de hacer la prueba debemos tener definida la instancia MYSQLSERVERDSN en el fichero tnsnames.ora como se explica en el siguiente punto. Observar que se hace el tnsping al nombre de la instancia y no al nombre del listener creado.</p>
<pre style="text-align: justify;"><strong>$ tnsping MYSQLSERVERDSN</strong>
TNS Ping Utility for HPUX: Version 8.1.7.4.0 - Production on 30-SEP-2013 15:00:1

(c) Copyright 1997 Oracle Corporation.  All rights reserved.

Attempting to contact (ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1522))
Realizado correctamente (110 mseg)</pre>
<p style="text-align: justify;">4.- Añadir una nueva entrada en el fichero tnsnames.ora.</p>
<p style="text-align: justify;">Un ejemplo de tnsnames.ora lo podemos encontrar también en $ORACLE_HOME/hs/admin. Lo importante en este caso, es también lo que tenemos subrayado en negrita.</p>
<p style="text-align: justify;"><strong> MYSQLSERVERDSN</strong>  =<br />
(DESCRIPTION=<br />
(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=<strong>1522</strong>))<br />
(CONNECT_DATA=(SID=<strong>MYSQLSERVERDSN</strong>))<br />
<strong>(HS=OK)</strong><br />
)</p>
<p style="text-align: justify;">Lo más destacable en este punto es sobretodo:</p>
<p style="text-align: justify;">- Indicar correctamente el nombre de la instancia &#8220;SID&#8221;. Esta cadena es la que usaremos en las llamadas a los ficheros odbc.ini en los drivers ODBC del sistema Unix e incluso será el nombre del ODBC del sistema Windows donde reside SQL Server.</p>
<p style="text-align: justify;">- He puesto el puerto 1522 para evitar conflictos con el de por defecto de Oracle 1521. Debemos tener en cuenta que el puerto que pongamos tiene que estar abierto. Sino estamos seguros, realizar todo el proceso con el puerto 1521 y después de la instalación cambiar al puerto deseado. Parar y volver a arrancar el listener y ya estaría.</p>
<p style="text-align: justify;">- El valor de HS se pone a &#8220;OK&#8221; para que Oracle use los servicios heterogéneos.</p>
<p style="text-align: justify;">5.- Crear un Database Link en Oracle.</p>
<p style="text-align: justify;">Se ha de crear un Database link, porque será de esta manera el cómo realizaremos las consultas desde SQL de Oracle al servidor No-Oracle que en este caso será un SQL SERVER. Es decir, con el &#8220;@MYSQLSERVER&#8221; después de cada consulta que hagamos. Lo vermos más adelante con algún ejemplo de consulta al servidor destino.</p>
<p>&nbsp;</p>
<pre class="MsoNormal"><span style="color: #000000;"><span style="font-size: 10pt; font-family: Courier; background: none repeat scroll 0% 0% white;" lang="EN-US">CREATE PUBLIC DATABASE LINK</span><span style="font-size: 10pt; font-family: Courier; background: none repeat scroll 0% 0% white;" lang="EN-US"><strong> MYSQLSERVERDSN</strong> CONNECT TO</span><span style="font-size: 10pt; font-family: Courier; background: none repeat scroll 0% 0% white;" lang="EN-US"> "sa" IDENTIFIED BY</span><span style="font-size: 10pt; font-family: Courier; background: none repeat scroll 0% 0% white;" lang="EN-US"> "</span><span style="font-size: 10pt; font-family: Courier; background: none repeat scroll 0% 0% white;" lang="EN-US">as" USING</span><span style="font-size: 10pt; font-family: Courier; background: none repeat scroll 0% 0% white;" lang="EN-US"> '<strong><em>MYSQLSERVERDSN</em></strong>'</span><span style="font-size: 10pt; font-family: Courier; background: none repeat scroll 0% 0% white;" lang="EN-US">;</span></span></pre>
<p style="text-align: justify;">Muy importante a tener en cuenta a la hora de crear el database link:</p>
<p style="text-align: justify;">- Crearlo con el usuario system en la BBDD Oracle, la cual nos conectaremos a sqlplus cuando queramos acceder a SQL Server.<br />
- Tanto el usuario como la clave de la conexión, ponerla en comillas dobles y el SID de despues del &#8220;using&#8221; ponerlo en comillas simples. Sino se hace así, es posible que Oracle te permita crear el database link, pero no te funcionará.<br />
- Creamos el database link como public para que todos los usuarios puedan acceder a la consulta del SQL Server.<br />
- Para que el DBLlink funcione nos debemos asegurar de que el parámetro &#8220;global_names&#8221; del init.ora de la BBDD Oracle está definido como &#8220;FALSE&#8221;. Para ello podemos realizar la siguiente consulta:</p>
<pre style="text-align: justify;">SELECT * FROM v$parameter
WHERE name LIKE 'global_names%';</pre>
<p style="text-align: justify;">Si el parámetro está seteado a &#8220;TRUE&#8221; deberemos cambiarlo en el fichero init.ora y volver a reiniciar la BBDD antes de crear el DB Link.</p>
<p style="text-align: justify;"><strong>En el servidor &#8220;Orígen&#8221;  por la parte de Unix</strong><br />
6.- <a title="Instalación del driver ODBC de Easysoft para Unix" href="http://colacios.es/blog/WordPress3/instalar-easysoft-odbc-driver-en-sistemas-hp-ux-para-conectar-oracle-con-sql-server/" target="_blank">Instalar</a>/configurar el driver ODBC en el sistema Unix donde reside el servidor Oracle.</p>
<p style="text-align: justify;">Seguir la documentación explicada en la entrada de blog del enlace anterior. Para realizar la instalación del Driver ODBC para Unix. En este ejemplo he utilizado el facilitado por la empresa Easysoft y que requiere de licencia.</p>
<p><strong><span style="text-decoration: underline;"><strong>7.-Posibles errores durante la configuración</strong></span></strong></p>
<p style="text-align: justify;">Es muy probable que durante la configuración de alguno de los procesos anteriores, nos encontremos con algún error. Seguidamente detallo alguno de los errores encontrados y la solución aplicada. He de comentar, que si se ha seguido al pie de la letra la documentación, estos errores no deberían producirse. Ya que la documentación se ha hecho dándo ya la solución a los mismos.</p>
<p style="text-align: justify;"><span style="text-decoration: underline;">Error 1</span></p>
<p style="text-align: justify;">Al ejecutar &#8230;</p>
<pre># ./odbcinst -j
/usr/lib/pa20_64/dld.sl: Unable to find library 'libodbcinst.sl.1'.
Killed</pre>
<p style="text-align: justify;"><span style="text-decoration: underline;">Solución</span><br />
Este error en concreto es debido a que no encuentra una librería de 64 bits cuando en realidad necesitábamos una de 32 bits. La solución fue borrar la versión de 64 bits (explicado en <a title="Instalación del driver ODBC de Easysoft para Unix" href="http://colacios.es/blog/WordPress3/instalar-easysoft-odbc-driver-en-sistemas-hp-ux-para-conectar-oracle-con-sql-server/" target="_blank">esta</a> entrada de blog), descargar la versión del driver para <strong><span style="text-decoration: underline;">32 bits</span></strong> e instalarla.</p>
<p><span style="text-decoration: underline;">Error 2</span></p>
<p>SQL&gt; select * from dual@MYSQLSERVERDSN;<br />
/usr/lib/dld.sl: Bad magic number for shared library: /usr/local/easysoft/sqlsel/usr/lib/dld.sl: Exec format error<br />
select * from dual@MYSQLSERVERDSN<br />
*<br />
ERROR en línea 1:<br />
ORA-28500: la conexión de ORACLE a un sistema no Oracle ha devuelto este<br />
mensaje:[Generic Connectivity Using ODBC]Exec format error; at FIND_IMAGE_SYMBOL<br />
Cannot connect to shareable /usr/local/easysoft/sqlserver/lib/libessqlsrv.sl.<br />
Using dummy functions<br />
ORA-02063: 3 lines precediendo a MYSQLSERVERDSN</p>
<p><span style="text-decoration: underline;">Solución</span></p>
<p>Añadir los valores en negrita a las variables de entorno LD_LIBRARY_PATH y SHLIB_PATH.</p>
<pre>export LD_LIBRARY_PATH=$LD_LIBRARY_PATH<strong>:/usr/local/easysoft/sqlserver/lib </strong></pre>
<pre>export SH_LIB_PATH=$SH_LIB_PATH:<strong><strong>/usr/local/easysoft/sqlserver/lib</strong></strong></pre>
<p><strong><span style="text-decoration: underline;">Error 3</span></strong></p>
<pre>$ ./isql -v MYSQLSERVERDSN sa as
 [01000][unixODBC][Driver Manager]Can't open lib '/usr/local/easysoft/sqlserver/lib/libessqlsrv.sl' : can't open the module
 [ISQL]ERROR: Could not SQLConnect</pre>
<p><span style="text-decoration: underline;">Solución</span></p>
<p>Esto es porque dentro del directorio /usr/local el directorio easysoft no tiene permisos de lectura/ejecución de alguna librería. Se soluciona entrando en /usr/local y ejecutando conectado como &#8220;root&#8221;:</p>
<pre># cd /usr/local
#  chmod -R 777 easysoft</pre>
<p style="text-align: justify;"><strong><span style="text-decoration: underline;">Otros Errores comunes</span></strong></p>
<pre>ERROR en línea 1:
ORA-28500: la conexión de ORACLE a un sistema no Oracle ha devuelto este
mensaje:[Generic Connectivity Using ODBC]Exec format error; at
FIND_IMAGE_SYMBOL</pre>
<p style="text-align: justify;">La mayoría de los errores que se producen durante este tipo de instalación es o bien:</p>
<p style="text-align: justify;">- Porque no se están instalando los drivers adecuados en cuanto a la versión de 32 o 64 bits.</p>
<p style="text-align: justify;">- Porque no se ha definido o no se ha definido de manera adecuada las variables de entorno <strong>LD_LIBRARY_PATH</strong> (cualquier sistema o variante de Unix) y <strong>SHLIB_PATH</strong> (HP). En entornos (AIX) en lugar de SHLIB_PATH se usa LIBPATH.</p>
<p style="text-align: justify;">- Cuando falla alguna librería, y normalmente es por los motivos comentados anteriormente. Es decir, se ha instalado una de 64 bits cuando necesitamos 32 bits, una manera de ver donde enlaza la librería es usando el comando chatr &lt;nombre_libreria&gt;.</p>
<p style="text-align: justify;">Ejemplo:</p>
<pre>$ <strong>chatr</strong> $ORACLE_HOME/lib/libclntsh.sl</pre>
<p style="text-align: justify;">/oracle/lib/libclntsh.sl:<br />
shared library<br />
shared library dynamic path search:<br />
<strong>SHLIB_PATH     enabled</strong>   first<br />
embedded path  disabled  second Not Defined<br />
internal name:<br />
libclntsh.sl.8.0<br />
shared library list:<br />
dynamic   <strong>/oracle/lib</strong>/libwtc8.sl<br />
dynamic  <strong> /usr/lib</strong>/librt.2<br />
dynamic   /usr/lib/libpthread.1<br />
dynamic   /usr/lib/libnss_dns.1<br />
dynamic   /usr/lib/libdld.2<br />
dynamic   /usr/lib/libm.2<br />
dynamic   /usr/lib/libc.2<br />
dynamic   /usr/lib/libcl.2<br />
shared vtable support disabled<br />
static branch prediction disabled<br />
executable from stack: D (default)<br />
kernel assisted branch prediction enabled<br />
lazy swap allocation disabled<br />
text segment locking disabled<br />
data segment locking disabled<br />
third quadrant private data space disabled<br />
fourth quadrant private data space disabled<br />
third quadrant global data space disabled<br />
data page size: D (default)<br />
instruction page size: D (default)<br />
nulptr references enabled<br />
shared library private mapping disabled</p>
<p style="text-align: justify;"><span style="text-decoration: underline;">Solución</span><br />
Podemos asegurarnos de que estas rutas están definidas en la variable de entorno PATH.</p>
<p style="text-align: justify;"><span style="text-decoration: underline;"><strong>8.- Juego de pruebas de comprobación de correcta instalación</strong></span></p>
<p style="text-align: justify;">Una vez acabada la instalación realizaré las siguientes comprobaciones.</p>
<p style="text-align: justify;">- Añadiré las variables de entorno LD_LIBRARY_PATH y SHLIB_PATH al entorno o .profile del usuario Oracle.</p>
<p style="text-align: justify;">- Comprobaré que el ODBC está instalado de manera adecuada y me informo de dónde están los drivers:</p>
<p style="text-align: justify;">En la ruta</p>
<pre>cd /usr/local/easysoft/unixODBC/bin
# <strong>./odbcinst -j</strong></pre>
<p style="text-align: justify;">Si al ejecutar sale el error:</p>
<pre>./odbcinst -j
/usr/lib/dld.sl: Can't open shared library: /usr/home_dir/svnbuild-32/external/p
roducts/unixodbc_2_3/threaded/lib/libodbcinst.sl.1
/usr/lib/dld.sl: No such file or directory
Abort(coredump)</pre>
<p style="text-align: justify;"><span style="text-decoration: underline;">Solución</span><br />
Hay que borrar el fichero &#8220;core&#8221; que ha generado en el directorio y cargar con valores adecuados las variables de entorno <strong>LD_LIBRARY_PATH</strong> y <strong>SHLIB_PATH</strong>.</p>
<p style="text-align: justify;">Ejemplos válidos:</p>
<pre> export <strong>LD_LIBRARY_PATH</strong>=$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</pre>
<pre>export <strong>SHLIB_PATH</strong>=$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</pre>
<p style="text-align: justify;">Ahora comprobaré que la conexión del driver ODBC funciona:</p>
<pre>cd /usr/local/easysoft/unixODBC/bin
<strong>./isql -v </strong>MYSQLSERVERDSN sa as</pre>
<p style="text-align: justify;">Si esto falla, es porque no puede leer las librerias.</p>
<p style="text-align: justify;"><span style="text-decoration: underline;">Solución</span></p>
<pre># cd /usr/local
#  chmod -R 777 easysoft</pre>
<p style="text-align: justify;">Ahora me conecto a sqlplus de Oracle y compruebo que accedo al servidor de SQL Server:</p>
<p style="text-align: justify;">Antes de hacer esto. Podemos asegurarnos de parar y volver a arrancar el listener con las variables de entorno LD_LIBRARY_PATH y SHLIB_PATH adecuadamente configuradas. Porque sino nos podemos encontrar que esto no funcione.</p>
<pre>sqlplus system/password</pre>
<pre>SQL&gt; select * from dual@MYSQLSERVERDSN;
ninguna fila seleccionada</pre>
<p style="text-align: justify;">Que no devuelva ninguna fila es posible. Lo importante es que no dé errores de Oracle u otros errores. También podemos probar con alguna tabla que sepamos que existe en el SQL Server de destino. Pero no olvidarse, en este caso, de poner el nombre del propietario de la tabla delante y usar el DBLink a la hora de hacer la select.</p>
<p style="text-align: justify;">Ejemplo:</p>
<pre>SQL&gt; select * from usuario.tabla@MYSQLSERVERDSN;</pre>
<p>¡¡¡ Pues ya tenemos nuestro Oracle Heterogeneous configurado!!!</p>
]]></content:encoded>
			<wfw:commentRss>http://colacios.es/blog/WordPress3/configurar-los-servicios-heterogeneos-de-oracle-para-acceder-a-sql-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Instalar Easysoft ODBC driver en sistemas HP-UX para conectar Oracle con SQL Server</title>
		<link>http://colacios.es/blog/WordPress3/instalar-easysoft-odbc-driver-en-sistemas-hp-ux-para-conectar-oracle-con-sql-server/</link>
		<comments>http://colacios.es/blog/WordPress3/instalar-easysoft-odbc-driver-en-sistemas-hp-ux-para-conectar-oracle-con-sql-server/#comments</comments>
		<pubDate>Mon, 30 Sep 2013 09:25:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Administración Sistemas]]></category>
		<category><![CDATA[Instalaciones]]></category>
		<category><![CDATA[conectar oracle sql server]]></category>
		<category><![CDATA[Easysoft driver]]></category>
		<category><![CDATA[heterogéneo]]></category>
		<category><![CDATA[heterogeneous]]></category>
		<category><![CDATA[HP-UX]]></category>
		<category><![CDATA[hs]]></category>
		<category><![CDATA[ODBC]]></category>
		<category><![CDATA[odbc.ini]]></category>
		<category><![CDATA[odbcinst.ini]]></category>

		<guid isPermaLink="false">http://colacios.es/blog/WordPress3/?p=469</guid>
		<description><![CDATA[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 &#8230; <a href="http://colacios.es/blog/WordPress3/instalar-easysoft-odbc-driver-en-sistemas-hp-ux-para-conectar-oracle-con-sql-server/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">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.</p>
<p style="text-align: justify;">En este caso, el servidor donde estaba la BBDD Oracle instalada es un Unix de HP. Es decir, <strong>HP-UX</strong> versión 11.x. (Podemos saber nuestra versión ejecutando <strong>uname -a</strong> desde el prompt del sistema).</p>
<p style="text-align: justify;">Podemos encontrar los drivers ODBC para Unix en <a title="Web especializada en Drivers ODBC para sistemas Unix/Linux" href="http://www.unixodbc.org" target="_blank"><cite>www.unixodbc.org</cite></a> o bien en algún CD de Oracle que los proporcione. Normalmente, los drivers ODBC los encontramos en software de ORACLE Developer.</p>
<p style="text-align: justify;">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 <cite>www.unixodbc.org</cite> y pulsando en Drivers. Deben salir los enlaces a Easysoft. Sino, podemos ir directamente a la WEB<a title="Web oficial de Easysoft" href="http://www.easysoft.com" target="_blank"> <em>www.easysoft.com</em></a>.</p>
<p style="text-align: justify;">Los drivers o &#8220;conductores&#8221; 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 &#8220;licenses&#8221; que normalmente está en la ruta: /usr/local/<strong>easysoft/license</strong>. 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.</p>
<p style="text-align: justify;">Para evitar quebraderos de cabeza posteriores a la instalación, tened en cuenta las siguientes consideraciones:</p>
<p style="text-align: justify;">- 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.</p>
<p style="text-align: justify;">- 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.</p>
<p style="text-align: justify;">-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 &#8230;</p>
<p style="text-align: justify;">SQL*Plus&#8211;&gt;Oracle Client&#8211;&gt;HSODBC instance&#8211;&gt;UnixODBC&#8211;&gt;ODBC driver&#8211;&gt;Database</p>
<p style="text-align: justify;"><a href="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/18pant.jpg"><img class="aligncenter size-full wp-image-516" title="18pant" src="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/18pant.jpg" alt="" width="324" height="370" /></a>- Si ya tenemos una instalación previa en el servidor de drivers ODBC, el proceso de instalación conserva el contenido de los ficheros <strong>odbcinst.ini</strong> y <strong>odbc.ini</strong>, 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&#8230;. 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.</p>
<p style="text-align: justify;">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.</p>
<p style="text-align: justify;">Comenzamos &#8230;</p>
<p style="text-align: justify;">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.</p>
<p style="text-align: justify;"><a href="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/1pant1.jpg"><img class="aligncenter size-full wp-image-484" title="1pant" src="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/1pant1.jpg" alt="" width="1014" height="771" /></a>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.</p>
<p style="text-align: justify;">Accedo al servidor HP como root y ejecuto:</p>
<pre style="text-align: justify;"><strong># cp /usr/local/easysodt/license/licenses /tmp</strong></pre>
<p style="text-align: justify;">Ahora borro la antigua instalación:</p>
<pre style="text-align: justify;"><strong># rm -rf /usr/local/easysoft</strong></pre>
<p style="text-align: justify;">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 &#8230;.</p>
<p style="text-align: justify;">Entramos al directorio donde tengamos el fichero .tar y lo descomprimimos &#8230;</p>
<pre style="text-align: justify;"><strong># </strong><strong>tar -xvf odbc-sqlserver-1.5.2-hpux11-parisc1.tar</strong></pre>
<p style="text-align: justify;">Ahora entramos al directorio que se ha creado y buscamos el fichero <strong>INSTALL.txt</strong> que explica como realizar la instalación.</p>
<p style="text-align: justify;">Los pasos que se explican en mi caso son los que siguen &#8230;</p>
<pre style="text-align: justify;">Arrancamos la instalación
<strong>#./install</strong></pre>
<pre><a href="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/2pant.jpg"><img class="aligncenter size-full wp-image-486" title="2pant" src="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/2pant.jpg" alt="" width="731" height="427" /></a></pre>
<pre>Escribiremos "<strong>yes</strong>" para aceptar la licencia</pre>
<p style="text-align: justify;"><a href="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/3pant.jpg"><img class="aligncenter size-full wp-image-488" title="3pant" src="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/3pant.jpg" alt="" width="731" height="432" /></a></p>
<pre>Realiza comprobaciones de que se tienen los comandos de S.O necesarios
para hacer la instalación 

<strong>Pulsaremos cualquier tecla</strong></pre>
<p style="text-align: justify;"><a href="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/4pant.jpg"><img class="aligncenter size-full wp-image-490" title="4pant" src="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/4pant.jpg" alt="" width="731" height="428" /></a></p>
<pre>Realiza comprobaciones de paquetes necesarios para hacer la instalación<strong> Pulsaremos cualquier tecla</strong></pre>
<p style="text-align: justify;"><a href="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/5pant.jpg"><img class="aligncenter size-full wp-image-492" title="5pant" src="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/5pant.jpg" alt="" width="673" height="433" /></a></p>
<pre>En esta pantalla nos propone realizar la instalación base en el directorio por defecto,
lo aceptaremos pulsando "<strong>Intro</strong>". Y en la siguiente pantalla, pulsaremos cualquier tecla.</pre>
<p style="text-align: justify;"><a href="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/6pant.jpg"><img class="aligncenter size-full wp-image-494" title="6pant" src="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/6pant.jpg" alt="" width="677" height="424" /></a></p>
<p style="text-align: justify;"><a href="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/7pant.jpg"><img class="aligncenter size-full wp-image-497" title="7pant" src="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/7pant.jpg" alt="" width="693" height="434" /></a></p>
<pre>Pulsaremos "<strong>n</strong>" y empezará el desempaquetamiento ...

Iremos pulsando <strong>cualquier tecla</strong> cada vez que lo solicite ...</pre>
<p style="text-align: justify;"><a href="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/8pant.jpg"><img class="aligncenter size-full wp-image-498" title="8pant" src="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/8pant.jpg" alt="" width="636" height="407" /></a></p>
<p style="text-align: justify;"><a href="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/9pant.jpg"><img class="aligncenter size-full wp-image-499" title="9pant" src="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/9pant.jpg" alt="" width="671" height="433" /></a><a href="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/10pant.jpg"><img class="aligncenter size-full wp-image-500" title="10pant" src="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/10pant.jpg" alt="" width="666" height="418" /></a><a href="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/11pant.jpg"><img class="aligncenter size-full wp-image-502" title="11pant" src="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/11pant.jpg" alt="" width="684" height="411" /></a><a href="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/12pant.jpg"><img class="aligncenter size-full wp-image-503" title="12pant" src="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/12pant.jpg" alt="" width="719" height="410" /></a></p>
<pre>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.</pre>
<p style="text-align: justify;"><a href="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/13pant.jpg"><img class="aligncenter size-full wp-image-504" title="13pant" src="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/13pant.jpg" alt="" width="718" height="435" /></a></p>
<pre>Pulsamos <strong>una tecla</strong> para continuar ...
Y en la siguiente pantalla, cuando nos solicite respuesta de la licencia pulsaremos "<strong>n</strong>"</pre>
<pre> <a href="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/14pant.jpg"><img class="aligncenter size-full wp-image-506" title="14pant" src="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/14pant.jpg" alt="" width="719" height="433" /></a></pre>
<pre>Detectará automáticamente instancias SQL Server y propondrá acceder a ellas ...
En mi caso, como no quería acceder de momento, puse "<strong>n</strong>"</pre>
<p style="text-align: justify;"><a href="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/15pant.jpg"><img class="aligncenter size-full wp-image-507" title="15pant" src="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/15pant.jpg" alt="" width="712" height="433" /></a></p>
<pre> Acaba la instalación correctamente si sale la pantalla siguiente:</pre>
<p style="text-align: justify;"><a href="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/16pant.jpg"><img class="aligncenter size-full wp-image-509" title="16pant" src="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/16pant.jpg" alt="" width="719" height="111" /></a></p>
<p style="text-align: justify;">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.</p>
<p style="text-align: justify;">Ejemplo de configuración:</p>
<pre>export <strong>LD_LIBRARY_PATH</strong>=$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</pre>
<pre>export <strong>SHLIB_PATH</strong>=$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</pre>
<p style="text-align: justify;">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.</p>
<p style="text-align: justify;">Ejecuando ./odbcinst -j obtenemos la información de los drivers, su ubicación, ficheros de configuración etc&#8230;.</p>
<p style="text-align: justify;">odbcj pasándole el parámetro &#8220;?&#8221; nos mostrará todos los comandos posibles a utilizar.</p>
<p style="text-align: justify;">Ejemplo:</p>
<pre><strong>$ ./odbcinst ?</strong></pre>
<pre>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              *
**********************************************</pre>
<p style="text-align: justify;"><strong></strong>Con comprobar lo siguiente tenemos suficiente &#8230; vamos a la ruta:</p>
<p><strong>$ cd /usr/local/easysoft/unixODBC/bin</strong></p>
<p style="text-align: justify;">Ejecutamos &#8230;</p>
<p style="text-align: justify;"><a href="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/17pant.jpg"><img class="aligncenter size-full wp-image-511" title="17pant" src="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/17pant.jpg" alt="" width="450" height="163" /></a></p>
<p style="text-align: justify;">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 <strong><em>ODBCDataSources</em></strong> no existe cuando acabas la instalación, tampoco el fichero <strong><em>.odbc.ini</em></strong> de &#8220;USER DATA SOURCES&#8221;. Una solución es <strong>crear ambos con el contenido de odbc.ini</strong>.</p>
<p style="text-align: justify;">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.</p>
<p style="text-align: justify;">Ejemplo de comprobación del driver:</p>
<p style="text-align: justify;">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 &#8220;sa&#8221; cuya clave es &#8220;as_clave&#8221; en el ejemplo y que la instancia HS de Oracle es MYSQLSERVERDSN.</p>
<pre> $ <strong>cd /usr/local/easysoft/unixODBC/bin</strong>
 $ <strong>./isql -v</strong> MYSQLSERVERDSN sa as_clave</pre>
<p style="text-align: justify;">Esta ejecución debe dar un resultado como el que muestra la imagen siguiente.</p>
<p style="text-align: justify;"><a href="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/19pant1.jpg"><img class="aligncenter size-full wp-image-526" title="19pant" src="http://colacios.es/blog/WordPress3/wp-content/uploads/2013/09/19pant1.jpg" alt="" width="725" height="162" /></a>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 &#8220;<strong><span style="text-decoration: underline;">Cómo conseguir una licencia</span></strong>&#8220;.</p>
<p style="text-align: justify;">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 &#8220;777&#8243; inicialmente y probamos si esto funciona. Sino, revisar las otras entradas de blog para aplicar las soluciones que yo encontré.</p>
<pre style="text-align: justify;">$ cd /usr/local
<strong>$ chmod -R 777 easysoft</strong></pre>
<p style="text-align: justify;"><strong><span style="text-decoration: underline;">Cómo conseguir una licencia</span></strong></p>
<p style="text-align: justify;">Accedemos a la ruta:</p>
<p style="text-align: justify;">$ cd /usr/local/easysoft/license<br />
Ejecutamos ..<br />
$ ./licshell</p>
<p style="text-align: justify;">Saldrá esto y seleccionaremos la opción 2:</p>
<p style="text-align: justify;">Please note that to obtain licenses automatically you need<br />
to be connected to the Internet and allow outgoing access to<br />
license.easysoft.com on port 8884<br />
If this program cannot determine the IP address of license.easysoft.com<br />
it will try 89.238.155.4<br />
[0] Exit<br />
[1] View existing licenses<br />
<strong>[2] SQLServer ODBC Driver V1.5</strong></p>
<p>Please choose the product you would like a license for by entering its<br />
item number or enter one of the other options.</p>
<p>Option:</p>
<p style="text-align: justify;">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 <strong>autolicense@easysoft.com</strong> 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.</p>
<p style="text-align: justify;">
]]></content:encoded>
			<wfw:commentRss>http://colacios.es/blog/WordPress3/instalar-easysoft-odbc-driver-en-sistemas-hp-ux-para-conectar-oracle-con-sql-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
