Antes de incluir as origens de dados do servidor Microsoft SQL em um servidor federado do DB2, é preciso instalar e configurar o driver ODBC no servidor federado. Consulte os procedimentos de instalação na documentação que é fornecida com o driver ODBS, para obter detalhes específicos sobre como instalar o driver ODBC.
Para configurar o servidor federado para acessar os dados armazenados nas origens de dados do servidor Microsoft SQL, você precisa:
Este capítulo discute as etapas 3 e 4.
As instruções neste capítulo aplicam-se às plataformas Windows NT e AIX. As diferenças específicas da plataforma são observadas onde elas ocorrem.
Após instalar o driver ODBC e o DB2 Relational Connect, inclua as origens de dados do Microsoft SQL Server em seu servidor federado utilizando estas etapas:
Essas etapas são explicadas com detalhes nas seções a seguir.
Defina variáveis de ambiente da origem de dados modificando o arquivo db2dj.ini e emitindo o comando db2set. O arquivo db2dj.ini contém informações de configuração para conectar-se às origens de dados do Microsoft SQL Server. O comando db2set atualiza o registro de perfil do DB2 com suas definições.
Em um sistema do banco de dados particionado, você pode utilizar um único arquivo db2dj.ini para todos os nós em uma instância específica ou pode utilizar um único arquivo db2dj.ini para um ou mais nós em uma instância específica. Um sistema de banco de dados não-particionado pode ter apenas um arquivo db2dj.ini por instância.
Para definir as variáveis de ambiente:
ODBCINI=$HOME/.odbc.ini DJX_ODBC_LIBRARY_PATH=<path to the Merant driver>/lib DB2ENVLIST=LIBPATH
Emita o comando db2set para atualizar o registro do perfil do DB2 com suas mudanças. A sintaxe de db2set é dependente da estrutura do sistema do banco de dados:
db2set DB2_DJ_INI=<path to ini file>/db2dj.ini
db2set -g DB2_DJ_INI=<path to ini file>/db2dj.ini
db2set -i INSTANCEX 3 DB2_DJ_INI=$HOME/sqllib/cfg/node3.ini
em que:
Para definir o caminho à biblioteca cliente, emita estes comandos:
db2set DB2LIBPATH=<path para a biblioteca cliente Merant> db2set DB2ENVLIST=LIBPATH
O script de shell djxlink.sh liga as bibliotecas do cliente às bibliotecas do wrapper. Para executar o script de shell:
djxlink
Se achar que o período de tempo necessário para acessar a origem de dados do Microsoft SQL Server tem sido irregular, você poderá melhorar o desempenho definindo a variável de ambiente DB2_DJ_COMM para carregar o wrapper quando o servidor federado é inicializado, em vez de quando você tenta acessar a origem de dados. Defina a variável de ambiente DB2_DJ_COMM para incluir a biblioteca wrapper que corresponde ao wrapper especificado na Etapa 5. Por exemplo:
db2set DB2_DJ_COMM=djxmssql3.dll
db2set DB2_DJ_COMM=libmssql3.a
Verifique se não existem espaços em nenhum lado do sinal de igual (=).
Consulte a publicação DB2 SQL Reference para obter mais informações sobre os nomes da biblioteca wrapper.
Para assegurar-se de que as variáveis de ambiente estejam definidas no programa, recicle a instância do DB2. Quando você reciclar a instância, atualize a instância do DB2 para aceitar as alterações feitas. Recicle a instância DB2, emitindo os seguintes comandos:
db2stop db2start
O DB2 Universal Database possui dois protocolos diferentes, chamados
wrappers, que você pode utilizar para acessar as origens de dados do Microsoft
SQL Server. Wrappers são mecanismos que os servidores federados
utilizam para comunicar-se com as origens de dados e recuperar dados dessas
fontes. O wrapper que você utiliza depende da platarfoma na qual o DB2
Universal Database está sendo executado. Utilize a Tabela 3 como um guia, para selecionar o wrapper apropriado.
Drivers ODBC | Plataforma | Nome do Wrapper |
Driver ODBC 3.0 (ou superior) | Windows NT | DJXMSSQL3 |
Driver MERANT DataDirect Connect ODBC 3.6 | AIX | MSSQLODBC3 |
Utilize a instrução CREATE WRAPPER para especificar o wrapper que será utilizado para acessar as origens de dados do Microsoft SQL Server. O exemplo a seguir mostra uma instrução CREATE WRAPPER:
CREATE WRAPPER DJXMSSQL3
em que DJXMSSQL3 é o nome do wrapper padrão utilizado em um servidor DB2 para Windows NT (utilizando o driver ODBC 3.0). Se você tiver um servidor DB2 para AIX, poderá especificar o nome do wrapper MSSQLODBC3.
Você pode substituir o nome do wrapper padrão por um nome de sua escolha. Entretanto, se isso acontecer, você deverá incluir o parâmetro LIBRARY e o nome da biblioteca wrapper para seu servidor federado na instrução CREATE WRAPPER. Por exemplo:
CREATE WRAPPER wrapper_name LIBRARY 'djxmssql3.dll'
em que wrapper_name é o nome que você deseja fornecer ao wrapper e 'djxmssql3.dll' é o nome da biblioteca.
CREATE WRAPPER wrapper_name LIBRARY 'libmssql3.a'
em que wrapper_name é o nome que você deseja fornecer ao wrapper e 'libdjxmssql.a' é o nome da biblioteca.
Consulte a instrução CREATE WRAPPER na publicação DB2 SQL Reference para obter mais informações sobre os nomes de bibliotecas do wrapper.
Utilize a instrução CREATE SERVER para definir cada origem de dados do Microsoft SQL Server ao qual você deseja conectar-se. Por exemplo:
CREATE SERVER sqlserver TYPE MSSQLSERVER VERSION 7.0 WRAPPER djxmssql3 OPTIONS (NODE 'sqlnode', DBNAME 'database_name')
em que:
Embora o nome do nó (nome do DSN do Sistema) esteja especificado como uma opção na instrução CREATE SERVER, ele é requerido para as origens de dados do Microsoft SQL Server. No Windows, obtenha o DSN na guia DSN do Sistema da ferramenta Windows ODBC Data Source Administrator. No AIX, obtenha o DSN do arquivo .odbc.ini no diretório inicial de proprietários de instância do DB2.
Consulte DB2 SQL Reference para opções adicionais que você pode utilizar com a instrução CREATE WRAPPER.
Embora o nome do banco de dados esteja especificado como uma opção na instrução CREATE SERVER, ele é requerido para as origens de dados do Microsoft SQL Server.
Se um ID do usuário ou senha no servidor federado for diferente de um ID do usuário ou senha de uma origem de dados do Microsoft SQL Server, utilize a instrução CREATE USER MAPPING para mapear o ID do usuário local para o ID do usuário e para a senha definidos na origem de dados do Microsoft SQL Server; por exemplo:
CREATE USER MAPPING FOR db2user SERVER server_name OPTIONS (REMOTE_AUTHID 'mssqluser', REMOTE_PASSWORD 'day2night')
em que:
Consulte a publicação DB2 SQL Reference para obter as opções adicionais que você pode utilizar com a instrução CREATE USER MAPPING.
Atribua um pseudônimo para cada exibição ou tabela localizadas em sua origem de dados do Microsoft SQL Server que você deseja acessar. Você utilizará esses pseudônimos quando consultar a origem de dados do Microsoft SQL Server. Utilize a instrução CREATE NICKNAME para atribuir um pseudônimo. Os pseudônimos fazem distinção entre maiúsculas e minúsculas. O exemplo a seguir mostra uma instrução CREATE NICKNAME:
CREATE NICKNAME mssqlsales FOR server_name.salesdata.europe
em que:
data_source_server_name.remote_schema_name.remote_table_name
As aspas duplas são recomendadas para as partes remote_schema_name e remote_table_name do pseudônimo.
Quando você cria um pseudônimo, o DB2 tenta acessar as tabelas do catálogo de origens de dados (o Microsoft SQL Server refere-se a esas como tabelas do sistema). Isso testa a conexão à origem de dados. Se a conexão falhar, você receberá uma mensagem de erro.
Repita essa etapa para todas as tabelas e exibições do banco de dados para o qual você deseja criar pseudônimos.
Para obter mais informações sobre a instrução CREATE NICKNAME, consulte a publicação DB2 SQL Reference. Para obter mais informações sobre os pseudônimos em geral e para verificar os mapeamentos dos tipos de dados, consulte a publicação Guia de Administração do DB2.
Se você estiver tendo problemas ao acessar a origem de dados, poderá obter as informações de rastreio do ODBC para analisar e resolver esses problemas. Para garantir que o rastreio do ODBC funcione corretamente, utilize a ferramenta de rastreio fornecida pelo ODBC Data Source Administrator. Ativar o rastreio impacta o desempenho do sistema, portanto, você deve desligar o rastreio quando tiver resolvido os problemas.
O Microsoft SQL Server suporta muitas opções comuns da página de códigos do
NLS (Suporte a Idioma Nacional) que o UDB do DB2 suporta. As origens de
dados que estão utilizando o mesmo conjunto de códigos que o DB2 não requerem
conversão. A Tabela 3 lista as páginas de códigos que são suportadas
pelo DB2 Universal Database e Microsoft SQL Server.
Tabela 4. Opções da Página de Códigos do DB2 UDB e do Microsoft SQL Server
Página de código | Idioma suportado |
---|---|
1252 | Conjunto de caracteres ISO |
850 | Multilíngüe |
437 | Inglês Norte-americano |
874 | Tai |
932 | Japonês |
936 | Chinês (simplificado) |
949 | Coreano |
950 | Chinês (tradicional) |
1250 | Centro-europeu |
1251 | Cirílico |
1253 | Grego |
1254 | Turco |
1255 | Hebraico |
1256 | Árabe |
Quando o servidor federado do DB2 e o Microsoft SQL Server estiverem executando diferentes páginas de códigos do NLS (Suporte a Idioma Nacional), as origens de dados do servidor Microsoft SQL devem ser configuradas para corresponderem a esses equivalentes ou o código cliente deve conseguir detectar a inconsistência e sinalizá-la como um erro ou mapear os dados utilizando sua própria semântica. Se nenhuma tabela de conversão puder ser encontrada da página de códigos de origem para a página de códigos de destino, o DB2 emitirá uma mensagem de erro. Consulte a documentação do Microsoft SQL Server para obter mais informações.