Configurando conexão heterogênea e DB Link (Oracle para Firebird)

24 jul

Configurando conexão heterogênea e DB Link (Oracle para Firebird)

Design sem nome (2)

Introdução

Neste lab vamos criar um Database Link entre um banco de dados oracle e um banco de dados firebird.

O Heterogeneous Services (HS) é um componente integrado no banco de dados oracle que fornece acesso genérico a sistemas non-Oracle.
Para Acessar sistemas non-Oracle utilizando conectividade genérica (Ex. ODBC) é necessário configurar o agente Oracle Gateway. No lab vamos configurar o Oracle Gateway e Driver ODBC no mesmo servidor com SO Windows Server 2012.

Pré-requisitos

Oracle Database 11.2.0.4 ou superior.

Configurando Firebird

   --Download:  		
   https://firebirdsql	org/en/firebird-3-0/#Win64  	
     		
   --Criar Alias:  		
   C:\Arquivos de Programas\Firebird\Firebird_3_0\aliases	conf  	
     		
   --Inserir Linha:  		
   firebird = C:\firebirddb\firebird	fb  	
     		
 --Liberar Porta 3050 ou Desabilitar Firewall no Windows	  	
   		
 --Mudar Senha Padrão do SYSDBA  		
   		
 CMD> gsec -user sysdba -password masterkey  		
   		
 GSEC> modify sysdba -pw firebird  		
   		
 --Criar Database  		
   		
 CMD> C:\Program Files\Firebird\bin>isql -user SYSDBA -passsword firebird  		
 Use CONNECT or CREATE DATABASE to specify a database  		
   		
 SQL>CREATE DATABASE 'C:\firebirddb\firebird	fb';  	
   		
 -- Conectar com iSQL  		
   		
 CMD> C:\Program Files\Firebird\bin>isql;  		
   		
 --Utilize CONNECT ou CREATE DATABASE para especificar o database  		
 SQL>CONNECT "C:\firebirddb\firebird	fb" user SYSDBA password firebird;  	
   		
 --Neste ponto, o isql informará que você está conectado:  		
 DATABASE "C:\firebirddb\firebird	fb", User: sysdba  	
   		
 --Testando conexão:  		
 SQL> SELECT * FROM RDB$RELATIONS;  		
   		
 --Criando Tabela:  		
   		
 CREATE TABLE teste  		
 (  		
     from_currency   VARCHAR(10) NOT NULL,  		
     to_currency     VARCHAR(10) NOT NULL,  		
     conv_rate       FLOAT NOT NULL,      		
     update_date     DATE,  		
   		
   		
     PRIMARY KEY (from_currency, to_currency)  		
 );  		
   		
 INSERT INTO teste VALUES ('Dollar', 'CdnDlr',  1	0027,  '11/09/2012');  	
 INSERT INTO teste VALUES ('Dollar', 'Yen',     79	2400, '11/09/2012');  	
 INSERT INTO teste VALUES ('Dollar', 'SFranc',  0	9495,  '11/09/2012');  	
 INSERT INTO teste VALUES ('Dollar', 'Pound',   0	6272,  '11/09/2012');  	
 INSERT INTO teste VALUES ('Pound',  'Euro',    1	2542,  '11/09/2012');  	
 INSERT INTO teste VALUES ('Pound',  'Yen',     126	3320,'11/09/2012');  	
 INSERT INTO teste VALUES ('Yen',    'Pound',   0	0079,  '11/09/2012');  	
 INSERT INTO teste VALUES ('CdnDlr', 'Dollar',  0	9973,  '11/09/2012');  	
 INSERT INTO teste VALUES ('CdnDlr', 'Euro',    0	7857,  '11/09/2012');  	
 INSERT INTO teste VALUES ('Euro', 'Dollar',    1	2716,  '11/09/2012');  	
 commit;  		

Configurando Driver ODBC no Windows

   --Download ODBC Driver disponibilizado no site do Firebird  								
     								
   https://sourceforge	net/projects/firebird/files/firebird-ODBC-driver/2	0	5-Release/Firebird_ODBC_2	0	5	156_x64	exe/download  	
     								
   --Configurar Client Firebird > Somente se o banco de dados firebird for em outra estação	  							
     								
   Download Firebird Installer:  								
   https://github	com/FirebirdSQL/firebird/releases/download/R3_0_4/Firebird-3	0	4	33054_0_x64	exe  			
     								
 --Selecionar somente Client Components (Abaixo)  								

   --Configurar WINSQL para testar a conexão ODBC e realizar select na base Firebird  								
     								
   --Download WinSQL Trial  								
   https://bit	ly/2xJqWLW  							
     								
   --Instalar e configurar nova conexão:  								
   Data Source Name: firebird  								

   --Testar conexão e sql   	
   SQL> select * from teste;  	

