Acessando Tabelas no Oracle a Partir do MariaDB/MySQL

Se você precisa conectar o MariaDB/MySQL a um banco de dados Oracle usando o plugin ha_connect com suporte a ODBC, eu vou explicar passo a passo como fazer isso em um ambiente com Oracle Linux 9. Vou detalhar desde a instalação dos pacotes necessários até a configuração e testes de conexão.

1. Instalação dos pacotes do MariaDB

O primeiro passo é garantir que os pacotes necessários do MariaDB estejam instalados no seu sistema. Para isso, utilize o gerenciador de pacotes dnf e execute o seguinte comando:

dnf install mariadb-connector-c-config-3.2.6-1.el9_0.noarch \
mariadb-connector-c-3.2.6-1.el9_0.x86_64 \
mariadb-common-10.5.22-1.el9_2.x86_64 \
mariadb-errmsg-10.5.22-1.el9_2.x86_64 \
mariadb-backup-10.5.22-1.el9_2.x86_64 \
mariadb-gssapi-server-10.5.22-1.el9_2.x86_64 \
mariadb-server-utils-10.5.22-1.el9_2.x86_64 \
mariadb-server-10.5.22-1.el9_2.x86_64 \
mariadb-10.5.22-1.el9_2.x86_64 \
mariadb-connector-odbc-3.1.12-3.el9.x86_64

Esse comando vai instalar o MariaDB, junto com o conector ODBC, que será necessário para estabelecer a conexão com o Oracle.

2. Configuração do MariaDB

A configuração do MariaDB pode variar conforme suas necessidades. Como essa parte pode ser complexa e personalizada, vamos pular este tópico e focar nas configurações de ODBC e conexão com o Oracle.

3. Instalação dos pacotes do Oracle Client

Agora, você precisa instalar os pacotes do client Oracle para habilitar a conexão ODBC. Execute os comandos abaixo para fazer isso:

dnf install oracle-instantclient-release-el9.x86_64
dnf install oracle-instantclient19.19-basic.x86_64 \
oracle-instantclient19.19-odbc.x86_64 \
oracle-instantclient19.19-sqlplus.x86_64 \
unixODBC

4. Configuração do arquivo tnsnames.ora

O arquivo tnsnames.ora define as conexões com o Oracle. Ele deve ser configurado de acordo com o ambiente do banco de dados que você vai acessar. Para isso, edite o arquivo /usr/lib/oracle/19.19/client64/lib/network/admin/tnsnames.ora com o seguinte conteúdo:

DBORACLE =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.10)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)

Aqui, substitua o HOST e SERVICE_NAME pelos valores corretos do seu servidor Oracle.

5. Teste a conexão com o banco de dados Oracle

Depois de configurar o tnsnames.ora, você pode testar a conexão com o banco Oracle usando o SQL*Plus:

sqlplus dbuser/dbpasswd@DBORACLE

Se a conexão for bem-sucedida, o ambiente do cliente Oracle está configurado corretamente.

6. Configuração do ODBC

Agora, precisamos configurar o ODBC para habilitar a conexão entre o MariaDB e o Oracle. Primeiro, edite o arquivo /etc/odbcinst.ini para incluir as informações do driver Oracle:

# Oracle
[Oracle_19c]
Description = Oracle ODBC driver for Oracle 19
Driver = /usr/lib/oracle/19.19/client64/lib/libsqora.so.19.1

Em seguida, configure o arquivo /etc/odbc.ini, onde você define a conexão ao banco de dados:

[dboracle]
Driver = Oracle_19c
ServerName = DBORACLE
DSN=Oracle_19c
UserID = dbuser
Password = dbpasswd

Aqui, o DSN e ServerName devem corresponder às definições do seu tnsnames.ora.

7. Teste de conexão via ODBC

Você pode testar a conexão ODBC utilizando o comando isql:

isql -v DBORACLE

Se tudo estiver corretamente configurado, o teste de conexão será bem-sucedido.

8. Compilando o plugin ha_connect

O plugin ha_connect do MariaDB permite que você crie tabelas no MariaDB que estejam conectadas a um banco de dados externo via ODBC. Para compilá-lo, vamos ativar o repositório CodeReady e instalar as ferramentas de desenvolvimento necessárias.

Edite o arquivo /etc/yum.repos.d/oracle-codeready-ol9.repo para incluir o seguinte conteúdo:

[ol9_codeready_builder_developer]
name=Oracle Linux 9 Developer Preview $releasever ($basearch)
baseurl=https://yum$ociregion.$ocidomain/repo/OracleLinux/OL9/codeready/builder/developer/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=1

Agora, instale as ferramentas necessárias:

dnf groupinstall "Development Tools"
dnf install cmake make gcc-c++ libaio-devel openssl-devel ncurses-devel gnutls-devel unixODBC-devel

Baixe o código-fonte do MariaDB, extraia e compile o plugin ha_connect:

wget https://downloads.mariadb.org/interstitial/mariadb-10.5.22/source/mariadb-10.5.22.tar.gz
cd /usr/local/src/
tar zxf /root/mariadb-10.5.22.tar.gz
cd mariadb-10.5.22/
cmake . -DBUILD_CONFIG=mysql_release -DPLUGIN_CONNECT=DYNAMIC -DPLUGIN_AUTH_PAM=NO
make
cp ./storage/connect/ha_connect.so /usr/lib64/mariadb/plugin/

9. Instalação do plugin no MariaDB

Reinicie o MariaDB para reconhecer o novo plugin:

systemctl restart mariadb

Em seguida, acesse o console do MariaDB e instale o plugin:

mysql -u root -p
INSTALL SONAME 'ha_connect';
FLUSH PRIVILEGES;

Verifique se o plugin foi instalado corretamente:

SHOW PLUGINS;

10. Criando uma tabela conectada ao Oracle

Agora que tudo está configurado, crie um banco de dados e uma tabela no MariaDB que estará conectada ao banco de dados Oracle:

create database dbteste;
use dbteste;

create table usuario (
codigo numeric(6),
nome varchar(100)
) engine=connect table_type=odbc tabname='owner.usuario' connection='dsn=dboracle';

Por fim, teste a conexão com a tabela no Oracle:

select * from usuario;

Se tudo estiver funcionando, você verá os dados da tabela usuario do Oracle no MariaDB.

Essa configuração permite integrar o MariaDB com o Oracle, oferecendo mais flexibilidade para acessar e manipular dados em diferentes bancos de dados.

Referências

MariaDB Documentation – Guia oficial sobre o MariaDB, com detalhes sobre instalação, configuração e o uso de plugins, incluindo o ha_connect. Disponível em: https://mariadb.com/docs/.

Oracle Instant Client – Documentação oficial sobre o Oracle Instant Client, cobrindo a instalação e configuração do client e drivers ODBC. Disponível em: https://www.oracle.com/database/technologies/instant-client.html.

ODBC Driver for Oracle – Informações sobre como configurar drivers ODBC para o Oracle, úteis para garantir a conexão entre o MariaDB e o Oracle. Disponível em: https://docs.oracle.com/en/database/oracle/oracle-database/.

Oracle Linux Documentation – Detalhes técnicos sobre o Oracle Linux 9, incluindo a configuração de repositórios e a instalação de pacotes. Disponível em: https://docs.oracle.com/en/operating-systems/oracle-linux/.

UnixODBC Project – Documentação do projeto unixODBC, fundamental para entender a instalação e configuração do ODBC em sistemas baseados em Linux. Disponível em: http://www.unixodbc.org/.

Se você tiver mais dúvidas sobre este assunto, sinta-se à vontade para entrar em contato.

Rolar para cima