Rreplicação entre o Oracle e MariaDB, será que funciona? Exatamente como se fosse em um MySQL 🙂
MariaDB é uma base de dados com a mesma origem do MySQL.
Software utilizado: CentOS 6, Oracle Database 11gR2, MariaDB 5.5 e Goldengate 11gR2 (2 instalações, pois cada BD terá um binário do Goldengate).
Para os testes, criei um schema ORACLE na BD Oracle e criei uma BD ORACLE na BD MariaDB 🙂
Depois de já ter instalado todos os softwares citados acima (bases de dados e OGG), vamos as configurações:
1) Goldengate para a BD Oracle (Origem):
1.1) Processo de EXTRACT
add extract ext1, tranlog, begin now
add exttrail /oracle/app/oracle/product/11.2.0/ogg/ogg_orcl/dirdat/ex, extract ext1
edit params ext1
extract ext1
userid ogg, password ogg
exttrail /oracle/app/oracle/product/11.2.0/ogg/ogg_orcl/dirdat/ex
table oracle.*;
1.2) Processo de PUMP
add extract pump1, exttrailsource /oracle/app/oracle/product/11.2.0/ogg/ogg_orcl/dirdat/ex
add rmttrail /oracle/app/oracle/product/11.2.0/ogg/ogg_mysql/dirdat/ex, extract pump1
edit params pump1
extract pump1
rmthost localhost, mgrport 7820
userid ogg, password ogg
rmttrail /oracle/app/oracle/product/11.2.0/ogg/ogg_mysql/dirdat/ex
passthru
table oracle.*;
1.3) Criar o definition file:
vi /oracle/app/oracle/product/11.2.0/ogg/ogg_orcl/dirprm/defgen.prm
userid ogg, password ogg
DEFSFILE /oracle/app/oracle/product/11.2.0/ogg/ogg_mysql/dirdef/source.def
table ORACLE.*
No shell:
defgen paramfile /oracle/app/oracle/product/11.2.0/ogg/ogg_orcl/dirprm/defgen.prm
O definition file contém a definição da estrutura das tabelas origem, exemplo:
2) Goldengate para a BD MariaDB (Destino):
2.1) Processo de REPLICAT
ADD REPLICAT rep1, EXTTRAIL /oracle/app/oracle/product/11.2.0/ogg/ogg_mysql/dirdat/ex, NODBCHECKPOINT
edit params rep1
replicat rep1
targetdb ORACLE, userid ogg, password ogg
SOURCEDEFS /oracle/app/oracle/product/11.2.0/ogg/ogg_mysql/dirdef/source.def
map ORACLE.* , TARGET ORACLE.*;
Após as configurações, agora já se pode correr testes :-). Para tal criei uma pequena tabela na BD Oracle e MariaDB:
ORACLE: create table teste1 (a varchar2(30),b number);
MariaDB: create table teste1 (a varchar(30),b numeric);
Insert no ORACLE:
Validação do processo de replicação:
Validação do relatório para o processo replicat (view report rep1):
Obviamente que o MariaDB não aparece na matriz de certificação da Oracle para o Goldengate, no entanto, com possui a mesma origem do MySQL, é possível replicar 🙂