Agora podemos configurar a Fonte de Dados ODBC no Windows

   --Configurar ODBC Driver no Windows  								
     								
   Abrir Administrador de Fonte de Dados ODBC (64 Bits) como ADMINSITRADOR  								
     								
   Aba: DSN de Sistema  								
     								
   Opção: Adicionar  								
   Opção: Firebird/InterBase(r) driver  								
     								
 --### Firebird ODBC Setup ###  								
 Data Source: firebird  								
 Description:   								
 Database: localhost:C:\firebirddb\firebird	fb  							
 Client: C:\Program Files\Firebird\Firebird_ODBC\fbclient	dll  							
 Database Account:  SYSDBA  								
 Password: *******

Configurar Oracle Gateway (Windows)

Recomendo configurar o Gateway em ambiente Windows.

   --Download  								
   https://www	oracle	com/technetwork/database/enterprise-edition/downloads/112010-win64soft-094461	html  					
     								
   --Instalar e configurar o Oracle Gateway + Listener (netca)  								
     								
   --Configurar HS no gateway home:  								
   Caminho: C:\app\kelwin\product\11	2	0\gateway\hs\admin  						
     								
   --Criar arquivo init<sid>	ora  							
 initfirebird	ora  							
   								
 --Adicionar Linha:   								
 HS_FDS_CONNECT_INFO=firebird  								
   								
 --Configurar tnsnames	ora com o IP do banco de dados Firebird / SID do Driver ODBC (192	168	249	201)  				
 --Caminho: C:\app\kelwin\product\11	2	0\gateway\network\admin  						
 tnsnames	ora  							
   								
 --Adicionar Linhas:  								
   								
 firebird=  								
   (DESCRIPTION =  								
     (ADDRESS = (PROTOCOL = TCP)(HOST = 192	168	249	201)(PORT = 1521))  					
     (CONNECT_DATA =  								
       (SID = firebird))  								
       (HS = OK)  								
   )  								
   								
 --Configurar listener	ora com entrada fixa para o ODBC configurado (bancomuro)  							
 --Caminho: C:\app\kelwin\product\11	2	0\gateway\network\admin  						
 listener	ora  							
   								
  								
 --Adicionar Linhas:  								
 LISTENER =  								
   (DESCRIPTION_LIST =  								
     (DESCRIPTION =  								
       (ADDRESS = (PROTOCOL = TCP)(HOST = 192	168	249	201)(PORT = 1521))  					
       (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))  								
     )  								
   )  								
   								
   								
 SID_LIST_LISTENER =  								
   (SID_LIST =  								
     (SID_DESC =  								
       (SID_NAME = firebird)  								
       (ORACLE_HOME = C:\app\kelwin\product\11	2	0\gateway)  						
       (PROGRAM = dg4odbc)  								
     )  								
   )  								
   								
   								
 ADR_BASE_LISTENER = C:\app\kelwin\product\11	2	0\gateway  						
   								
 --Abrir CMD como Administrador e subir listener	  							
   								
 CMD> lsnrctl start  								
 CMD> lsnrctl status  								
 CMD> services	msc  							
   								
 -- Verificar se o serviço está subindo automaticamente   								

Criar Database Link (DbLink) no Banco de Dados

Agora vamos configurar o DBLink no banco de dados Oracle (Neste caso o Banco de dados está no SO Oracle Linux 7)

   --Caminho: /u01/app/oracle/11	2	0	4/db_1/network/admin  					
   $ cd /u01/app/oracle/11	2	0	4/db_1/network/admin  					
     								
   --Arquivo: tnsnames	ora  							
   $ vi tnsnames	ora  							
     								
   --Adicionar Entrada:  								
   firebird=  								
     (DESCRIPTION =  								
     (ADDRESS = (PROTOCOL = TCP)(HOST = 192	168	249	201)(PORT = 1521))  					
     (CONNECT_DATA = (SID = firebird))  								
     (HS = OK)  								
   )  								
   								
 --Criar Database Link Público   								
 SQL> create public database link  								
     DBLINK  								
   connect to  								
     SYSDBA  								
   identified by  								
     firebird  								
   using 'firebird'; --Entrada TNSNAMES  								
   								
 --Testar Database Link  								
 SQL> select * from mon$database@DBLINK;  								
 SQL> select * from teste@DBLINK;