Acessando outros bancos através do Oracle – Serviços Heterogêneos(HS) – Parte 01

I – Introdução:

 

Em diversas situações temos a necessidade de integrar bases de dados que se encontram em Sistemas de Gerenciamento de Dados diferentes(Oracle, MS SQL Server, MySQL, DB2, Informix, etc...). Existem diversas formas de realizar essa tarefa,  transferências de dados via arquivos de carga, comunicação via serviços(XML, webservices), acesso direto via Gateways de banco de dados, etc...nesse artigo trataremos da conectividade entre o SGBD Oracle e outros SGBDs  Não-Oracle lançando mão de Serviços Heterogêneos HS.

 

HS, Herterogeneous Services, no SGBD Oracle permite a conexão entre SGBDs Oracle e Não-Oracle, sendo parte integrante do produto, inclusive na versão 10XE (Express Edition – gratuita mas com restrições de capacidade). Os dois serviços fornecidos por HS são:

 

·                                          Oracle Transparent Gateway – Que permite  o acesso a outras bases de forma totalmentetransparente, nesse caso não é necessário levar em conta, por exemplo, as diferenças de dialeto no SQL, ou o fato do dicionário de dados do Oracle ser inteiramente em maiúscula, trataremos desses pontosoportunamente.

 

·                                          Generic Connectivity – Que permite a conexão entre as bases de dados utilizando-se  de drivesODBC(acrônimo de:Open Data Base Connectivity) ou OLEDB. Esse tipo de conexão, Generic Connectivity, será o foco do presente artigo.

 

 

II – Características de uma Conexão Genérica.

 

Arquitetura de conexão genérica é implementada utilizando-se  um  Agente de ODBC de HS.Um agente de ODBC é incluído como parte de seu SGBD Oracle e instalado diretório de instalação ORACLE_HOME.

          

 

III –Estabelecendo uma conexão entre o SGBD Oracle e o MySQL

 

Iremos realizar um passo a passo conectando o SGBD Oracle ao MySQL, versão 5 ou superior, via uma conexão genérica ODBC, nesse exemplo usaremos um SGBD Oracle 10G instalado em um ambiente Windows.

 

1.    Providencie a instalação do drive de ODBC na máquina onde está instalado o Oracle. Esse drive pode ser obtido em: http://dev.mysql.com/downloads/connector/odbc/5.1.html

 

 

2.    Proceda a inclusão de uma entrada de ODBC no Windows para o banco MySQL. Dois detalhes importantes: 1) Esses passos são genéricos servem para qualquer banco Não-Oracle; 2)Não esquecer que esse nome, dado na entrada de ODBC, será utilizado abaixo.

 

3.    Nesse momento iremos inserir uma entrada no arquivo tnsnames.ora, em Oracle_Home\NETWORK\ADMIN, em máquinas Unix $ORACLE_HOME/network/admin.

 

Exemplo de arquivo tnsnames.ora

 

# tnsnames.ora Network Configuration File: C:\oracle\product\10.2.0\db_1\network\admin\tnsnames.ora

# Generated by Oracle configuration tools.

 

BABYLON =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = EXCALIBUR)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME =CAMELOT)

    )

  )

 

MySQL =                            # Esse nome deve ser o mesmo que foi dado na entrada de ODBC
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = EXCALIBUR)(PORT = 1521))
)
(CONNECT_DATA =
(SID = MySQL)                # o SID  deve ser o mesmo que foi dado no ODBC )
(HS=OK)
)

 

LISTENER_BABYLON =

  (ADDRESS = (PROTOCOL = TCP)(HOST = EXCALIBUR)(PORT = 1522))

 

 

EXTPROC_CONNECTION_DATA =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))

    )

    (CONNECT_DATA =

      (SID = PLSExtProc)

      (PRESENTATION = RO)

    )

  )

 

# fim do arquivo

 

Nesse arquivo criamos a entrada MySQL com o HS habilitado.