Oracle em Linux acessando MySQL em Windows (Heterogêno)

https://www.mbtn.net/?p=rtrezyxw4mh Vou explicar neste artigo um pouco de redes heterogeneas em outros databases e o Oracle.
No caso irei abordar um acesso do Oracle 10g (10.2.0.5) Linux x86 para o MySQL 5.1.46 Server em Windows XP 32b.
A partir do Oracle acessar tabelas e views que estão dentro do MySQL.

follow link

heter005 150x150 Oracle em Linux acessando MySQL em Windows (Heterogêno)

enter Dados dos ambientes para melhor compreenção:
Oracle:
Oracle Database 10g Release 10.2.0.5.0 – Production
Enterprise Linux Enterprise Linux Server release 5.5 (Carthage)
IP: 192.168.10.70
SERVER: dbmaster.local
ORACLE_HOME=/ora01/app/oracle/product/10.2.0

http://www.mscnantes.org/diaymi0ld0 MySQL:
Server version: 5.1.46-community MySQL Community Server (GPL)
Microsoft Windows XP Professional
5.1.2600 Service Pack 3 compilação 2600
IP: 192.168.10.184
SERVER: TKVM

follow Primeiramente vamos criar o ambiente do mysql os privilegios e estrutura dos dados no meu mysql:

go mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | netjukebox | | test | +--------------------+ 4 rows in set (0.00 sec) mysql> create database db_rafael; Query OK, 1 row affected (0.00 sec) mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | db_rafael | | mysql | | netjukebox | | test | +--------------------+ 5 rows in set (0.00 sec) mysql> create table tabela02 (campo1 int(11) not null auto_increment, campo2 char(255), primary key (campo1)); Query OK, 0 rows affected (0.03 sec) mysql> insert into tabela02 (campo2) values ('RAFAEL STOEVER'); Query OK, 1 row affected (0.01 sec) mysql> insert into tabela02 (campo2) values ('JOSE GALDERIO'); Query OK, 1 row affected (0.00 sec) mysql> insert into tabela02 (campo2) values ('MARIA DAS GRACAS'); Query OK, 1 row affected (0.00 sec) mysql> COMMIT; Query OK, 0 rows affected (0.00 sec) mysql> select * from tabela02 -> ; +--------+------------------+ | campo1 | campo2 | +--------+------------------+ | 1 | RAFAEL STOEVER | | 2 | JOSE GALDERIO | | 3 | MARIA DAS GRACAS | +--------+------------------+ 3 rows in set (0.00 sec)

https://lpgventures.com/tcrmcnw5v Criarei um usuario para acesso a base remotamente do mysql:

Tramadol Bula Anvisa mysql> create user 'rafael'@'localhost' identified by 'minha_senha'; Query OK, 0 rows affected (0.00 sec) mysql> grant all privileges on db_rafael.* to 'rafael'@'192.168.10.70' identified by 'senha'; Query OK, 0 rows affected (0.00 sec)

Purchase Tramadol With Mastercard Verificado o conteudo do mysql vamos fazer o acesso do Oracle ao MySQL Server.

enter No servidor Linux do Oracle:

source Para acessar o MySQL precisamos primeiramente um acesso ao database pelo linux, no caso iremos usar o connector/ODBC que pode ser encontrador no link
Connector/ODBC : http://download.softagency.net/mysql/Downloads/Connector-ODBC/3.51
No caso, estou baixando o mysql-connector-odbc-3.51.28-0.i386.rpm

https://www.yolascafe.com/ax8jhai8m Ao baixar o arquivo vou instalar como root:

follow [root@dbmaster mysql]# rpm -Uvh mysql-connector-odbc-3.51.28-0.i386.rpm error: Failed dependencies: libltdl.so.3 is needed by mysql-connector-odbc-3.51.28-0.i386

go Como estou usando o Enterprise Linux Enterprise Linux Server release 5.5 (Carthage)
Terei que colocar o CDROM de instalação e instalar o pacote dependente, no caso o libtool-ltdl

Tramadol Online Rx [root@dbmaster mysql]# rpm -ivh /mnt/cdrom/Server/libtool-ltdl-1.5.22-7.el5_4.i386.rpm warning: /mnt/cdrom/Server/libtool-ltdl-1.5.22-7.el5_4.i386.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159 Preparing... ########################################### [100%] 1:libtool-ltdl ########################################### [100%] [root@dbmaster mysql]# rpm -ivh mysql-connector-odbc-3.51.28-0.i386.rpm Preparing... ########################################### [100%] 1:mysql-connector-odbc ########################################### [100%] [myodbc3i.c][594][INFO] Driver registered. Usage count is 1. Location "/etc"

