Notas sobre o Release


6.8 Acessando Origens de Dados do Informix (Novo Capítulo)

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:

  1. Instalar o DB2 Relational Connect. Consulte a seção 6.3.4, Instalando o DB2 Relational Connect.
  2. Aplicar o FixPak mais recente do DB2.
  3. Incluir origens de dados do Informix no servidor federado.

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.

6.8.1 Incluindo Origens de Dados do Informix em um Servidor Federado

Para incluir uma origem de dados do Informix em um servidor federado, você precisa:

  1. Definir as variáveis de ambiente e atualizar o registro do perfil.
  2. Ligar o DB2 ao software Informix Client.
  3. Reciclar a instância do DB2.
  4. Criar o arquivo sqlhosts do Informix.
  5. Criar o wrapper.
  6. Opcional: Definir a variável de ambiente DB2_DJ_COMM.
  7. Criar um servidor.
  8. Criar um mapeamento do usuário.
  9. Criar pseudônimos para tabelas, exibições e sinônimos do Informix.

Essas etapas são explicadas com detalhes nesta seção.

6.8.1.1 Etapa 1: Definir as Variáveis de Ambiente e Atualizar o Registro do Perfil

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:

  1. Edite o arquivo db2dj.ini localizado no diretório sqllib/cfg e defina as seguintes variáveis de ambiente:
    Nota:
    Você mesmo pode criar esse arquivo se ele ainda não estiver no sistema.

    INFORMIXDIR

    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
    

    INFORMIXSERVER

    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 dessa 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.

    INFORMIXSQLHOSTS

    Se você estiver utilizando o caminho padrão para o arquivo sqlhosts do Informix ($INFORMIXDIR/etc/sqlhosts), não será necessário definir essa 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 essa variável para o nome completo do caminho do arquivo sqlhosts do Informix. Por exemplo:

    INFORMIXSQLHOSTS=/informix/csdk/etc/my_sqlhosts
     
    
  2. Atualize o arquivo .profile da instância do DB2 com as variáveis de ambiente do Informix. Você pode fazer isso emitindo os seguintes comandos para definir e exportar cada variável:
    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.

  3. Execute a instância do DB2 .profile digitando:
    . .profile
    
  4. Emita o comando db2set para atualizar o registro do perfil do DB2 com suas mudanças. A sintaxe desse comando, db2set, é dependente da estrutura do sistema do banco de dados. Essa etapa será necessária apenas se você estiver utilizando o arquivo db2dj.ini em qualquer uma das seguintes estruturas do sistema do banco de dados:

    Se você estiver utilizando o arquivo db2dj.ini em um sistema de banco de dados não-particionado ou se desejar que o arquivo db2dj.ini se aplique somente ao nó atual, emita:

    db2set DB2_DJ_INI=<path to sqllib>/sqllib/cfg/db2dj.ini 
    
    Nota:
    Os nomes dos caminhos desta seção devem ser completos. Por exemplo, my_home/my_instance/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=<path to sqllib>/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 um nó específico, emita:

    db2set -i INSTANCEX 3 DB2_DJ_INI=sqllib/cfg/node3.ini 
    

    em que:

    INSTANCEX
    É o nome da instância.

    3
    É o número do nó conforme listado no arquivo db2nodes.cfg.

    node3.ini
    É a versão modificada e renomeada do arquivo db2dj.ini.

6.8.1.2 Etapa 2: Ligar o DB2 ao Software Informix Client

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
Nota:

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 (root) 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.

6.8.1.3 Etapa 3: Reciclar a Instância do DB2

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:

No DB2 para servidores AIX, Solaris Operating Environment e HP-UX:
db2stop
db2start

6.8.1.4 Etapa 4: Criar o Arquivo sqlhosts do Informix

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 ao executar uma operação que exija conexão com o servidor de banco de dados Informix.

6.8.1.5 Etapa 5: Criar o Wrapper

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 se comunicar com as origens de dados e recuperar dados delas. 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 SQL Reference para obter mais informações sobre os nomes de biblioteca do wrapper.

Os nomes de biblioteca do wrapper para o Informix são:

6.8.1.6 Etapa 6: Opcional: Definir a Variável de Ambiente DB2_DJ_COMM

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. Essa 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:

No DB2 para servidores AIX:
DB2_DJ_COMM='libinformix.a'
export DB2_DJ_COMM

No DB2 para servidores Solaris Operating Environment:
DB2_DJ_COMM='libinformix.so'
export DB2_DJ_COMM

No DB2 para servidores HP-UX:
DB2_DJ_COMM='libinformix.sl'
export DB2_DJ_COMM

Verifique se não existem espaços 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' (DB2 p/ servidores Solaris OE)
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.

6.8.1.7 Etapa 7: Criar o Servidor

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')

em que:

server_name
É um nome que você atribui ao servidor de banco de dados Informix. Esse nome deve ser único e não duplicar nenhum outro server_name definido no banco de dados federado. O server_name não pode ser igual ao de qualquer espaço de tabelas no banco de dados federado.

TYPE server_type
Especifica o tipo de origem de dados para o qual você está configurando o acesso.
Nota:
Para o wrapper do Informix, o server_type deve ser informix.

VERSION server_version
É a versão do servidor de banco de dados Informix que você deseja acessar. As versões do Informix suportadas são 5, 7, 8 e 9.

WRAPPER wrapper_name
É o nome especificado na instrução CREATE WRAPPER.

NODE 'node_name'
É o nome do nó no qual o server_name reside. O node_name deve ser definido no arquivo sqlhosts do Informix (consulte a etapa 4). Embora o node_name esteja especificado como uma opção na instrução CREATE SERVER SQL, ele é obrigatório para origens de dados do Informix. Esse valor faz distinção entre maiúsculas e minúsculas. Consulte a publicação DB2 SQL Reference para obter informações sobre as opções adicionais.

DBNAME 'database_name'
É o nome do banco de dados Informix que você deseja acessar.

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')

6.8.1.8 Etapa 8: Criar um Mapeamento do Usuário

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')

em que:

local_userid
É o ID de usuário local que você está mapeamento para um ID de usuário definido em uma origem de dados do Informix.

SERVER server_name
É o nome da origem de dados do Informix que você definiu na instrução CREATE SERVER.

REMOTE_AUTHID 'remote_userid'
É o ID de usuário no servidor de banco de dados Informix para o qual você está mapeando o local_userid. Esse valor faz distinção entre maiúsculas e minúsculas, a menos que você defina a opção FOLD_ID do servidor para 'U' ou 'L' na instrução CREATE SERVER.

REMOTE_PASSWORD 'remote_password'
É a senha associada ao remote_userid. Esse valor faz distinção entre maiúsculas e minúsculas, a menos que você defina a opção FOLD_PW do servidor para 'U' ou 'L' na instrução CREATE SERVER.

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.

6.8.1.9 Etapa 9: Criar Pseudônimos para Tabelas, Exibições e Sinônimos do Informix

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" 

em que:

nickname
É um pseudônimo exclusivo utilizado para identificar a tabela, exibição ou sinônimo do Informix.

server_name."remote_schema_name"."remote_table_name"
É um identificador de três partes do objeto remoto.

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ê criar 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 Guia de Administração do DB2.


[ Início da Página | Página Anterior | Próxima Página | Índice | Índice Remissivo ]