Antes de incluir origens de dados do Informix em um servidor federado DB2, você precisa instalar e configurar o software Informix Client SDK no servidor federado. Consulte os procedimentos de instalação na documentação fornecida com o software de banco de dados Informix para obter detalhes específicos sobre como instalar o software Client SDK. Como parte da instalação, certifique-se de incluir as bibliotecas do Informix Client SDK.
Para configurar o servidor federado para acessar os dados armazenados nas origens de dados do Informix, você precisa:
Este capítulo descreve a etapa 3.
As instruções neste capítulo aplicam-se aos sistemas operacionais AIX, Solaris Operating Environment e HP-UX. Diferenças específicas dos sistemas operacionais serão indicadas quando ocorrerem.
Para incluir uma origem de dados do Informix em um servidor federado, você precisa:
Estas etapas são explicadas com detalhes nesta seção.
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 sobre o software Informix Client instalado no servidor federado. 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 você 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:
Defina a variável de ambiente INFORMIXDIR para o caminho do diretório no qual o software Informix Client SDK está instalado; por exemplo:
INFORMIXDIR=/informix/csdk
Esta variável identifica o nome do servidor padrão Informix.
INFORMIXSERVER=inf93
Nota: Embora o wrapper do Informix não utilize o valor desta variável, o Informix Client requer a definição desta variável. O wrapper utiliza o valor da opção de servidor node, que especifica o servidor de banco de dados Informix que você deseja acessar.
Se você estiver utilizando o caminho padrão para o arquivo sqlhosts do Informix ($INFORMIXDIR/etc/sqlhosts), não será necessário definir esta variável. No entanto, se você estiver utilizando um caminho para o arquivo sqlhosts do Informix que seja diferente do padrão, será necessário definir esta variável para o nome completo do caminho do arquivo sqlhosts do Informix. Por exemplo:
INFORMIXSQLHOSTS=/informix/csdk/etc/my_sqlhosts
PATH=$INFORMIXDIR/bin:$PATH export PATH INFORMIXDIR=<informix_client_path> export INFORMIXDIR
em que informix_client_path é o caminho no servidor federado para o diretório no qual o Informix Client está instalado. Utilize aspas duplas (") em torno do caminho se um nome no caminho tiver um espaço em branco.
. .profile
Se você estiver utilizando o arquivo db2dj.ini em um sistema de banco de dados não-particionado ou se você quiser que o arquivo db2dj.ini se aplique ao nó atual somente, emita:
db2set DB2_DJ_INI=sqllib/cfg/db2dj.ini
Se você estiver utilizando o arquivo db2dj.ini em um sistema do banco de dados particionado e se quiser que os valores no arquivo db2dj.ini se apliquem a todos os nós dentro dessa instância, emita:
db2set -g DB2_DJ_INI = sqllib/cfg/db2dj.ini
Se você estiver utilizando o arquivo db2dj.ini em um sistema do banco de dados particionado e se quiser que os valores no arquivo db2dj.ini se aplique a um nó específico, emita:
db2set -i INSTANCEX 3 DB2_DJ_INI=sqllib/cfg/node3.ini
onde:
Para permitir acesso às origens de dados do Informix, o servidor federado DB2 deverá ser editado por link para as bibliotecas do cliente. O processo de edição por link cria uma biblioteca de wrapper para cada origem de dados com a qual o servidor federado se comunicará. Ao executar o script djxlinkInformix, você cria a biblioteca de wrapper do Informix. Para emitir o script djxlinkInformix, digite:
djxlinkInformix
O script djxlinkInformix cria somente a biblioteca wrapper do Informix. Há um outro script, o script djxlink que tenta criar uma biblioteca wrapper para cada origem de dados que o DB2 Universal Database suporta (Oracle, Microsoft SQL Server, etc.). Se você tiver somente o software cliente para algumas das origens de dados instaladas, você receberá uma mensagem de erro para cada uma das origens de dados que estiverem faltando, quando emitir o script djxlink.
Você precisa de autorização do UNIX Systems Administrator (raiz) para executar os scripts djxlinkInformix e djxlink.
Os scripts djxlinkInformix e djxlink gravam mensagens de aviso e de erro detalhadas em um arquivo específico, dependendo do sistema operacional. Por exemplo, no AIX, o script djxlinkInformix grava em /usr/lpp/db2_07_01/lib/djxlinkInformix.out e o script djxlink grava em /usr/lpp/db2_07_01/lib/djxlink.out.
Os scripts djxlinkInformix e djxlink criam a biblioteca wrapper em um diretório específico, dependendo do sistema operacional. Por exemplo, no AIX, a biblioteca wrappers libinformix.a é criada no diretório /usr/lpp/db2_07_01/lib.
Verifique as permissões na biblioteca wrappers libinformix.a depois que ela for criada para certificar-se de que ela pode ser lida e executada por proprietários de instância de DB2. Se os proprietários de instância não estiverem no grupo do Sistema, permissões na biblioteca wrapper libinformix.a precisarão ser -rwxr-xr-x root system...libinformix.a.
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.
Emita os comandos a seguir, para reciclar a instância do DB2:
db2stop db2start
O arquivo especifica a localização de cada servidor de banco de dados Informix e o tipo de conexão (protocolo) para o servidor de banco de dados. Há várias formas de criar esse arquivo. Você pode copiá-lo de outro sistema que tenha Informix Connect ou Informix Client SDK conectado a um servidor Informix. Você pode também configurar o Informix Client SDK no servidor do DB2 para conectar a um servidor Informix, que cria o arquivo sqlhosts.
Depois que o arquivo sqlhosts for copiado ou criado, o proprietário de instância do DB2 deve utilizar Informix dbaccess (se ele estiver no servidor DB2) para conectar e consultar o servidor Informix. Isso estabelecerá que o Informix Client SDK é capaz de conectar-se ao servidor Informix, antes que você tente configurar o DB2 Relational Connect para trabalhar com o Informix Client SDK.
Para maiores informações sobre como configurar esse arquivo, consulte o manual do Informix Administrators Guide for Informix Dynamic Server.
Aviso: |
---|
Se você não definir o nome do servidor de banco de dados Informix no arquivo sqlhosts, receberá um erro quando executar uma operação que exija conexão com o servidor de banco de dados Informix. |
Utilize a instrução CREATE WRAPPER para especificar o wrapper que será utilizado para acessar origens de dados do Informix. Wrappers são mecanismos que os servidores federados utilizam para comunicar-se com e recuperar dados das origens de dados. O exemplo a seguir mostra uma instrução CREATE WRAPPER:
CREATE WRAPPER informix
em que informix é o wrapper_name; informix é o nome padrão do wrapper utilizado com o software Informix Client SDK.
Você pode substituir o nome do wrapper padrão por um nome de sua escolha. Entretanto, se isso acontecer, será necessário também incluir o parâmetro LIBRARY e o nome da biblioteca wrapper para seu servidor federado na instrução CREATE WRAPPER. Consulte a instrução CREATE WRAPPER na publicação DB2 SOL Reference para obter mais informações sobre os nomes de biblioteca do wrapper.
Os nomes de biblioteca do wrapper para o Informix são:
Para melhorar o desempenho quando a origem de dados do Informix for acessada, defina a variável de ambiente DB2_DJ_COMM no servidor federado. Esta variável determina se um wrapper é carregado quando o servidor federado é inicializado. Defina a variável de ambiente DB2_DJ_COMM para incluir a biblioteca do wrapper que corresponde ao wrapper especificado na etapa anterior. Se você estiver utilizando as interfaces de linha de comandos Korn shell ou Bourne shell, utilize estes comandos de exportação:
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
Assegure-se de que não haja nenhum espaço em nenhum lado do sinal de igual (=).
Se você estiver utilizando a interface de linha de comandos da shell C, defina as variáveis de ambiente utilizando estes comandos:
setenv DB2_DJ_COMM 'libinformix.a' (servidores DB2 para AIX) setenv DB2_DJ_COMM 'libinformix.so' (servidores DB2 para Solaris Operating Environment) setenv DB2_DJ_COMM 'libinformix.sl' (servidores DB2 para HP--UX)
Consulte a publicação DB2 SQL Reference para obter mais informações sobre os nomes de biblioteca do wrapper e a variável de ambiente DB2_DJ_COMM.
Utilize a instrução CREATE SERVER para definir cada servidor Informix cujas origens de dados você deseja acessar. A sintaxe para essa instrução é:
CREATE SERVER server_name TYPE server_type VERSION server_version WRAPPER wrapper_name OPTIONS (NODE 'node_name', DBNAME 'database_name')
onde:
Segue um exemplo da instrução CREATE SERVER:
CREATE SERVER asia TYPE informix VERSION 9 WRAPPER informix OPTIONS (NODE 'abc', DBNAME 'sales')
As opções FOLD_ID e FOLD_PW do servidor afetam se o wrapper deverá transformar o ID de usuário e a senha em letras maiúsculas ou minúsculas antes de enviá-los para o Informix. Um exemplo da instrução CREATE SERVER com as opções FOLD_ID e FOLD_PW do servidor é:
CREATE SERVER asia TYPE informix VERSION 9 WRAPPER informix OPTIONS (NODE 'abc', DBNAME 'sales', FOLD_ID 'U', FOLD_PW 'U')
Se um ID de usuário ou senha no servidor federado DB2 for diferente de um ID de usuário ou senha em uma origem de dados do Informix, utilize a instrução CREATE USER MAPPING para mapear o ID de usuário local para o ID de usuário e senha definidos na origem de dados do Informix; por exemplo:
CREATE USER MAPPING FOR local_userid SERVER server_name OPTIONS (REMOTE_AUTHID 'remode_userid', REMOTE_PASSWORD 'remote_password')
onde:
Segue um exemplo da instrução CREATE USER MAPPING:
CREATE USER MAPPING FOR robert SERVER asia OPTIONS (REMOTE_AUTHID 'bob', REMOTE_PASSWORD 'day2night')
Você pode utilizar o registro especial USER do DB2 para mapear o ID de autorização da pessoa que está emitindo a instrução CREATE USER MAPPING para o ID de autorização da origem de dados especificado na opção REMOTE_AUTHID do usuário. Segue um exemplo da instrução CREATE USER MAPPING que inclui o registro especial USER:
CREATE USER MAPPING FOR USER SERVER asia OPTIONS (REMOTE_AUTHID 'bob', REMOTE_PASSWORD 'day2night')
Consulte a publicação DB2 SQL Reference para obter mais informações sobre opções adicionais.
Atribua um pseudônimo para cada tabela, exibição ou sinônimo do Informix localizado na origem de dados do Informix. Os pseudônimos podem conter 128 caracteres. Você utilizará esses pseudônimos quando consultar a origem de dados do Informix. O DB2 transformará os nomes de servidor, esquema e tabela em letras maiúsculas, a menos que você os coloque entre aspas duplas ("). O exemplo a seguir mostra uma instrução CREATE NICKNAME:
CREATE NICKNAME nickname FOR server_name."remote_schema_name"."remote_ table_name"
onde:
Segue um exemplo da instrução CREATE NICKNAME:
CREATE NICKNAME salesjapan FOR asia."salesdata"."japan"
Repita essa etapa para cada tabela ou exibição para a qual você deseja criar um pseudônimo. Quando você cria o pseudônimo, o DB2 utilizará a conexão para consultar o catálogo de origens de dados. Essa consulta testa sua conexão à origem de dados. Se a conexão não funcionar, você receberá uma mensagem de erro.
Consulte a publicação DB2 SQL Reference para obter mais informações sobre a instrução CREATE NICKNAME. Para obter mais informações sobre os pseudônimos em geral e para verificar os mapeamentos de tipos de dados, consulte a publicação DB2 Administration Guide.