Antes de añadir fuentes de datos Informix a un servidor federado de DB2, tiene que instalar y configurar el software de Informix Client SDK en el servidor federado. Consulte los procedimientos de instalación de la documentación que viene con el software de bases de datos Informix para ver detalles específicos sobre cómo instalar el software de Client SDK. Formando parte de la instalación, asegúrese de incluir las bibliotecas de Informix Client SDK.
Para configurar el servidor federado para que acceda a datos almacenados en fuentes de datos Informix, tiene que:
Este capítulo trata el paso 3.
Las instrucciones contenidas en este capítulo se aplican a los sistemas operativos AIX, Entorno operativo Solaris y HP-UX. Si hay diferencias específicas para cada sistema operativo, se indican.
Para añadir una fuente de datos Informix a un servidor federado, tiene que:
Estos pasos se explican en detalle en esta sección.
Establezca las variables de entorno de la fuente de datos modificando el archivo db2dj.ini y emitiendo el mandato db2set. El archivo db2dj.ini contiene información de configuración sobre el software de cliente Informix instalado en el servidor federado. El mandato db2set actualiza el registro del perfil de DB2 con sus valores.
En un sistema de bases de datos particionado, puede utilizar un solo archivo db2dj.ini para todos los nodos de una determinada instancia o puede utilizar un archivo db2dj.ini exclusivo para uno o más nodos de una instancia determinada. Un sistema de bases de datos no particionado sólo puede tener un archivo db2dj.ini por instancia.
Para establecer las variables de entorno:
Establezca la variable de entorno INFORMIXDIR con la vía de acceso al directorio en que está instalado el software de Informix Client SDK; por ejemplo:
INFORMIXDIR=/informix/csdk
Esta variable identifica el nombre del servidor Informix por omisión.
INFORMIXSERVER=inf93
Nota: Aunque el reiniciador de Informix no utiliza el valor de esta variable, el cliente Informix necesita que ésta se establezca. El reiniciador utiliza el valor de la opción de servidor node, que especifica el servidor de bases de datos Informix al que se desea acceder.
Si está utilizando la vía de acceso por omisión para el archivo sqlhosts de Informix ($INFORMIXDIR/etc/sqlhosts), no es necesario que establezca esta variable. Sin embargo, si utiliza para el archivo sqlhosts de Informix una vía de acceso distinta a la predeterminada, tiene que establecer esta variable con el nombre de vía de acceso completa del archivo sqlhosts de Informix. Por ejemplo:
INFORMIXSQLHOSTS=/informix/csdk/etc/my_sqlhosts
PATH=$INFORMIXDIR/bin:$PATH export PATH INFORMIXDIR=<vía_cliente_informix> export INFORMIXDIR
donde vía_cliente_informix es la vía de acceso del directorio en que está instalado el cliente Informix en el servidor federado. Si un nombre de la vía de acceso contiene un espacio en blanco, utilice comillas (") que delimiten la vía de acceso.
. .profile
Si utiliza el archivo db2dj.ini en un sistema de bases de datos no particionado o si desea que el archivo db2dj.ini se aplique sólo al nodo actual, emita:
db2set DB2_DJ_INI=sqllib/cfg/db2dj.ini
Si está utilizando el archivo db2dj.ini en un sistema de bases de datos particionado y desea que los valores del archivo db2dj.ini se apliquen a todos los nodos de esta instancia, emita:
db2set -g DB2_DJ_INI = sqllib/cfg/db2dj.ini
Si utiliza el archivo db2dj.ini en un sistema de bases de datos particionado y desea que los valores del archivo db2dj.ini se apliquen a un nodo específico, emita:
db2set -i INSTANCEX 3 DB2_DJ_INI=sqllib/cfg/node3.ini
donde:
Para habilitar el acceso a fuentes de datos Informix, el servidor federado de DB2 debe estar editado con enlace a las bibliotecas del cliente. El proceso de editar con enlace crea un reiniciador para cada fuente de datos con la que se va a comunicar el servidor federado. Cuando se ejecuta el script djxlinkInformix, se crea la biblioteca del reiniciador de Informix. Para emitir el script djxlinkInformix, escriba:
djxlinkInformix
El script djxlinkInformix sólo crea la biblioteca del reiniciador de Informix. Existe otro script, el script djxlink, que intenta crear una biblioteca de reiniciador para cada fuente de datos soportada por DB2 Universal Database (Oracle, Microsoft SQL Server, etc.). Si sólo dispone del software de cliente para algunas de las fuentes de datos instaladas, cuando emita el script djxlink recibirá un mensaje de error para cada una de las fuentes de datos que falten.
Necesita la autorización del Administrador de sistemas UNIX (root) a fin de ejecutar los scripts djxlinkInformix y djxlink.
Los scripts djxlinkInformix y djxlink graban mensajes detallados de error y de aviso en un archivo específico, que depende del sistema operativo. Por ejemplo, en AIX, el script djxlinkInformix graba en /usr/lpp/db2_07_01/lib/djxlinkInformix.out y el script djxlink graba en /usr/lpp/db2_07_01/lib/djxlink.out.
Los scripts djxlinkInformix y djxlink crean la biblioteca del reiniciador en un directorio específico, que depende del sistema operativo. Por ejemplo, en AIX, la biblioteca del reiniciador libinformix.a se crea en el directorio /usr/lpp/db2_07_01/lib.
Compruebe los permisos de la biblioteca del reiniciador libinformix.a después de crearla para asegurarse de que los propietarios de instancias de DB2 la pueden leer y ejecutar. Si los propietarios de instancias de DB2 no se encuentran en el grupo System, los permisos de la biblioteca del reiniciador libinformix.a tendrán que ser: -rwxr-xr-x root system...libinformix.a.
Para asegurarse de que las variables de entorno están definidas en el programa, recicle la instancia de DB2. Cuando recicla la instancia, renueva la instancia de DB2 para que acepte los cambios realizados.
Emita los siguientes mandatos para reciclar la instancia de DB2:
db2stop db2start
El archivo especifica la ubicación de cada servidor de bases de datos Informix y el tipo de conexión (protocolo) para el servidor de bases de datos. Existen varias maneras de crear este archivo. Puede copiarlo de otro sistema que tenga Informix Connect o Informix Client SDK conectado a un servidor Informix. También puede configurar Informix Client SDK en el servidor DB2 para conectarse a un servidor Informix y, así, crear el archivo sqlhosts.
Una vez copiado o creado el archivo sqlhosts, el propietario de instancias de DB2 deberá utilizar dbaccess en Informix (si está en el servidor DB2) a fin de conectarse al servidor Informix y efectuar consultas en él. Con esto, se establecerá que Informix Client SDK pueda conectarse al servidor Informix antes de que se intente configurar DB2 Relational Connect para trabajar con Informix Client SDK.
Para obtener más información sobre cómo definir este archivo, consulte el manual de Informix Administrators Guide for Informix Dynamic Server.
Aviso: |
---|
Si no define el nombre del servidor de bases de datos Informix en el archivo sqlhosts, cuando realice una operación que requiera conexión con el servidor de bases de datos Informix recibirá un error. |
Utilice la sentencia CREATE WRAPPER para especificar el reiniciador que se utilizará para acceder a fuentes de datos Informix. Los reiniciadores son mecanismos que utilizan los servidores federados para comunicarse con fuentes de datos y recuperar datos de las mismas. El siguiente ejemplo muestra una sentencia CREATE WRAPPER:
CREATE WRAPPER informix
donde informix es el nombre_reiniciador; informix es el nombre de reiniciador por omisión utilizado con el software de Informix Client SDK.
Puede sustituir el nombre de reiniciador por omisión por el nombre que elija. Sin embargo, si lo hace, debe también incluir el parámetro LIBRARY y el nombre de la biblioteca del reiniciador correspondiente al servidor federado en la sentencia CREATE WRAPPER. Consulte la sentencia CREATE WRAPPER en el manual Consulta de SQL de DB2 para obtener más información sobre nombres de bibliotecas de reiniciadores.
Los nombres de bibliotecas de reiniciadores para Informix son:
Para mejorar el rendimiento cuando se acceda a la fuente de datos Informix, establezca la variable de entorno DB2_DJ_COMM en el servidor federado. Esta variable determina si se carga un reiniciador cuando se inicializa el servidor federado. Establezca la variable de entorno DB2_DJ_COMM de modo que incluya la biblioteca del reiniciador que corresponde al reiniciador que ha especificado en el paso anterior. Si está utilizando las interfaces de línea de mandatos del shell Korn o del shell Bourne, utilice los mandatos de exportación siguientes:
DB2_DJ_COMM='libinformix.a' export DB2_DJ_COMM
DB2_DJ_COMM='libinformix.so' export DB2_DJ_COMM
DB2_DJ_COMM='libinformix.sl' export DB2_DJ_COMM
Asegúrese de que no hay espacios junto al signo igual (=).
Si está utilizando la interfaz de línea de mandatos del shell C, establezca las variables de entorno mediante los mandatos siguientes:
setenv DB2_DJ_COMM 'libinformix.a' (servidores DB2 para AIX) setenv DB2_DJ_COMM 'libinformix.so' (servidores DB2 para el entorno Solaris) setenv DB2_DJ_COMM 'libinformix.sl' (servidores DB2 para HP--UX)
Consulte el manual Consulta de SQL de DB2 para obtener más información sobre nombres de bibliotecas de reiniciadores y sobre la variable de entorno DB2_DJ_COMM.
Utilice la sentencia CREATE SERVER para definir cada servidor Informix a cuyas fuentes de datos desea acceder. La sintaxis de esta sentencia es:
CREATE SERVER nombre_servidor TYPE tipo_servidor VERSION versión_servidor WRAPPER nombre_reiniciador OPTIONS (NODE 'nombre_nodo', DBNAME 'nombre_basedatos')
donde:
A continuación se muestra un ejemplo de la sentencia CREATE SERVER:
CREATE SERVER asia TYPE informix VERSION 9 WRAPPER informix OPTIONS (NODE 'abc', DBNAME 'ventas')
Las opciones de servidor FOLD_ID y FOLD_PW afectan al hecho de que el reiniciador convierta o no el ID de usuario y la contraseña en mayúsculas o minúsculas, antes de enviarlos a Informix. A continuación se muestra un ejemplo de la sentencia CREATE SERVER con las opciones de servidor FOLD_ID y FOLD_PW:
CREATE SERVER asia TYPE informix VERSION 9 WRAPPER informix OPTIONS (NODE 'abc', DBNAME 'ventas', FOLD_ID 'U', FOLD_PW 'U')
Si un ID de usuario o contraseña del servidor federado de DB2 no coinciden con el ID de usuario o contraseña de una fuente de datos Informix, utilice la sentencia CREATE USER MAPPING para correlacionar el ID de usuario local con el ID de usuario y la contraseña definidos en la fuente de datos Informix; por ejemplo:
CREATE USER MAPPING FOR idsuario_local SERVER nombre_servidor OPTIONS (REMOTE_AUTHID 'idusuario_remoto', REMOTE_PASSWORD 'contraseña_remota')
donde:
A continuación se muestra un ejemplo de la sentencia CREATE USER MAPPING:
CREATE USER MAPPING FOR robert SERVER asia OPTIONS (REMOTE_AUTHID 'bob', REMOTE_PASSWORD 'day2night')
Puede utilizar el registro especial de DB2 USER para correlacionar el ID de autorización de la persona que emite la sentencia CREATE USER MAPPING con el ID de autorización de la fuente de datos especificado en la opción de usuario REMOTE_AUTHID. A continuación se muestra un ejemplo de la sentencia CREATE USER MAPPING que incluye el registro especial USER:
CREATE USER MAPPING FOR USER SERVER asia OPTIONS (REMOTE_AUTHID 'bob', REMOTE_PASSWORD 'day2night')
Consulte el manual Consulta de SQL de DB2 para obtener más información sobre opciones adicionales.
Asigne un apodo a cada tabla, vista o sinónimo de Informix ubicados en su fuente de datos Informix. Los apodos pueden tener una longitud de 128 caracteres. Utilizará estos apodos cuando consulte la fuente de datos Informix. DB2 convertirá los nombres de servidor, esquema y tabla a mayúsculas a no ser que los encierre entre comillas ("). El siguiente ejemplo muestra una sentencia CREATE NICKNAME:
CREATE NICKNAME nickname FOR nombre_servidor."nombre_esquema_remoto"."nombre_tabla_remota"
donde:
A continuación se muestra un ejemplo de la sentencia CREATE NICKNAME:
CREATE NICKNAME ventasjapón FOR asia."datosventas"."japón"
Repita este paso para cada tabla o vista para la que desee crear un apodo. Cuando cree el apodo, DB2 utilizará la conexión para consultar el catálogo de fuentes de datos. Esta consulta prueba la conexión con la fuente de datos. Si la conexión no funciona, recibirá un mensaje de error.
Consulte el manual Consulta de SQL de DB2 para obtener más información sobre la sentencia CREATE NICKNAME. Para obtener más información sobre apodos en general y para verificar correlaciones de tipos de datos, consulte el manual DB2 Administration Guide.