Para conectar o DB2 Ao SAS precisaremos entender que ele é um banco de dados que utiliza uma arquitetura um pouco diferente em seus drivers em especial o Driver ODBC roda em um formato antigo ( 32bits ) e isso pode trazer alguns problemas em sua configuração mas como o SAS é uma plataforma muito bem preparada para todas as situações possíveis ele consegue suportar o DB2 Tranquilamente sem problemas pois existe uma maneira de fazer com que seu Driver ODBC aceite conexões em 32 bits e neste documento irei explicar como realizar desde a configuração do ODBC INI até a conexão com o SAS passo a passo para deixar mais simples qualquer outra conexão que seja necessária entre DB2 e SAS.
Configuração
Para iniciarmos a configuração primeiramente teremos que selecionar um banco de dados para esta configuração, em nosso caso iremos utilizar o seguinte TESTEDB primeiramente precisamos verificar se nosso banco de dados esta aceitando a conexão com o usuário que iremos realizar a conexão Via ODBC e para isso iremos usar o seguinte usuário db2sas e para realizar o teste rodaremos o seguinte comando
db2 connect to TESTEDB user db2sas
E então se estivermos conectando corretamente devemos receber o seguinte Output:
Após isso podemos seguir para o próximo passo
Configuração via DB2CLI
Para realizar esta configuração iremos utilizar uma ferramenta CLI do nosso DB2 que é responsável por registar DSN em nosso ODBC mas ele utiliza um arquivo diferente dos demais exclusivo do nosso DB2 e iremos descobrir qual ele é um pouco mais a frente mas como primeiro passo iremos rodar o seguinte comando para criarmos um DSN
db2cli writecfg add -dsn db2sas -database TESTEDB -host vm4041.vmwarenet -port 50000
Caso tudo corra bem você deve receber o seguinte output:
Este comando cria um DSN no seguinte arquivo
/home/db2inst2/sqllib/cfg/db2dsdriver.cfg**
Caso queira validar se tudo correu bem basta digitar o seguinte comando
cat /home/db2inst2/sqllib/cfg/db2dsdriver.cfg
Caso tudo tenha sido criado corretamente ira receber o seguinte output:
Após isso podemos passar para a configuração de nosso ODBC INI
Configurando ODBC INI
A configuração do DB2 para este serviço é bem simples bastando apenas passar o driver que iremos utilizar que fica no seguinte caminho:
/opt/ibm/db2/V11.5/lib64/libdb2.so
Porem temos uma ressalva aqui o nome que iremos definir para o DSN tem que ser o mesmo que definimos no CLI para que funcione corretamente, então no nosso caso nosso dsn será definido da seguinte maneira
[db2sas] Driver = /opt/ibm/db2/V11.5/lib64/libdb2.so
Simples não?
Após isso podemos testar a conexão através do isql e faremos isso através do seguinte comando
isql db2sas db2sas SuaSenha -v
Se tudo correr bem devemos receber o seguinte output:
Após isso podemos rodar uma query para validar se esta tudo correto e para isso iremos rodar o seguinte comando
Select * from db2teste;
Caso esteja tudo certo receberemos o seguinte Output:
Após esta validação estar feita podemos seguir para o próximo passo
Configurações SAS
Como dito anteriormente o DB2 utiliza uma lib 32 bits para realizar a conexão com o Banco via ODBC então teremos que realizar algumas mudanças em alguns arquivos internos do SAS para que possamos realizar esta conexão, mas primeiramente iremos realizar a configuração do arquivo padrão do SAS para acesso aos bancos de dados sasenv_local o arquivo famosos por estas configurações nele teremos que realizar duas alterações e são elas as seguinte
Exportar nossa variável de ODBCINI e realizar o load do DB2PROFILE e faremos isso da seguinte forma
Primeiramente iremos editar o arquivo através do seguinte comando, isso claro logado com o usuário SAS em nosso sistema operacional
vi /sas/sasbin/SASFoundation/9.4/bin/sasenv_local
Após entrarmos no arquivo iremos realizar as seguintes adições:
ODBCINI=/etc/odbc.ini export ODBCINI . /home/db2inst2/sqllib/db2profile
E esta feito a primeira parte da configuração esta pronta.
A segunda parte pode ser algo diferente mas teremos que fazer para que seja possível acessar ao nosso banco de dados
Essa será uma configuração onde teremos que realizar a alteração dos arquivos de ODBC do próprio SAS de 64bits para 32bits e faremos isso no seguinte caminho
/sas/sasbin/SASFoundation/9.4/sasexe
Neste caminho você terá que executar os seguintes comandos para alterar os arquivos SAS
mv sasodb sasodb.orig mv sasioodb sasioodb.orig
E então você terá alterado os arquivos agora será necessário apontar para os arquivos 32 Bits e faremos isso através do seguinte comando
ln -s sasodb_u sasodb ln -s sasioodb_u sasioodb
Para validar se tudo correu bem pode rodar o seguinte comando
ls -l *odb*
E se tudo correu bem ir receber o seguinte Output:
/sas/sasbin/SASFoundation/9.4/sas -nodms
E deve rodar o seguinte comando para criar a lib db2
libname db2teste odbc dsn=db2sas user=db2sas password=SuaSenha;
E se tudo estiver certo devera receber o seguinte output:
E então iremos realizar a validação do acesso aos dados da tabela realizando o seguinte comando
data teste; set db2teste.db2teste; run; proc print data=work.teste;run;
E se tudo estiver correto devemos receber o seguinte output:
E pronto seu banco de dados DB2 já esta sendo acessado pelo ODBC Via SAS!
