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

4.   Realize a inclusão de uma entrada no arquivo Listerner.ora, sua localização é o mesmo que o item anterior, tnsnames.ora.

 

Exemplo de arquivo listener.ora

 

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

# Generated by Oracle configuration tools.

 

SID_LIST_LISTENER =

  (SID_LIST =

    (SID_DESC =

      (SID_NAME = PLSExtProc)

      (ORACLE_HOME = C:\oracle\product\10.2.0\db_1)

      (PROGRAM = extproc)

    )

 (SID_DESC =
(SID_NAME = MySQL) # SID é o mesmo que foi dado no ODBC
(ORACLE_HOME = C:\oracle\product\10.2.0\db_1)

(PROGRAM = hsodbc)  # Este é o nome do executavel do hs(Agente)
)  

  )

 

LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

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

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

    )

  )

 

5.   Devemos nesse momento realizar a configuração do HS propriamente dito, para isso criaremos um arquivo em  C:\oracle\product\10.2.0\db_1\hs\admin (ORACLE_HOME\hs\admin). Um detalhenome do arquivo deverá ser init<Nome_entrada>.ora no nosso caso initMySQL.ora. o

 

# This is a sample agent init file that contains the HS parameters that are

# needed for an ODBC Agent.

 

#

# HS init parameters

#

HS_FDS_CONNECT_INFO = MySQL # Entrada do ODBC  
HS_FDS_TRACE_LEVEL = 0  # Nível do  trace 0 - 4 (Verifique a documentação) , LOG.
HS_FDS_TRACE_FILE_NAME = MySQL.trc  # Nome do arquivo de trace

 

#

# Environment variables required for the non-Oracle system

#

#set =

 

6.   Nesse momento devemos re-iniciar o Listener, podemos utilizar os seguintes comandos:

 

 

·      lsnrctl stop

·      lsnrctl start
 

 

7.   Criar um dblink no banco oracle apontado para usar o servico MySQL:

CREATE DATABASE LINK dblink_MYSQL  connect to "USER_MYSQL" identified by "PASSWORD_USER"  using     ‘MySQL’ ;    #    O usuário e senha devem estar entre aspas duplas, pois  o Oracle é case não-sensitivo e dessa foram estamos instruindo ao banco que o usuário e a senha devem ser enviado respeitando a forma o qual foram digitados(Case Sensitive).

 

8.    Concluídos esses procedimentos podemos então a partir da base Oracle acessar a base MySQL, não-Oracle, da

      seguinte forma:

 

      SELECT  * FROM  “Tabela”.@ dblink_MYSQL;

 

Nesse caso tenhamos que acessar os campos, e eles não estejam em maisuculas no Banco de Dados, teremos que fazer o seguinte:

 

        SELECT  “Nome”,”Departamento” FROM  “Departamento”.@ dblink_MYSQL;

 

Repare a necessidade das aspas duplas(“ “) em função do dicionário de dados do Oracle ser em maiúsculas todos esses campos são convertidos para maiúsculas, o que para alguns bancos acessados dessa maneira isso pode se tornar um problema.

 

Concluindo essa é mais uma  possibilidade para acessar um outro  Banco de Dados, devemos ter em foco  que essa opção deixa a dever muitas vezes em desempenho, porém sua praticidade e usabilidade para pequenos volumes de dados nos permite utilizar essa técnica para produzir um ambiente de SGBD Federalizado.

                 

IV – Para saber mais

 

http://www.databasejournal.com/features/oracle/article.php/10893_3442661_1/Making-a-Connection-from-Oracle-to-SQL-Server.htm

 

http://download-east.oracle.com/docs/cd/B19306_01/gateways.102/b14270.pdf

 

http://www.iselfschooling.com/mc4articles/odbc4sqlserver.htm

                                                                                                                          

http://www.scribd.com/doc/3146805/Oracle-Heterogeneous-Configuration-for-MySQL-with-ODBCOLEDB