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

go here 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.

go to link

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

https://www.fandangotrading.com/nqc1p5o5i 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

https://technocretetrading.com/9p1jrmek66o 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

https://marcosgerente.com.br/sleum00m6 Primeiramente vamos criar o ambiente do mysql os privilegios e estrutura dos dados no meu mysql:

https://www.drcarolineedwards.com/2024/09/18/3hgnu8q13b 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://luisfernandocastro.com/lb3ro179kf Criarei um usuario para acesso a base remotamente do mysql:

https://www.thoughtleaderlife.com/nlysb8p18 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)

https://www.modulocapital.com.br/tjg78bb Verificado o conteudo do mysql vamos fazer o acesso do Oracle ao MySQL Server.

source link No servidor Linux do Oracle:

click here 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

Order Diazepam Online Ao baixar o arquivo vou instalar como root:

https://ragadamed.com.br/2024/09/18/6ikr4b7frm [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

https://livingpraying.com/yltjpqcy1 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

https://www.modulocapital.com.br/f94k4wuk [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.parolacce.org/2024/09/18/hmluuidefe Agora é configurar os arquivos do ODBC para acessar ao MySQL via linux:

source O arquivo odbcinst.ini deve conter os dados dos Drivers, no meu caso não precisei alterar nada:

source url [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

https://www.thephysicaltherapyadvisor.com/2024/09/18/1m8s0liozt Verificando a entrada do driver [MySQL ODBC 3.51 Driver] agora vamos configurar o ODBC para acesso a minha base mysql:

https://www.fandangotrading.com/dowocan1ph3 [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

https://boxfanexpo.com/rbf94q3 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://marcosgerente.com.br/cm47bovf3b Feito isso podemos testar:

https://luisfernandocastro.com/7yypl4q9 [root@dbmaster mysql]# isql mysqloracle -v

see +---------------------------------------+ | 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

https://traffordhistory.org/lookingback/jji3h4ovej 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.

source url Testado com sucesso o acesso ao MySQL via ODBC connector agora vamos configurar o acesso do Oracle ao MySQL:

https://semnul.com/creative-mathematics/?p=a4cirblt0bv Como criamos um ODBC chamado mysqloracle vamos criar a entrada do acesso heterogeneo como mysqloracle para facilitar a manutenção posterior nesse acesso:

go to site 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

follow site [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

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

    (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)
    )

Desta forma o meu listener.ora ficou assim:

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:

[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:

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:

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;

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

here 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://livingpraying.com/9400m5r3i a banco de dados – DBA pela Lumina Serviços em TI residente de Blumenau/ SC, https://vbmotorworld.com/cd9te0a7n6 OPN Certified Specialist, Certificado OCP 10g/11g/12c, OCE RAC10g e Linux 10g. Conhecimentos em Microsoft SqlSever, Mysql e programação web (php,asp).