Antes de añadir fuentes de datos de Microsoft SQL Server a un servidor federado DB2, tiene que instalar y configurar el controlador ODBC en el servidor federado. Consulte los procedimientos de instalación de la documentación que viene con el controlador ODBC para obtener detalles específicos sobre cómo instalar el controlador ODBC.
Para configurar el servidor federado para que acceda a datos almacenados en fuentes de datos de Microsoft SQL Server, tiene que:
Este capítulo trata los pasos 3 y 4.
Las instrucciones de este capítulo se aplican a plataformas Windows NT y AIX. Si hay diferencias específicas para cada plataforma, se indican.
Después de instalar el controlador ODBC y DB2 Relational Connect, añada fuentes de datos de Microsoft SQL Server al servidor federado siguiendo los pasos siguientes:
Estos pasos se explican en detalle en las siguientes secciones.
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 para conectar con fuentes de datos de Microsoft SQL Server. 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:
ODBCINI=$HOME/.odbc.ini DJX_ODBC_LIBRARY_PATH=<vía acceso al controlador Merant>/lib DB2ENVLIST=LIBPATH
Emita el mandato db2set para actualizar el registro de perfiles de DB2 con los cambios. La sintaxis de db2set depende de la estructura del sistema de bases de datos.
db2set DB2_DJ_INI=<vía acceso a archivo ini>/db2dj.ini
db2set -g DB2_DJ_INI=<vía acceso a archivo ini>/db2dj.ini
db2set -i INSTANCEX 3 DB2_DJ_INI=$HOME/sqllib/cfg/node3.ini
donde:
Para establecer la vía de acceso a la biblioteca de cliente, emita estos mandatos:
db2set DB2LIBPATH=<vía de acceso a la biblioteca de cliente Merant> db2set DB2ENVLIST=LIBPATH
El script shell djxlink.sh enlaza las bibliotecas del cliente con las bibliotecas del reiniciador. Para ejecutar el script shell:
djxlink
Si cree que se tarda demasiado en acceder a la fuente de datos de Microsoft SQL Server, puede mejorar el rendimiento estableciendo la variable de entorno DB2_DJ_COMM para que cargue el reiniciador cuando se inicialice el servidor federado en lugar de cuando intente acceder a la fuente de datos. Establezca la variable de entorno DB2_DJ_COMM de modo que incluya la biblioteca del reiniciador correspondiente al reiniciador especificado en el Paso 5. Por ejemplo:
db2set DB2_DJ_COMM=djxmssql3.dll
db2set DB2_DJ_COMM=libmssql3.a
Asegúrese de que no hay espacios junto al signo igual (=).
Consulte el manual Consulta de SQL de DB2 para obtener más información sobre nombres de bibliotecas de reiniciador.
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. Recicle la instancia de DB2 emitiendo los siguientes mandatos:
db2stop db2start
DB2 Universal Database tiene dos protocolos diferentes, denominados
reiniciadores, que puede utilizar para acceder a fuentes de datos de Microsoft
SQL Server. Los reiniciadores son mecanismos que utilizan los
servidores federados para comunicarse con fuentes de datos y recuperar datos
de las mismas. El reiniciador que utilice depende de la plataforma en
que se esté ejecutando DB2 Universal Database. Utilice la Tabla 3 como guía para seleccionar el reiniciador adecuado.
Controlador ODBC | Plataforma | Nombre del reiniciador |
Controlador ODBC 3.0 (o superior) | Windows NT | DJXMSSQL3 |
Controlador MERANT DataDirect Connect ODBC 3.6 | AIX | MSSQLODBC3 |
Utilice la sentencia CREATE WRAPPER para especificar el reiniciador que se utilizará para acceder a fuentes de datos de Microsoft SQL Server. El siguiente ejemplo muestra una sentencia CREATE WRAPPER:
CREATE WRAPPER DJXMSSQL3
donde DJXMSSQL3 es el nombre del reiniciador por omisión utilizado en un servidor DB2 para Windows NT (utilizando el controlador ODBC 3.0). Si tiene un servidor DB2 para AIX, especificaría el nombre de reiniciador MSSQLODBC3.
Puede sustituir el nombre de reiniciador por omisión por el nombre que elija. Sin embargo, si lo hace, debe incluir el parámetro LIBRARY y el nombre de la biblioteca del reiniciador correspondiente a la plataforma del servidor federado en la sentencia CREATE WRAPPER. Por ejemplo:
CREATE WRAPPER nombre_reiniciador LIBRARY 'djxmssql3.dll'
donde nombre_reiniciador es el nombre que desea dar al reiniciador y 'djxmssql3.dll' es el nombre de la biblioteca.
CREATE WRAPPER nombre_reiniciador LIBRARY 'libmssql3.a'
donde nombre_reiniciador es el nombre que desea dar al reiniciador y 'libdjxmssql.a' es el nombre de la biblioteca.
Consulte la sentencia CREATE WRAPPER del manual Consulta de SQL de DB2 para obtener más información sobre nombres de bibliotecas de reiniciadores.
Utilice la sentencia CREATE SERVER para definir cada fuente de datos de Microsoft SQL Server a la que desea conectarse. Por ejemplo:
CREATE SERVER sqlserver TYPE MSSQLSERVER VERSION 7.0 WRAPPER djxmssql3 OPTIONS (NODE 'sqlnode', DBNAME 'nombre_basedatos')
donde:
Aunque el nombre del nodo (nombre del DSN del sistema) se especifica como opción en la sentencia CREATE SERVER, es necesario para fuentes de datos de Microsoft SQL Server. En Windows, obtenga el DSN de la pestaña DSN del sistema en la herramienta Administrador de datos ODBC de Windows. En AIX, obtenga el DSN del archivo .odbc.ini en el directorio inicial de propietarios de instancias de DB2.
Vea el manual Consulta de SQL de DB2 para informarse acerca de opciones adicionales que puede utilizar con la sentencia CREATE WRAPPER.
Aunque el nombre de la base de datos se especifica como opción en la sentencia CREATE SERVER, es necesario para fuentes de datos de Microsoft SQL Server.
Si un ID de usuario o contraseña del servidor federado no coinciden con el ID de usuario o contraseña de una fuente de datos de Microsoft SQL Server, utilice la sentencia CREATE USER MAPPING para correlacionar el ID de usuario local con el ID de usuario y contraseña definidos en la fuente de datos de Microsoft SQL Server; por ejemplo:
CREATE USER MAPPING FOR db2user SERVER nombre_servidor OPTIONS (REMOTE_AUTHID 'mssqluser', REMOTE_PASSWORD 'day2night')
donde:
Consulte el manual Consulta de SQL de DB2 para ver opciones adicionales que puede utilizar con la sentencia CREATE USER MAPPING.
Asigne un apodo para cada vista o tabla situada en la fuente de datos de Microsoft SQL Server a la que desea acceder. Utilizará estos apodos cuando consulte la fuente de datos de Microsoft SQL Server. Utilice la sentencia CREATE NICKNAME para asignar un apodo. Los apodos son sensibles a mayúsculas y minúsculas. El siguiente ejemplo muestra una sentencia CREATE NICKNAME:
CREATE NICKNAME mssqlsales FOR nombre_servidor.salesdata.europe
donde:
nombre_servidor_fuente_datos.nombre_esquema_remoto.nombre_tabla_remota
Se recomienda utilizar comillas dobles para las partes nombre_esquema_remoto y nombre_tabla_remota del apodo.
Cuando crea un apodo, DB2 intenta acceder a las tablas de catálogo de fuentes de datos (Microsoft SQL Server las denomina tablas del sistema). Esto prueba la conexión con la fuente de datos. Si la conexión falla, el usuario recibe un mensaje de error.
Repita este paso para todas las tablas y vistas de bases de datos para las que desea crear apodos.
Para obtener más información sobre la sentencia CREATE NICKNAME, consulte el manual Consulta de SQL de DB2. Para obtener más información sobre apodos en general y para verificar las correlaciones de tipos de datos, consulte el manual DB2 Administration Guide.
Si tiene problemas al acceder a la fuente de datos, puede obtener información de rastreo de ODBC para analizar y resolver estos problemas. Para asegurarse de que el rastreo ODBC funciona correctamente, utilice la herramienta de rastreo que suministra ODBC Data Source Administrator. El hecho de activar el rastreo afecta al rendimiento del sistema, por lo tanto debe desactivar el rastreo una vez resueltos los problemas.
Microsoft SQL Server da soporte a muchas de las opciones comunes de páginas
de códigos del Soporte de idiomas nacionales (NLS) soportadas por DB2
UDB. Las fuentes de datos que utilizan el mismo juego de códigos que
DB2 no se tienen que convertir. La Tabla 3 lista las páginas de códigos
que reciben soporte de DB2 Universal Database y de Microsoft SQL
Server.
Tabla 4. Opciones de páginas de códigos de DB2 UDB y de Microsoft SQL Server
Página de códigos | Idioma soportado |
---|---|
1252 | Juego de caracteres ISO |
850 | Multilingüe |
437 | Inglés de EE.UU. |
874 | Tailandés |
932 | Japonés |
936 | Chino (simplificado) |
949 | Coreano |
950 | Chino (tradicional) |
1250 | Europa Central |
1251 | Cirílico |
1253 | Griego |
1254 | Turco |
1255 | Hebreo |
1256 | Árabe |
Cuando el servidor federado DB2 y Microsoft SQL Server ejecutan distintas páginas de códigos del Soporte de idiomas nacionales (NLS), se deben configurar las fuentes de datos de Microsoft SQL Server para que correspondan con estos equivalentes o bien el código del cliente debe ser capaz de detectar la discrepancia y marcarla como un error o correlacionar los datos utilizando su propia semántica. Si no se encuentra ninguna tabla de conversión entre la página de códigos fuente y la página de códigos de destino, DB2 emite un mensaje de error. Consulte la documentación de Microsoft SQL Server para obtener más información.