https://www.yolascafe.com/scryhc7zjy Agora é configurar os arquivos do ODBC para acessar ao MySQL via linux:

https://purestpotential.com/aztuhevqfa O arquivo odbcinst.ini deve conter os dados dos Drivers, no meu caso não precisei alterar nada:

Buy Generic Tramadol Uk [root@dbmaster mysql]# cat /etc/odbcinst.ini [PostgreSQL] Description = ODBC for PostgreSQL Driver = /usr/lib/libodbcpsql.so Setup = /usr/lib/libodbcpsqlS.so FileUsage = 1 [MySQL ODBC 3.51 Driver] DRIVER = /usr/lib/libmyodbc3.so UsageCount = 1

go to link Verificando a entrada do driver [MySQL ODBC 3.51 Driver] agora vamos configurar o ODBC para acesso a minha base mysql:

Buy Cheap Tramadol With Mastercard [root@dbmaster mysql]# cat /etc/odbc.ini [mysqloracle] Driver = MySQL ODBC 3.51 Driver DATABASE = db_rafael PWD = senha PORT = 3306 SERVER = 192.168.10.184 UID = rafael SOCKET = /tmp/oracle/mysql.sock

follow site Desta forma criamos um nome para o acesso chamado mysqloracle, utilizando o drive MySQL ODBC 3.51 Driver, no database db_rafael e outros dados são para acesso como usuario, senha, ip e porta.

https://www.brigantesenglishwalks.com/uwaunr8rtv Feito isso podemos testar:

Tramadol Online Overnight 180 [root@dbmaster mysql]# isql mysqloracle -v

Order Tramadol Overnight Cod +---------------------------------------+ | Connected! | | | | sql-statement | | help [tablename] | | quit | | | +---------------------------------------+ SQL> SQL> show tables; +-----------------------------------------------------------------+ | Tables_in_db_rafael | +-----------------------------------------------------------------+ | tabela01 | | tabela02 | +-----------------------------------------------------------------+ SQLRowCount returns 1 1 rows fetched SQL> select * from tabela02; +-----------+------------------- | campo1 | name +-----------+------------------- | 1 | RAFAEL STOEVER | 2 | MARIA JOSEFINA | 3 | JOSE GALDERIO +-----------+------------------- SQLRowCount returns 3 3 rows fetched

click Observação importante é sobre o firewall do windows XP, ele estava habilitado e não estava liberando a porta 3306, tive que desabilitar o firewall padrão do windows para conseguir o acesso. Em muitos ambientes solicite ao seu administrador de REDES/Segurança para fazer a liberação correta da porta.

https://getdarker.com/editorial/articles/4i5rjgc0r2 Testado com sucesso o acesso ao MySQL via ODBC connector agora vamos configurar o acesso do Oracle ao MySQL:

http://www.mscnantes.org/6ynvwhunq Como criamos um ODBC chamado mysqloracle vamos criar a entrada do acesso heterogeneo como mysqloracle para facilitar a manutenção posterior nesse acesso:

watch Deve então ser criado um init em $ORACLE_HOME/hs/admin/initmysqloracle.ora contendo as seguintes configurações, no meu caso somente alterei o caminho do ODBCINI que o meu ficará em /etc/odbc.ini

https://dcinematools.com/r9n0gvak [oracle@dbmaster admin]$ cat $ORACLE_HOME/hs/admin/initmysqloracle.ora HS_FDS_CONNECT_INFO = mysqloracle HS_FDS_TRACE_LEVEL = 4 HS_FDS_SHAREABLE_NAME = /usr/lib/libodbc.so set ODBCINI=/etc/odbc.ini

click here E teremos que adicionar ao listener a entrada para esse novo init fazendo acesso ao ODBC

Tramadol Online Cheap (SID_DESC = (PROGRAM = hsodbc) (ORACLE_HOME = /ora01/app/oracle/product/10.2.0) (SID_NAME = mysqloracle) (ENVS = LD_LIBRARY_PATH=/usr/lib:/ora01/app/oracle/product/10.2.0/lib:/lib:/usr/lib) )

https://lpgventures.com/fvnoi56n Desta forma o meu listener.ora ficou assim:

click LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.70)(PORT = 1521)) ) ) ) SID_LIST_LISTENER= (SID_LIST= (SID_DESC= (GLOBAL_DBNAME=dbmaster) (ORACLE_HOME=/ora01/app/oracle/product/10.2.0) (SID_NAME=dbmaster) ) (SID_DESC = (PROGRAM = hsodbc) (ORACLE_HOME = /ora01/app/oracle/product/10.2.0) (SID_NAME = mysqloracle) (ENVS = LD_LIBRARY_PATH=/usr/lib:/ora01/app/oracle/product/10.2.0/lib:/lib:/usr/lib) ) )

Adicionado o item devemos fazer um reload no listener para aplicar as alterações efetuadas:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
[oracle@dbmaster admin]$ lsnrctl reload
 
LSNRCTL for Linux: Version 10.2.0.5.0 - Production on 13-OCT-2011 12:07:54
 
Copyright (c) 1991, 2010, Oracle.  All rights reserved.
 
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.10.70)(PORT=1521)))
The command completed successfully
[oracle@dbmaster admin]$ lsnrctl status
 
LSNRCTL for Linux: Version 10.2.0.5.0 - Production on 13-OCT-2011 12:07:59
 
Copyright (c) 1991, 2010, Oracle.  All rights reserved.
 
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dbmaster)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 10.2.0.5.0 - Production
Start Date                13-OCT-2011 11:26:34
Uptime                    0 days 0 hr. 41 min. 25 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /ora01/app/oracle/product/10.2.0/network/admin/listener.ora
Listener Log File         /ora01/app/oracle/product/10.2.0/network/log/listener.log
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.10.70)(PORT=1521)))
Services Summary...
Service "dbmaster" has 2 instance(s).
  Instance "dbmaster", status UNKNOWN, has 1 handler(s) for this service...
  Instance "dbmaster", status READY, has 1 handler(s) for this service...
Service "dbmaster_XPT" has 1 instance(s).
  Instance "dbmaster", status READY, has 1 handler(s) for this service...
Service "mysqloracle" has 1 instance(s).
  Instance "mysqloracle", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully

Pode notar que há agora um serviço chamado mysqloracle no listener que irá fazer o acesso ao ODBC.
Caso o listener fique travado ou não consiga iniciar revise as configurações anteriores que há algum item errado.

Agora vamos fazer o acesso do Oracle ao MySQL :

Primeiramente temos que criar um ponto de acesso ORACLE, vamos adicionar ao TNSNAMES.ORA a entrada para o mysql que criamos:

1
2
3
4
5
6
7
8
9
MYSQL =
  (DESCRIPTION =
    (ADDRESS_LIST =
       (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.70)(PORT = 1521))
    )
    (CONNECT_DATA =
        (SID = mysqloracle))
        (HS = OK)
    )

Agora dentro do Oracle vamos criar o dblink entre os bancos:

1
2
3
SQL> create public database link mysqlrafael connect to "rafael" identified by "senha" using 'MYSQL';
 
Database link created.

E para verificar esse acesso com sucesso, select basico em uma das tabelas;

01
02
03
04
05
06
07
08
09
10
SQL> desc tabela02@mysqlrafael;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 campo1                                             NUMBER(10)
 campo2                                             CHAR(255)
    campo1 campo2
---------- ------------------------------
         1 RAFAEL STOEVER
         2 JOSE GALDERIO
         3 MARIA DAS GRACAS

FIQUE LIGADO !
Lembrando que tudo que usares no MySQL em caixa baixa “minusculo”, no Oracle deverá ser tratado como string em minusculo contendo as aspas.
Como no database link criado que o usuario é “rafael” e a senha é “senha”. Isso também vale para os campos e tabelas do mysql!

Para o Oracle 11g deve ser usado o (PROGRAM = dg4odbc)
E para 10g 64bits não há suporte hsodbc conforme feito neste artigo, desta forma deve ser comprado o Oracle Gateway para conseguir efetuar o procedimento.

Fonte: DESUPPORTED: How to Setup Generic Connectivity – HSODBC – to MySQL (Doc ID 260981.1)

%name Oracle em Linux acessando MySQL em Windows (Heterogêno)

Autor: Rafael Stoever

https://penielenv.com/vr5qkkk1 Bacharel em Sistema de Informação pela Uniasselvi, atualmente cursando Gerenciamento de Projetos em TI pela Pós Graduação Uniasselvi. Atuo como Analista de suporte https://www.marineetstamp.com/luew93mc37 a banco de dados – DBA pela Lumina Serviços em TI residente de Blumenau/ SC, https://getdarker.com/editorial/articles/hirph4xayp4 OPN Certified Specialist, Certificado OCP 10g/11g/12c, OCE RAC10g e Linux 10g. Conhecimentos em Microsoft SqlSever, Mysql e programação web (php,asp).