SlideShare a Scribd company logo
Replicación de Base
de datos Oracle hacia
MySQL
Oracle Golden Gate 11gR2
Este documento contiene los pasos necesarios para lograr realizar replicación
Heterogenia entre la base de datos Oracle y MySQL
2016
Erick Vidal
17/04/2016
[REPLICACIÓN DE BASE DE DATOS ORACLE HACIA MYSQL] [MANUAL DE PROCEDIMIENTOS]
gt.linkedin.com/in/erickvidal/
@vidbaz
CONTENIDO
Entorno ......................................................................................................................................................................................................3
Instalación..................................................................................................................................................................................................3
Source Database (Oracle 11gR2)............................................................................................................................................................3
Target Database (MySQL) ......................................................................................................................................................................7
Carga Inicial..............................................................................................................................................................................................11
Source Database (Oracle) ....................................................................................................................................................................11
Target Database (MySQL) ....................................................................................................................................................................14
Source Database (Oracle) ....................................................................................................................................................................14
Target Database (MySQL) ....................................................................................................................................................................14
Capturar los Cambios (replicación en línea) ............................................................................................................................................15
Source Database (Oracle) ....................................................................................................................................................................15
Target Database (MySQL) ....................................................................................................................................................................16
Source Database (Oracle) ....................................................................................................................................................................17
Target Database (MySQL) ....................................................................................................................................................................17
Anexos......................................................................................................................................................................................................18
Ejemplo de Archivo defgen..................................................................................................................................................................18
[REPLICACIÓN DE BASE DE DATOS ORACLE HACIA MYSQL] [MANUAL DE PROCEDIMIENTOS]
gt.linkedin.com/in/erickvidal/
@vidbaz
MANUAL DE PROCEDIMIENTOS
ENTORNO
A continuación se realizara la replicación heterogénea entre la bases de datos Oracle y MySQL por medio de la herramienta Oracle
Golden Gate. Inicialmente se debe tener instalado ambos motores de bases de datos en diferentes servidores, para poder realizar
dicha replicación, posteriormente se realiza la carga inicial y finalizando con el proceso de cambios en línea. La infraestructura básica
del hardware a utilizar se muestra a continuación:
INSTALACIÓN
SOURCE DATABASE (ORACLE 11GR2)
1. Descargar Oracle Golden Gate para Linux http://edelivery.oracle.com/
2. Descomprimir en el directorio que se utilizara como home de la instalación
#Creación del directorio donde se realizara la instalación
[oracle@terminal.vidbaz ~]$ mkdir /u01/app/oracle/gg_orcl_source
#ingreso del directorio en en profile de linux, para facilidad de acceso (Opcional)
[oracle@terminal.vidbaz ~]$ vi .bash_profile
[oracle@terminal.vidbaz ~]$ cd $GG_HOME
[oracle@terminal.vidbaz gg_orcl_source]$ pwd
Oracle
DB: ORCL
IP:192.168.56.102
SH: PRDAPP
Mysql
DB: ORCL
IP:192.168.56.103
SH: PRDAPP
[REPLICACIÓN DE BASE DE DATOS ORACLE HACIA MYSQL] [MANUAL DE PROCEDIMIENTOS]
gt.linkedin.com/in/erickvidal/
@vidbaz
/u01/app/oracle/gg_orcl_source
#Descompresion del binario de OGG
[oracle@terminal.vidbaz gg_orcl_source]$ unzip V34339-01.zip
Archive: V34339-01.zip
inflating: fbo_ggs_Linux_x64_ora11g_64bit.tar
inflating: Oracle_GoldenGate_11.2.1.0.3_README.doc
inflating: Oracle GoldenGate_11.2.1.0.3_README.txt
inflating: OGG_WinUnix_Rel_Notes_11.2.1.0.3.pdf
[oracle@terminal.vidbaz gg_orcl_source]$ tar -xvof fbo_ggs_Linux_x64_ora11g_64bit.tar
3. Ingresar a la consola de GoldenGate GGSCI (GoldenGate Software Command Interface)
[oracle@terminal.vidbaz gg_orcl_source]$ . oraenv
ORACLE_SID = [oracle] ? orcl
The Oracle base has been set to /u01/app/oracle
[oracle@terminal.vidbaz gg_orcl_source]$ ./ggsci
Oracle GoldenGate Command Interpreter for Oracle
Version 11.2.1.0.3 14400833 OGGCORE_11.2.1.0.3_PLATFORMS_120823.1258_FBO
Linux, x64, 64bit (optimized), Oracle 11g on Aug 23 2012 20:20:21
Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
4. Ahora se deberán crear los Directorios que utilizara GoldenGate para la ejecución
GGSCI (terminal.vidbaz.com.gt) 1> create subdirs
Creating subdirectories under current directory /u01/app/oracle/gg_orcl_source
Parameter files /u01/app/oracle/gg_orcl_source/dirprm: already exists
Report files /u01/app/oracle/gg_orcl_source/dirrpt: created
Checkpoint files /u01/app/oracle/gg_orcl_source/dirchk: created
Process status files /u01/app/oracle/gg_orcl_source/dirpcs: created
SQL script files /u01/app/oracle/gg_orcl_source/dirsql: created
Database definitions files /u01/app/oracle/gg_orcl_source/dirdef: created
Extract data files /u01/app/oracle/gg_orcl_source/dirdat: created
Temporary files /u01/app/oracle/gg_orcl_source/dirtmp: created
Stdout files /u01/app/oracle/gg_orcl_source/dirout: created
GGSCI (terminal.vidbaz.com.gt) 3> exit
5. Verificando que los directorios estén creados
[oracle@terminal.vidbaz gg_orcl_source]$ ls -ltrd dir*
drwxr-x--- 2 oracle oinstall 4096 Aug 23 2012 dirprm
drwxr-x--- 2 oracle oinstall 4096 Aug 23 2012 dirjar
[REPLICACIÓN DE BASE DE DATOS ORACLE HACIA MYSQL] [MANUAL DE PROCEDIMIENTOS]
gt.linkedin.com/in/erickvidal/
@vidbaz
drwxrwxr-x 2 oracle oinstall 4096 Apr 14 00:29 dirtmp
drwxrwxr-x 2 oracle oinstall 4096 Apr 14 00:29 dirsql
drwxrwxr-x 2 oracle oinstall 4096 Apr 14 00:29 dirrpt
drwxrwxr-x 2 oracle oinstall 4096 Apr 14 00:29 dirpcs
drwxrwxr-x 2 oracle oinstall 4096 Apr 14 00:29 dirout
drwxrwxr-x 2 oracle oinstall 4096 Apr 14 00:29 dirdef
drwxrwxr-x 2 oracle oinstall 4096 Apr 14 00:29 dirdat
drwxrwxr-x 2 oracle oinstall 4096 Apr 14 00:29 dirchk
6. Luego de la creación de los directorios se deberá preparar las tablas que se replicaran de la base de
datos destino, para este ejemplo se utilizar las tablas que traen de ejemplo el software de OGG.
Primero se deberá crear el esquema que contendrá las tablas a ser replicadas y posteriormente se
creara el usuario de OGG el cual será el encargado de comunicar OGG a la base de datos Oracle.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options
SQL> CREATE USER PRDAPP IDENTIFIED BY oracle
DEFAULT TABLESPACE users
QUOTA UNLIMITED ON users; 2 3
User created.
SQL> GRANT DBA TO PRDAPP;
Grant succeeded.
SQL> connect prdapp/oracle
Connected.
SQL>-- creación del usuario de OGG
SQL> CREATE USER GGUSER IDENTIFIED BY oracle
DEFAULT TABLESPACE users
QUOTA UNLIMITED ON users;
GRANT DBA TO GGUSER; 2 3
User created.
SQL> SQL>
Grant succeeded.
SQL>
[REPLICACIÓN DE BASE DE DATOS ORACLE HACIA MYSQL] [MANUAL DE PROCEDIMIENTOS]
gt.linkedin.com/in/erickvidal/
@vidbaz
7. A continuación se ejecutaran los scripts de demostración @demo_ora_create.sql y
@demo_ora_insert.sql
SQL> connect prdapp/oracle
Connected.
SQL> @demo_ora_create.sql
DROP TABLE tcustmer
*
ERROR at line 1:
ORA-00942: table or view does not exist
Table created.
DROP TABLE tcustord
*
ERROR at line 1:
ORA-00942: table or view does not exist
Table created.
SQL> @demo_ora_insert.sql
1 row created.
1 row created.
1 row created.
1 row created.
Commit complete.
SQL> select * from tcustmer;
CUST NAME CITY ST
---- ------------------------------ -------------------- --
WILL BG SOFTWARE CO. SEATTLE WA
JANE ROCKY FLYER INC. DENVER CO
SQL> select * from tcustord;
[REPLICACIÓN DE BASE DE DATOS ORACLE HACIA MYSQL] [MANUAL DE PROCEDIMIENTOS]
gt.linkedin.com/in/erickvidal/
@vidbaz
CUST ORDER_DAT PRODUCT_ ORDER_ID PRODUCT_PRICE PRODUCT_AMOUNT TRANSACTION_ID
---- --------- -------- ---------- ------------- -------------- --------------
WILL 30-SEP-94 CAR 144 17520 3 100
JANE 11-NOV-95 PLANE 256 133300 1 100
8. Posteriormente se deberá iniciar el proceso MANAGER, el cual es el encargado de gestionar y
monitorear los demás procesos de OGG, para mayor información visitar Oracle® GoldenGate
Windows and UNIX Administrator’s Guide 11g Release 2 (Oracle, 2012)
[oracle@terminal.vidbaz gg_orcl_source]$ ./ggsci
Oracle GoldenGate Command Interpreter for Oracle
Version 11.2.1.0.3 14400833 OGGCORE_11.2.1.0.3_PLATFORMS_120823.1258_FBO
Linux, x64, 64bit (optimized), Oracle 11g on Aug 23 2012 20:20:21
Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
GGSCI (terminal.vidbaz.com.gt) 1> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER STOPPED
GGSCI (terminal.vidbaz.com.gt) 2> edit params mgr
#se deberá editar el archive de parámetros de manager indicando el Puerto
PORT 7809
GGSCI (terminal.vidbaz.com.gt) 3> start manager
Manager started.
GGSCI (terminal.vidbaz.com.gt) 4> info mgr
Manager is running (IP port terminal.vidbaz.com.gt.7809).
GGSCI (terminal.vidbaz.com.gt) 5> exit
TARGET DATABASE (MYSQL)
9. Se deberá descargar los binarios de GoldenGate para la base de datos MySQL de igual forma se
puede descargar de Oracle Software Delivery Cloud, se deberá descomprimir en el directorio donde
se desea instalar OGG
[REPLICACIÓN DE BASE DE DATOS ORACLE HACIA MYSQL] [MANUAL DE PROCEDIMIENTOS]
gt.linkedin.com/in/erickvidal/
@vidbaz
[root@terminal.vidbaz gg_orcl_target]# unzip V32399-01.zip
Archive: V32399-01.zip
inflating: ggs_Linux_x64_MySQL_64bit.tar
inflating: OGG_WinUnix_Rel_Notes_11.2.1.0.1.pdf
inflating: Oracle GoldenGate 11.2.1.0.1 README.txt
inflating: Oracle GoldenGate 11.2.1.0.1 README.doc
[root@terminal.vidbaz gg_orcl_target]# tar -xvof ggs_Linux_x64_MySQL_64bit.tar
10. Se deberá crear la variable de entorno GG_HOME para su fácil acceso, posteriormente ingresar a la
consola GGSCI, y crear los directorios necesarios para la configuración de GoldenGate (los pasos son
iguales que cuando se configuro la base de datos fuente.
root@terminal.vidbaz gg_orcl_target]# ./ggsci
Oracle GoldenGate Command Interpreter for MySQL
Version 11.2.1.0.1 OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230
Linux, x64, 64bit (optimized), MySQL Enterprise on Apr 23 2012 04:34:25
Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
GGSCI (terminal.vidbaz.com.gt) 1> create subdirs
Creating subdirectories under current directory /u01/app/oracle/gg_orcl_target
Parameter files /u01/app/oracle/gg_orcl_target/dirprm: already exists
Report files /u01/app/oracle/gg_orcl_target/dirrpt: created
Checkpoint files /u01/app/oracle/gg_orcl_target/dirchk: created
Process status files /u01/app/oracle/gg_orcl_target/dirpcs: created
SQL script files /u01/app/oracle/gg_orcl_target/dirsql: created
Database definitions files /u01/app/oracle/gg_orcl_target/dirdef: created
Extract data files /u01/app/oracle/gg_orcl_target/dirdat: created
Temporary files /u01/app/oracle/gg_orcl_target/dirtmp: created
Stdout files /u01/app/oracle/gg_orcl_target/dirout: created
GGSCI (terminal.vidbaz.com.gt) 2> exit
[root@terminal.vidbaz gg_orcl_target]# ls -ltrd dir*
drwxr-x---. 1 root root 20 Apr 23 2012 dirprm
drwxr-x---. 1 root root 2758 Apr 23 2012 dirjar
drwxrwxr-x. 1 root root 0 Apr 14 10:36 dirsql
drwxrwxr-x. 1 root root 0 Apr 14 10:36 dirrpt
drwxrwxr-x. 1 root root 0 Apr 14 10:36 dirpcs
drwxrwxr-x. 1 root root 0 Apr 14 10:36 dirdef
drwxrwxr-x. 1 root root 0 Apr 14 10:36 dirdat
drwxrwxr-x. 1 root root 0 Apr 14 10:36 dirchk
drwxrwxr-x. 1 root root 0 Apr 14 10:36 dirtmp
[REPLICACIÓN DE BASE DE DATOS ORACLE HACIA MYSQL] [MANUAL DE PROCEDIMIENTOS]
gt.linkedin.com/in/erickvidal/
@vidbaz
drwxrwxr-x. 1 root root 0 Apr 14 10:36 dirout
[root@terminal.vidbaz gg_orcl_target]# ./ggsci
11. Editar el Puerto del manager, he iniciar dicho proceso.
[root@terminal.vidbaz gg_orcl_target]# ./ggsci
Oracle GoldenGate Command Interpreter for MySQL
Version 11.2.1.0.1 OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230
Linux, x64, 64bit (optimized), MySQL Enterprise on Apr 23 2012 04:34:25
Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
GGSCI (terminal.vidbaz.com.gt) 1> edit params mgr
#configurar el Puerto 7809
PORT 7809
GGSCI (terminal.vidbaz.com.gt) 2> start mgr
Manager started.
GGSCI (terminal.vidbaz.com.gt) 3> info mgr
Manager is running (IP port terminal.vidbaz.com.gt.7809).
GGSCI (terminal.vidbaz.com.gt) 4> exit
12. Ingresar a MySQL y crear la base de datos, que en este ejemplo se llamara orcl
mysql> CREATE DATABASE orcl;
Query OK, 1 row affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| orcl |
| test |
+--------------------+
4 rows in set (0.00 sec)
mysql> use orcl
[REPLICACIÓN DE BASE DE DATOS ORACLE HACIA MYSQL] [MANUAL DE PROCEDIMIENTOS]
gt.linkedin.com/in/erickvidal/
@vidbaz
Database changed
13. Crear y asignar permisos al usuario de base de datos por el cual GoldenGate tendrá acceso a la
misma
mysql> CREATE USER 'ogguser'@'localhost' IDENTIFIED BY 'oracle';
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT ALL PRIVILEGES ON * . * TO 'ogguser'@'localhost';
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye
14. Crear las tablas que serán replicadas desde la base de datos Oracle
[root@terminal.vidbaz gg_orcl_target]# mysql orcl -uogguser -poracle <
demo_mysql_create.sql
mysql> describe TCUSTMER;
+-----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| CUST_CODE | varchar(4) | NO | PRI | NULL | |
| NAME | varchar(30) | YES | | NULL | |
| CITY | varchar(20) | YES | | NULL | |
| STATE | char(2) | YES | | NULL | |
+-----------+-------------+------+-----+---------+-------+
4 rows in set (0.01 sec)
mysql> describe tcustord;
ERROR 1146 (42S02): Table 'orcl.tcustord' doesn't exist
mysql> describe TCUSTORD;
+----------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------------+--------------+------+-----+---------+-------+
| CUST_CODE | varchar(4) | NO | PRI | NULL | |
| ORDER_DATE | datetime | NO | PRI | NULL | |
| PRODUCT_CODE | varchar(8) | NO | PRI | NULL | |
| ORDER_ID | int(11) | NO | PRI | NULL | |
| PRODUCT_PRICE | decimal(8,2) | YES | | NULL | |
| PRODUCT_AMOUNT | int(11) | YES | | NULL | |
| TRANSACTION_ID | float | YES | | NULL | |
+----------------+--------------+------+-----+---------+-------+
7 rows in set (0.00 sec)
[REPLICACIÓN DE BASE DE DATOS ORACLE HACIA MYSQL] [MANUAL DE PROCEDIMIENTOS]
gt.linkedin.com/in/erickvidal/
@vidbaz
mysql>
CARGA INICIAL
El método que se utilizara para realizar la carga inicial es la carga directa a través de GoldenGate, para
volúmenes grandes de información, se recomienda utilizar Bulk, Data Pump, entre otros. A continuación se
muestra un esquema de la carga Inicial (Initail-Load):
SOURCE DATABASE (ORACLE)
15. Comprobar la conexión hacia la base de datos por medio del comando DBLOGIN, y posteriormente
activar el supplemental logging a las tablas que se estarán replicando
GGSCI (terminal.vidbaz.com.gt) 2> dblogin userid gguser, password oracle
Successfully logged into database.
GGSCI (terminal.vidbaz.com.gt) 3> add trandata prdapp.tcustmer
Logging of supplemental redo data enabled for table PRDAPP.TCUSTMER.
GGSCI (terminal.vidbaz.com.gt) 4> add trandata prdapp.tcustord
Logging of supplemental redo data enabled for table PRDAPP.TCUSTORD.
GGSCI (terminal.vidbaz.com.gt) 5> info trandata prdapp.tcust*
Logging of supplemental redo log data is enabled for table PRDAPP.TCUSTMER.
Columns supplementally logged for table PRDAPP.TCUSTMER: CUST_CODE.
Logging of supplemental redo log data is enabled for table PRDAPP.TCUSTORD.
Columns supplementally logged for table PRDAPP.TCUSTORD: CUST_CODE, ORDER_DATE,
PRODUCT_CODE, ORDER_ID.
GGSCI (terminal.vidbaz.com.gt) 6> exit
[oracle@terminal.vidbaz gg_orcl_source]$
(Fuente: Oracle® GoldenGate Administering Oracle GoldenGate)
[REPLICACIÓN DE BASE DE DATOS ORACLE HACIA MYSQL] [MANUAL DE PROCEDIMIENTOS]
gt.linkedin.com/in/erickvidal/
@vidbaz
16. Posteriormente agregar el proceso extract y editar el archivo de parámetros del mismo
GGSCI (terminal.vidbaz.com.gt) 1> add extract EINIORCL, sourceistable
EXTRACT added.
GGSCI (terminal.vidbaz.com.gt) 2> info extract *, tasks
EXTRACT EINIORCL Initialized 2016-04-14 12:31 Status STOPPED
Checkpoint Lag Not Available
Log Read Checkpoint Not Available
First Record Record 0
Task SOURCEISTABLE
GGSCI (terminal.vidbaz.com.gt) 4> edit params EINIORCL
--
-- Archivo de Carga Inicial
--
EXTRACT EINIORCL
USERID GGUSER, PASSWORD oracle
RMTHOST terminal.vidbaz.com.gt, MGRPORT 7809
RMTTASK REPLICAT, GROUP RINIORCL
TABLE PRDAPP.TCUSTMER;
TABLE PRDAPP.TCUSTORD;
GGSCI (terminal.vidbaz.com.gt) 5>
17. Debido a que se esta realizando una replicacion heterogenea se debera generar un archive de
parametros en la base de datos fuente que posteriormente se pasara a la base de datos destino
GGSCI> EDIT PARAM DEFGEN
DEFSFILE ./dirdef/source.def, PURGE
USERID gguser, PASSWORD oracle
TABLE PRDAPP.TCUSTMER;
TABLE PRDAPP.TCUSTORD;
[oracle@terminal.vidbaz gg_orcl_source]$ ./defgen paramfile ./dirprm/defgen.prm
***********************************************************************
Oracle GoldenGate Table Definition Generator for Oracle
Version 11.2.1.0.3 14400833 OGGCORE_11.2.1.0.3_PLATFORMS_120823.1258
Linux, x64, 64bit (optimized), Oracle 11g on Aug 23 2012 16:58:29
[REPLICACIÓN DE BASE DE DATOS ORACLE HACIA MYSQL] [MANUAL DE PROCEDIMIENTOS]
gt.linkedin.com/in/erickvidal/
@vidbaz
Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
Starting at 2016-04-14 17:19:14
***********************************************************************
Operating System Version:
Linux
Version #1 SMP Wed Feb 22 17:37:40 EST 2012, Release 2.6.32-300.10.1.el5uek
Node: terminal.vidbaz.com.gt
Machine: x86_64
soft limit hard limit
Address Space Size : unlimited unlimited
Heap Size : unlimited unlimited
File Size : unlimited unlimited
CPU Time : unlimited unlimited
Process id: 24505
***********************************************************************
** Running with the following parameters **
***********************************************************************
DEFSFILE ./dirdef/source.def, PURGE
USERID gguser, PASSWORD ******
TABLE PRDAPP.TCUSTMER;
Retrieving definition for PRDAPP.TCUSTMER
TABLE PRDAPP.TCUSTORD;
Retrieving definition for PRDAPP.TCUSTORD
Definitions generated for 2 tables in ./dirdef/source.def
18. Enviar archivo de parámetros de definición a base de datos target
[oracle@terminal.vidbaz gg_orcl_source]$ scp ./dirdef/source.def
root@192.168.1.66:/u01/app/oracle/gg_orcl_target/dirdef/
root@192.168.1.66's password:
source.def
[REPLICACIÓN DE BASE DE DATOS ORACLE HACIA MYSQL] [MANUAL DE PROCEDIMIENTOS]
gt.linkedin.com/in/erickvidal/
@vidbaz
TARGET DATABASE (MYSQL)
19. Agregar el Archivo Replicate (en el cual ya contiene la información del archivo de parámetros de
definición generado en source a través de la herramienta defgen)
GGSCI (terminal.vidbaz.com.gt) 1> ADD REPLICAT RINIORCL, SPECIALRUN
GGSCI (terminal.vidbaz.com.gt) 2> INFO REPLICAT *, TASKS
GGSCI (terminal.vidbaz.com.gt) 3> EDIT PARAMS RINIORCL
--
-- Change Delivery parameter file for
-- TCUSTMER and TCUSTORD changes
--
REPLICAT RINIORCL
TARGETDB orcl@localhost, USERID OGGUSER, PASSWORD oracle
SOURCEDEFS ./dirdef/source.def
DISCARDFILE ./dirrpt/RINIORCL.dsc, PURGE
MAP PRDAPP/TCUSTMER, TARGET ORCL.TCUSTMER;
MAP PRDAPP/TCUSTORD, TARGET ORCL.TCUSTORD;
SOURCE DATABASE (ORACLE)
20. Iniciar el proceso de carga inicial
GGSCI (terminal.vidbaz.com.gt) 1> start extract EINIORCL
Sending START request to MANAGER ...
EXTRACT EINIORCL starting
TARGET DATABASE (MYSQL)
21. Verificar el reporte de la carga inicial para ver que no haya ocurrido ningún error.
GGSCI (terminal.vidbaz.com.gt) 1> view report riniorcl
Ver resultado de reporte en Anexos
22. Verificar que en las tablas de mysql se encuentre la información cargada.
mysql> select * from TCUSTMER;
+-----------+------------------+---------+-------+
| CUST_CODE | NAME | CITY | STATE |
+-----------+------------------+---------+-------+
[REPLICACIÓN DE BASE DE DATOS ORACLE HACIA MYSQL] [MANUAL DE PROCEDIMIENTOS]
gt.linkedin.com/in/erickvidal/
@vidbaz
| JANE | ROCKY FLYER INC. | DENVER | CO |
| WILL | BG SOFTWARE CO. | SEATTLE | WA |
+-----------+------------------+---------+-------+
2 rows in set (0.00 sec)
mysql> select * from TCUSTORD;
+-----------+---------------------+--------------+----------+---------------+----------------+----------------+
| CUST_CODE | ORDER_DATE | PRODUCT_CODE | ORDER_ID | PRODUCT_PRICE | PRODUCT_AMOUNT | TRANSACTION_ID |
+-----------+---------------------+--------------+----------+---------------+----------------+----------------+
| JANE | 1995-11-11 13:52:00 | PLANE | 256 | 133300.00 | 1 | 100 |
| WILL | 1994-09-30 15:33:00 | CAR | 144 | 17520.00 | 3 | 100 |
+-----------+---------------------+--------------+----------+---------------+----------------+----------------+
2 rows in set (0.00 sec)
mysql>
CAPTURAR LOS CAMBIOS (REPLICACIÓN EN LÍNEA)
Ahora se configura el proceso de extracción de los datos en tiempo real, lo cual permitirá la replicación
automática de la información de la base de datos Oracle hacia MySQL.
SOURCE DATABASE (ORACLE)
23. Agregando el proceso extract, verificando su creación y editando los parámetros
GGSCI> ADD EXTRACT EORAORCL, TRANLOG, BEGIN NOW
GGSCI> INFO EXTRACT EORAORCL
GGSCI> EDIT PARAMS EORAORCL
--
-- Change Capture parameter file to capture
-- TCUSTMER and TCUSTORD Changes
--
EXTRACT EORAORCL
USERID gguser, PASSWORD oracle
(Fuente: Oracle® GoldenGate Administering Oracle GoldenGate)
[REPLICACIÓN DE BASE DE DATOS ORACLE HACIA MYSQL] [MANUAL DE PROCEDIMIENTOS]
gt.linkedin.com/in/erickvidal/
@vidbaz
RMTHOST 192.168.56.103, MGRPORT 7809
TRANLOGOPTIONS ASMUSER sys@ASM, ASMPASSWORD oracle_4U
RMTTRAIL ./dirdat/lt
TABLE PRDAPP.TCUSTMER;
TABLE PRDAPP.TCUSTORD;
24. Ahora se agrega remote trail, recordando que en esta configuración no se hará un trail local sino que
la información será enviada a través de la red hacia el servidor destino, por eso la razón de crear el
remote trail.
GGSCI> ADD RMTTRAIL ./dirdat/lt, EXTRACT EORAORCL, MEGABYTES 5
--verificando los resultados:
GGSCI> INFO RMTTRAIL *
TARGET DATABASE (MYSQL)
25. Creando la tabla de Checkpoint, para esto se edita los parámetros de GLOBALS.
GGSCI> EDIT PARAMS ./GLOBALS
CHECKPOINTTABLE orcl.ggschkpt
GGSCI> DBLOGIN SOURCEDB orcl@localhost USERID ogguser, PASSWORD oracle
GGSCI> ADD CHECKPOINTTABLE
26. Agregar proceso de replicación
GGSCI> ADD REPLICAT RMSQORCL, EXTTRAIL ./dirdat/lt
GGSCI> EDIT PARAM RMSQORCL
--
-- Change Delivery parameter file to apply
-- TCUSTMER and TCUSTORD Changes
--
REPLICAT RMSQORCL
TARGETDB orcl@localhost, USERID ogguser, PASSWORD oracle
HANDLECOLLISIONS
SOURCEDEFS ./dirdef/source.def
DISCARDFILE ./dirrpt/RMSQORCL.DSC, PURGE
MAP PRDAPP.TCUSTMER, TARGET orcl.TCUSTMER;
MAP PRDAPP.TCUSTORD, TARGET orcl.TCUSTORD;
[REPLICACIÓN DE BASE DE DATOS ORACLE HACIA MYSQL] [MANUAL DE PROCEDIMIENTOS]
gt.linkedin.com/in/erickvidal/
@vidbaz
SOURCE DATABASE (ORACLE)
27. Iniciar el proceso de replicación y verificar resultados
GGSCI> START EXTRACT EORAORCL
--verificar resultados:
GGSCI> INFO EXTRACT EORAORCL, DETAIL
GGSCI> VIEW REPORT EORAORCL
GGSCI (terminal.vidbaz.com.gt) 3> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
EXTRACT RUNNING EORAORCL 00:00:00 00:00:03
TARGET DATABASE (MYSQL)
28. De igual forma en mysql iniciar el proceso y verificar resultados
GGSCI> START REPLICAT RMSQORCL
--Verificando los resultados:
GGSCI> INFO REPLICAT RMSQORCL
GGSCI (terminal.vidbaz.com.gt) 3> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
REPLICAT RUNNING RMSQORCL 00:00:00 00:00:00
[REPLICACIÓN DE BASE DE DATOS ORACLE HACIA MYSQL] [MANUAL DE PROCEDIMIENTOS]
gt.linkedin.com/in/erickvidal/
@vidbaz
ANEXOS
EJEMPLO DE ARCHIVO DEFGEN
[oracle@terminal.vidbaz gg_orcl_source]$ ./defgen paramfile ./dirprm/defgen.prm
***********************************************************************
Oracle GoldenGate Table Definition Generator for Oracle
Version 11.2.1.0.3 14400833 OGGCORE_11.2.1.0.3_PLATFORMS_120823.1258
Linux, x64, 64bit (optimized), Oracle 11g on Aug 23 2012 16:58:29
Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
Starting at 2016-04-14 17:19:14
***********************************************************************
Operating System Version:
Linux
Version #1 SMP Wed Feb 22 17:37:40 EST 2012, Release 2.6.32-300.10.1.el5uek
Node: terminal.vidbaz.com.gt
Machine: x86_64
soft limit hard limit
Address Space Size : unlimited unlimited
Heap Size : unlimited unlimited
File Size : unlimited unlimited
CPU Time : unlimited unlimited
Process id: 24505
***********************************************************************
** Running with the following parameters **
***********************************************************************
DEFSFILE ./dirdef/source.def, PURGE
USERID gguser, PASSWORD ******
TABLE PRDAPP.TCUSTMER;
Retrieving definition for PRDAPP.TCUSTMER
TABLE PRDAPP.TCUSTORD;
Retrieving definition for PRDAPP.TCUSTORD
Definitions generated for 2 tables in ./dirdef/source.def
[oracle@terminal.vidbaz gg_orcl_source]$ cat ./dirdef/source.def
*+- Defgen version 2.0, Encoding UTF-8
*
* Definitions created/modified 2016-04-14 17:19
*
* Field descriptions for each column entry:
*
* 1 Name
* 2 Data Type
* 3 External Length
* 4 Fetch Offset
[REPLICACIÓN DE BASE DE DATOS ORACLE HACIA MYSQL] [MANUAL DE PROCEDIMIENTOS]
gt.linkedin.com/in/erickvidal/
@vidbaz
* 5 Scale
* 6 Level
* 7 Null
* 8 Bump if Odd
* 9 Internal Length
* 10 Binary Length
* 11 Table Length
* 12 Most Significant DT
* 13 Least Significant DT
* 14 High Precision
* 15 Low Precision
* 16 Elementary Item
* 17 Occurs
* 18 Key Column
* 19 Sub Data Type
*
Database type: ORACLE
Character set ID: UTF-8
National character set ID: UTF-16
Locale: neutral
Case sensitivity: 14 14 14 14 14 14 14 14 14 14 14 14 11 14 14 14
*
Definition for table PRDAPP.TCUSTMER
Record length: 78
Syskey: 0
Columns: 4
CUST_CODE 64 4 0 0 0 1 0 4 4 0 0 0 0 0 1 0 1 0
NAME 64 30 10 0 0 1 0 30 30 0 0 0 0 0 1 0 0 0
CITY 64 20 46 0 0 1 0 20 20 0 0 0 0 0 1 0 0 0
STATE 0 2 72 0 0 1 0 2 2 0 0 0 0 0 1 0 0 0
End of definition
*
Definition for table PRDAPP.TCUSTORD
Record length: 182
Syskey: 0
Columns: 7
CUST_CODE 64 4 0 0 0 1 0 4 4 0 0 0 0 0 1 0 1 0
ORDER_DATE 192 19 10 0 0 1 0 19 19 19 0 5 0 0 1 0 1 0
PRODUCT_CODE 64 8 32 0 0 1 0 8 8 0 0 0 0 0 1 0 1 0
ORDER_ID 64 50 46 0 0 1 0 50 50 50 0 0 0 0 1 0 1 2
PRODUCT_PRICE 134 10 102 2 0 1 0 8 8 8 0 0 0 0 1 0 0 3
PRODUCT_AMOUNT 134 8 114 0 0 1 0 8 8 8 0 0 0 0 1 0 0 3
TRANSACTION_ID 64 50 126 0 0 1 0 50 50 50 0 0 0 0 1 0 0 2
End of definition
[oracle@terminal.vidbaz gg_orcl_source]$

More Related Content

What's hot (20)

PDF
Les nouveautés de MySQL 8.0
Frederic Descamps
 
PDF
Best Features of Multitenant 12c
Guatemala User Group
 
DOC
Schema replication using oracle golden gate 12c
uzzal basak
 
PDF
Oracle Drivers configuration for High Availability
Ludovico Caldara
 
PDF
MySQL Router REST API
Frederic Descamps
 
PDF
Ohio Linux Fest -- MySQL's NoSQL
Dave Stokes
 
PPT
Mysql Fun
SHC
 
PDF
Cloud native - Why to use MySQL 8.0 and how to use it on oci with MDS
Frederic Descamps
 
PDF
Mysql nowwhat
sqlhjalp
 
PDF
Long live to CMAN!
Ludovico Caldara
 
DOCX
Oracle 12c RAC On your laptop Step by Step Implementation Guide 1.0
Yury Velikanov
 
PDF
Pluggable Databases: What they will break and why you should use them anyway!
Guatemala User Group
 
PDF
Deploying Magento on OCI with MDS
Frederic Descamps
 
PDF
MySQL Utilities -- PyTexas 2015
Dave Stokes
 
PDF
Oracle Developer Live: Deploying MySQL InnoDB Cluster on OCI with Terraform
Frederic Descamps
 
PDF
MySQL as a Document Store
Dave Stokes
 
PDF
監査ログをもっと身近に!〜統合監査のすすめ〜
Michitoshi Yoshida
 
PDF
the State of the Dolphin - October 2020
Frederic Descamps
 
PDF
MySQL JSON Functions
Sveta Smirnova
 
PPTX
tow nodes Oracle 12c RAC on virtualbox
justinit
 
Les nouveautés de MySQL 8.0
Frederic Descamps
 
Best Features of Multitenant 12c
Guatemala User Group
 
Schema replication using oracle golden gate 12c
uzzal basak
 
Oracle Drivers configuration for High Availability
Ludovico Caldara
 
MySQL Router REST API
Frederic Descamps
 
Ohio Linux Fest -- MySQL's NoSQL
Dave Stokes
 
Mysql Fun
SHC
 
Cloud native - Why to use MySQL 8.0 and how to use it on oci with MDS
Frederic Descamps
 
Mysql nowwhat
sqlhjalp
 
Long live to CMAN!
Ludovico Caldara
 
Oracle 12c RAC On your laptop Step by Step Implementation Guide 1.0
Yury Velikanov
 
Pluggable Databases: What they will break and why you should use them anyway!
Guatemala User Group
 
Deploying Magento on OCI with MDS
Frederic Descamps
 
MySQL Utilities -- PyTexas 2015
Dave Stokes
 
Oracle Developer Live: Deploying MySQL InnoDB Cluster on OCI with Terraform
Frederic Descamps
 
MySQL as a Document Store
Dave Stokes
 
監査ログをもっと身近に!〜統合監査のすすめ〜
Michitoshi Yoshida
 
the State of the Dolphin - October 2020
Frederic Descamps
 
MySQL JSON Functions
Sveta Smirnova
 
tow nodes Oracle 12c RAC on virtualbox
justinit
 

Viewers also liked (20)

PDF
Programas 5º 2009
University of Arizona
 
PPTX
Diapositivas insertar texto
Cristian Roca
 
PPTX
Mantenimiento de la salud en las personas mayores
Lorena Contreras
 
PPTX
LOS DISPoSITIVOS MÓVILES COMO HERRAMIENTAS EDUCATIVAS EN LA ENSEÑANZA DEL IDI...
Gisela Martiz-W.
 
PPTX
Fase de planificacion - Proyecto de capacitación docente en la Universidad Be...
Servicio de Rentas Internas
 
XLSX
Copia de consulta de exelavatar
susanatieneunraton
 
PDF
Meditaciones.4pdf
University of Arizona
 
PPTX
Conociendo el viejo mundo
leito0715
 
PPT
Inauguración Biblioteca
biei
 
PPTX
IBIO
titis1098
 
PDF
Mitos y Creencias Religiosas Relacionadas a Donación de Órganos en Estudia...
Ximena Cabezas
 
PPT
Perfil profesional[321]
marinlema
 
PPTX
Costos fabricacion ronald
ChalioBatres
 
PPT
Generacion del 27
txuribeltza
 
PDF
Taller de los_sentidos
capicua7
 
PPTX
Jing!
glips12
 
PPS
Lección 17 maticez de colores
HOJA1
 
PPT
Metal live forever
LordJuanVegan
 
PDF
Las telecomunicaciones
mateorestrepo1996
 
PPT
Diapositivas con canción
kvethslc
 
Programas 5º 2009
University of Arizona
 
Diapositivas insertar texto
Cristian Roca
 
Mantenimiento de la salud en las personas mayores
Lorena Contreras
 
LOS DISPoSITIVOS MÓVILES COMO HERRAMIENTAS EDUCATIVAS EN LA ENSEÑANZA DEL IDI...
Gisela Martiz-W.
 
Fase de planificacion - Proyecto de capacitación docente en la Universidad Be...
Servicio de Rentas Internas
 
Copia de consulta de exelavatar
susanatieneunraton
 
Meditaciones.4pdf
University of Arizona
 
Conociendo el viejo mundo
leito0715
 
Inauguración Biblioteca
biei
 
IBIO
titis1098
 
Mitos y Creencias Religiosas Relacionadas a Donación de Órganos en Estudia...
Ximena Cabezas
 
Perfil profesional[321]
marinlema
 
Costos fabricacion ronald
ChalioBatres
 
Generacion del 27
txuribeltza
 
Taller de los_sentidos
capicua7
 
Jing!
glips12
 
Lección 17 maticez de colores
HOJA1
 
Metal live forever
LordJuanVegan
 
Las telecomunicaciones
mateorestrepo1996
 
Diapositivas con canción
kvethslc
 
Ad

Similar to Manual Tecnico OGG Oracle to MySQL (20)

PPTX
Oracle Goldengate Architecture & Setup.pptx
AmirShahirRoslan
 
PDF
Oracle GoldenGate DB2 to Oracle11gR2 Configuration
grigorianvlad
 
PDF
Oracle to MySQL DatabaseLink
Osama Mustafa
 
PDF
MySQL innodb cluster and Group Replication in a nutshell - hands-on tutorial ...
Frederic Descamps
 
PDF
Setup oracle golden gate 11g replication
Kanwar Batra
 
PDF
Breaking the-database-type-barrier-replicating-across-different-dbms
Linas Virbalas
 
PDF
Liberating Your Data From MySQL: Cross-Database Replication to the Rescue!
Linas Virbalas
 
PDF
Tungsten Use Case: How Gittigidiyor (a subsidiary of eBay) Replicates Data In...
Continuent
 
PDF
Flexible Replication
Linas Virbalas
 
PDF
Oracle day co_opensource_final
Manuel Contreras
 
PDF
Oracle DB 11g R2 Research (Installation, Users and Privileges, Audit Trail, E...
Duc Lai Trung Minh
 
PDF
Install Oracle 12c Golden Gate On Oracle Linux
Arun Sharma
 
TXT
data_all_oracle
raviranchi02
 
PDF
Embracing Database Diversity: The New Oracle / MySQL DBA - UKOUG
Keith Hollman
 
PDF
Replicate Oracle to Oracle, Oracle to MySQL, and Oracle to Analytics
Linas Virbalas
 
PDF
UKOUG 2011: MySQL Architectures for Oracle DBA's
FromDual GmbH
 
PPTX
Oracle real time replica solution (Oracle GoldenGate) in Telco and FSI vertic...
Milomir Vojvodic
 
PDF
MySQL 8.0 InnoDB Cluster - Easiest Tutorial
Frederic Descamps
 
PDF
Another MySQL HA Solution for ProxySQL Users, Easy and All Integrated: MySQL ...
Frederic Descamps
 
PDF
20161029 py con-mysq-lv3
Ivan Ma
 
Oracle Goldengate Architecture & Setup.pptx
AmirShahirRoslan
 
Oracle GoldenGate DB2 to Oracle11gR2 Configuration
grigorianvlad
 
Oracle to MySQL DatabaseLink
Osama Mustafa
 
MySQL innodb cluster and Group Replication in a nutshell - hands-on tutorial ...
Frederic Descamps
 
Setup oracle golden gate 11g replication
Kanwar Batra
 
Breaking the-database-type-barrier-replicating-across-different-dbms
Linas Virbalas
 
Liberating Your Data From MySQL: Cross-Database Replication to the Rescue!
Linas Virbalas
 
Tungsten Use Case: How Gittigidiyor (a subsidiary of eBay) Replicates Data In...
Continuent
 
Flexible Replication
Linas Virbalas
 
Oracle day co_opensource_final
Manuel Contreras
 
Oracle DB 11g R2 Research (Installation, Users and Privileges, Audit Trail, E...
Duc Lai Trung Minh
 
Install Oracle 12c Golden Gate On Oracle Linux
Arun Sharma
 
data_all_oracle
raviranchi02
 
Embracing Database Diversity: The New Oracle / MySQL DBA - UKOUG
Keith Hollman
 
Replicate Oracle to Oracle, Oracle to MySQL, and Oracle to Analytics
Linas Virbalas
 
UKOUG 2011: MySQL Architectures for Oracle DBA's
FromDual GmbH
 
Oracle real time replica solution (Oracle GoldenGate) in Telco and FSI vertic...
Milomir Vojvodic
 
MySQL 8.0 InnoDB Cluster - Easiest Tutorial
Frederic Descamps
 
Another MySQL HA Solution for ProxySQL Users, Easy and All Integrated: MySQL ...
Frederic Descamps
 
20161029 py con-mysq-lv3
Ivan Ma
 
Ad

Recently uploaded (20)

PDF
Complete JavaScript Notes: From Basics to Advanced Concepts.pdf
haydendavispro
 
PDF
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
PDF
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PDF
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
PDF
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PDF
Timothy Rottach - Ramp up on AI Use Cases, from Vector Search to AI Agents wi...
AWS Chicago
 
PDF
From Code to Challenge: Crafting Skill-Based Games That Engage and Reward
aiyshauae
 
PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PPTX
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PPTX
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
Complete JavaScript Notes: From Basics to Advanced Concepts.pdf
haydendavispro
 
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
Timothy Rottach - Ramp up on AI Use Cases, from Vector Search to AI Agents wi...
AWS Chicago
 
From Code to Challenge: Crafting Skill-Based Games That Engage and Reward
aiyshauae
 
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 

Manual Tecnico OGG Oracle to MySQL

  • 1. Replicación de Base de datos Oracle hacia MySQL Oracle Golden Gate 11gR2 Este documento contiene los pasos necesarios para lograr realizar replicación Heterogenia entre la base de datos Oracle y MySQL 2016 Erick Vidal 17/04/2016
  • 2. [REPLICACIÓN DE BASE DE DATOS ORACLE HACIA MYSQL] [MANUAL DE PROCEDIMIENTOS] gt.linkedin.com/in/erickvidal/ @vidbaz CONTENIDO Entorno ......................................................................................................................................................................................................3 Instalación..................................................................................................................................................................................................3 Source Database (Oracle 11gR2)............................................................................................................................................................3 Target Database (MySQL) ......................................................................................................................................................................7 Carga Inicial..............................................................................................................................................................................................11 Source Database (Oracle) ....................................................................................................................................................................11 Target Database (MySQL) ....................................................................................................................................................................14 Source Database (Oracle) ....................................................................................................................................................................14 Target Database (MySQL) ....................................................................................................................................................................14 Capturar los Cambios (replicación en línea) ............................................................................................................................................15 Source Database (Oracle) ....................................................................................................................................................................15 Target Database (MySQL) ....................................................................................................................................................................16 Source Database (Oracle) ....................................................................................................................................................................17 Target Database (MySQL) ....................................................................................................................................................................17 Anexos......................................................................................................................................................................................................18 Ejemplo de Archivo defgen..................................................................................................................................................................18
  • 3. [REPLICACIÓN DE BASE DE DATOS ORACLE HACIA MYSQL] [MANUAL DE PROCEDIMIENTOS] gt.linkedin.com/in/erickvidal/ @vidbaz MANUAL DE PROCEDIMIENTOS ENTORNO A continuación se realizara la replicación heterogénea entre la bases de datos Oracle y MySQL por medio de la herramienta Oracle Golden Gate. Inicialmente se debe tener instalado ambos motores de bases de datos en diferentes servidores, para poder realizar dicha replicación, posteriormente se realiza la carga inicial y finalizando con el proceso de cambios en línea. La infraestructura básica del hardware a utilizar se muestra a continuación: INSTALACIÓN SOURCE DATABASE (ORACLE 11GR2) 1. Descargar Oracle Golden Gate para Linux http://edelivery.oracle.com/ 2. Descomprimir en el directorio que se utilizara como home de la instalación #Creación del directorio donde se realizara la instalación [[email protected] ~]$ mkdir /u01/app/oracle/gg_orcl_source #ingreso del directorio en en profile de linux, para facilidad de acceso (Opcional) [[email protected] ~]$ vi .bash_profile [[email protected] ~]$ cd $GG_HOME [[email protected] gg_orcl_source]$ pwd Oracle DB: ORCL IP:192.168.56.102 SH: PRDAPP Mysql DB: ORCL IP:192.168.56.103 SH: PRDAPP
  • 4. [REPLICACIÓN DE BASE DE DATOS ORACLE HACIA MYSQL] [MANUAL DE PROCEDIMIENTOS] gt.linkedin.com/in/erickvidal/ @vidbaz /u01/app/oracle/gg_orcl_source #Descompresion del binario de OGG [[email protected] gg_orcl_source]$ unzip V34339-01.zip Archive: V34339-01.zip inflating: fbo_ggs_Linux_x64_ora11g_64bit.tar inflating: Oracle_GoldenGate_11.2.1.0.3_README.doc inflating: Oracle GoldenGate_11.2.1.0.3_README.txt inflating: OGG_WinUnix_Rel_Notes_11.2.1.0.3.pdf [[email protected] gg_orcl_source]$ tar -xvof fbo_ggs_Linux_x64_ora11g_64bit.tar 3. Ingresar a la consola de GoldenGate GGSCI (GoldenGate Software Command Interface) [[email protected] gg_orcl_source]$ . oraenv ORACLE_SID = [oracle] ? orcl The Oracle base has been set to /u01/app/oracle [[email protected] gg_orcl_source]$ ./ggsci Oracle GoldenGate Command Interpreter for Oracle Version 11.2.1.0.3 14400833 OGGCORE_11.2.1.0.3_PLATFORMS_120823.1258_FBO Linux, x64, 64bit (optimized), Oracle 11g on Aug 23 2012 20:20:21 Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved. 4. Ahora se deberán crear los Directorios que utilizara GoldenGate para la ejecución GGSCI (terminal.vidbaz.com.gt) 1> create subdirs Creating subdirectories under current directory /u01/app/oracle/gg_orcl_source Parameter files /u01/app/oracle/gg_orcl_source/dirprm: already exists Report files /u01/app/oracle/gg_orcl_source/dirrpt: created Checkpoint files /u01/app/oracle/gg_orcl_source/dirchk: created Process status files /u01/app/oracle/gg_orcl_source/dirpcs: created SQL script files /u01/app/oracle/gg_orcl_source/dirsql: created Database definitions files /u01/app/oracle/gg_orcl_source/dirdef: created Extract data files /u01/app/oracle/gg_orcl_source/dirdat: created Temporary files /u01/app/oracle/gg_orcl_source/dirtmp: created Stdout files /u01/app/oracle/gg_orcl_source/dirout: created GGSCI (terminal.vidbaz.com.gt) 3> exit 5. Verificando que los directorios estén creados [[email protected] gg_orcl_source]$ ls -ltrd dir* drwxr-x--- 2 oracle oinstall 4096 Aug 23 2012 dirprm drwxr-x--- 2 oracle oinstall 4096 Aug 23 2012 dirjar
  • 5. [REPLICACIÓN DE BASE DE DATOS ORACLE HACIA MYSQL] [MANUAL DE PROCEDIMIENTOS] gt.linkedin.com/in/erickvidal/ @vidbaz drwxrwxr-x 2 oracle oinstall 4096 Apr 14 00:29 dirtmp drwxrwxr-x 2 oracle oinstall 4096 Apr 14 00:29 dirsql drwxrwxr-x 2 oracle oinstall 4096 Apr 14 00:29 dirrpt drwxrwxr-x 2 oracle oinstall 4096 Apr 14 00:29 dirpcs drwxrwxr-x 2 oracle oinstall 4096 Apr 14 00:29 dirout drwxrwxr-x 2 oracle oinstall 4096 Apr 14 00:29 dirdef drwxrwxr-x 2 oracle oinstall 4096 Apr 14 00:29 dirdat drwxrwxr-x 2 oracle oinstall 4096 Apr 14 00:29 dirchk 6. Luego de la creación de los directorios se deberá preparar las tablas que se replicaran de la base de datos destino, para este ejemplo se utilizar las tablas que traen de ejemplo el software de OGG. Primero se deberá crear el esquema que contendrá las tablas a ser replicadas y posteriormente se creara el usuario de OGG el cual será el encargado de comunicar OGG a la base de datos Oracle. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production With the Partitioning, Automatic Storage Management, OLAP, Data Mining and Real Application Testing options SQL> CREATE USER PRDAPP IDENTIFIED BY oracle DEFAULT TABLESPACE users QUOTA UNLIMITED ON users; 2 3 User created. SQL> GRANT DBA TO PRDAPP; Grant succeeded. SQL> connect prdapp/oracle Connected. SQL>-- creación del usuario de OGG SQL> CREATE USER GGUSER IDENTIFIED BY oracle DEFAULT TABLESPACE users QUOTA UNLIMITED ON users; GRANT DBA TO GGUSER; 2 3 User created. SQL> SQL> Grant succeeded. SQL>
  • 6. [REPLICACIÓN DE BASE DE DATOS ORACLE HACIA MYSQL] [MANUAL DE PROCEDIMIENTOS] gt.linkedin.com/in/erickvidal/ @vidbaz 7. A continuación se ejecutaran los scripts de demostración @demo_ora_create.sql y @demo_ora_insert.sql SQL> connect prdapp/oracle Connected. SQL> @demo_ora_create.sql DROP TABLE tcustmer * ERROR at line 1: ORA-00942: table or view does not exist Table created. DROP TABLE tcustord * ERROR at line 1: ORA-00942: table or view does not exist Table created. SQL> @demo_ora_insert.sql 1 row created. 1 row created. 1 row created. 1 row created. Commit complete. SQL> select * from tcustmer; CUST NAME CITY ST ---- ------------------------------ -------------------- -- WILL BG SOFTWARE CO. SEATTLE WA JANE ROCKY FLYER INC. DENVER CO SQL> select * from tcustord;
  • 7. [REPLICACIÓN DE BASE DE DATOS ORACLE HACIA MYSQL] [MANUAL DE PROCEDIMIENTOS] gt.linkedin.com/in/erickvidal/ @vidbaz CUST ORDER_DAT PRODUCT_ ORDER_ID PRODUCT_PRICE PRODUCT_AMOUNT TRANSACTION_ID ---- --------- -------- ---------- ------------- -------------- -------------- WILL 30-SEP-94 CAR 144 17520 3 100 JANE 11-NOV-95 PLANE 256 133300 1 100 8. Posteriormente se deberá iniciar el proceso MANAGER, el cual es el encargado de gestionar y monitorear los demás procesos de OGG, para mayor información visitar Oracle® GoldenGate Windows and UNIX Administrator’s Guide 11g Release 2 (Oracle, 2012) [[email protected] gg_orcl_source]$ ./ggsci Oracle GoldenGate Command Interpreter for Oracle Version 11.2.1.0.3 14400833 OGGCORE_11.2.1.0.3_PLATFORMS_120823.1258_FBO Linux, x64, 64bit (optimized), Oracle 11g on Aug 23 2012 20:20:21 Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved. GGSCI (terminal.vidbaz.com.gt) 1> info all Program Status Group Lag at Chkpt Time Since Chkpt MANAGER STOPPED GGSCI (terminal.vidbaz.com.gt) 2> edit params mgr #se deberá editar el archive de parámetros de manager indicando el Puerto PORT 7809 GGSCI (terminal.vidbaz.com.gt) 3> start manager Manager started. GGSCI (terminal.vidbaz.com.gt) 4> info mgr Manager is running (IP port terminal.vidbaz.com.gt.7809). GGSCI (terminal.vidbaz.com.gt) 5> exit TARGET DATABASE (MYSQL) 9. Se deberá descargar los binarios de GoldenGate para la base de datos MySQL de igual forma se puede descargar de Oracle Software Delivery Cloud, se deberá descomprimir en el directorio donde se desea instalar OGG
  • 8. [REPLICACIÓN DE BASE DE DATOS ORACLE HACIA MYSQL] [MANUAL DE PROCEDIMIENTOS] gt.linkedin.com/in/erickvidal/ @vidbaz [[email protected] gg_orcl_target]# unzip V32399-01.zip Archive: V32399-01.zip inflating: ggs_Linux_x64_MySQL_64bit.tar inflating: OGG_WinUnix_Rel_Notes_11.2.1.0.1.pdf inflating: Oracle GoldenGate 11.2.1.0.1 README.txt inflating: Oracle GoldenGate 11.2.1.0.1 README.doc [[email protected] gg_orcl_target]# tar -xvof ggs_Linux_x64_MySQL_64bit.tar 10. Se deberá crear la variable de entorno GG_HOME para su fácil acceso, posteriormente ingresar a la consola GGSCI, y crear los directorios necesarios para la configuración de GoldenGate (los pasos son iguales que cuando se configuro la base de datos fuente. [email protected] gg_orcl_target]# ./ggsci Oracle GoldenGate Command Interpreter for MySQL Version 11.2.1.0.1 OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230 Linux, x64, 64bit (optimized), MySQL Enterprise on Apr 23 2012 04:34:25 Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved. GGSCI (terminal.vidbaz.com.gt) 1> create subdirs Creating subdirectories under current directory /u01/app/oracle/gg_orcl_target Parameter files /u01/app/oracle/gg_orcl_target/dirprm: already exists Report files /u01/app/oracle/gg_orcl_target/dirrpt: created Checkpoint files /u01/app/oracle/gg_orcl_target/dirchk: created Process status files /u01/app/oracle/gg_orcl_target/dirpcs: created SQL script files /u01/app/oracle/gg_orcl_target/dirsql: created Database definitions files /u01/app/oracle/gg_orcl_target/dirdef: created Extract data files /u01/app/oracle/gg_orcl_target/dirdat: created Temporary files /u01/app/oracle/gg_orcl_target/dirtmp: created Stdout files /u01/app/oracle/gg_orcl_target/dirout: created GGSCI (terminal.vidbaz.com.gt) 2> exit [[email protected] gg_orcl_target]# ls -ltrd dir* drwxr-x---. 1 root root 20 Apr 23 2012 dirprm drwxr-x---. 1 root root 2758 Apr 23 2012 dirjar drwxrwxr-x. 1 root root 0 Apr 14 10:36 dirsql drwxrwxr-x. 1 root root 0 Apr 14 10:36 dirrpt drwxrwxr-x. 1 root root 0 Apr 14 10:36 dirpcs drwxrwxr-x. 1 root root 0 Apr 14 10:36 dirdef drwxrwxr-x. 1 root root 0 Apr 14 10:36 dirdat drwxrwxr-x. 1 root root 0 Apr 14 10:36 dirchk drwxrwxr-x. 1 root root 0 Apr 14 10:36 dirtmp
  • 9. [REPLICACIÓN DE BASE DE DATOS ORACLE HACIA MYSQL] [MANUAL DE PROCEDIMIENTOS] gt.linkedin.com/in/erickvidal/ @vidbaz drwxrwxr-x. 1 root root 0 Apr 14 10:36 dirout [[email protected] gg_orcl_target]# ./ggsci 11. Editar el Puerto del manager, he iniciar dicho proceso. [[email protected] gg_orcl_target]# ./ggsci Oracle GoldenGate Command Interpreter for MySQL Version 11.2.1.0.1 OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230 Linux, x64, 64bit (optimized), MySQL Enterprise on Apr 23 2012 04:34:25 Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved. GGSCI (terminal.vidbaz.com.gt) 1> edit params mgr #configurar el Puerto 7809 PORT 7809 GGSCI (terminal.vidbaz.com.gt) 2> start mgr Manager started. GGSCI (terminal.vidbaz.com.gt) 3> info mgr Manager is running (IP port terminal.vidbaz.com.gt.7809). GGSCI (terminal.vidbaz.com.gt) 4> exit 12. Ingresar a MySQL y crear la base de datos, que en este ejemplo se llamara orcl mysql> CREATE DATABASE orcl; Query OK, 1 row affected (0.00 sec) mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | orcl | | test | +--------------------+ 4 rows in set (0.00 sec) mysql> use orcl
  • 10. [REPLICACIÓN DE BASE DE DATOS ORACLE HACIA MYSQL] [MANUAL DE PROCEDIMIENTOS] gt.linkedin.com/in/erickvidal/ @vidbaz Database changed 13. Crear y asignar permisos al usuario de base de datos por el cual GoldenGate tendrá acceso a la misma mysql> CREATE USER 'ogguser'@'localhost' IDENTIFIED BY 'oracle'; Query OK, 0 rows affected (0.00 sec) mysql> GRANT ALL PRIVILEGES ON * . * TO 'ogguser'@'localhost'; Query OK, 0 rows affected (0.00 sec) mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.00 sec) mysql> exit Bye 14. Crear las tablas que serán replicadas desde la base de datos Oracle [[email protected] gg_orcl_target]# mysql orcl -uogguser -poracle < demo_mysql_create.sql mysql> describe TCUSTMER; +-----------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------+-------------+------+-----+---------+-------+ | CUST_CODE | varchar(4) | NO | PRI | NULL | | | NAME | varchar(30) | YES | | NULL | | | CITY | varchar(20) | YES | | NULL | | | STATE | char(2) | YES | | NULL | | +-----------+-------------+------+-----+---------+-------+ 4 rows in set (0.01 sec) mysql> describe tcustord; ERROR 1146 (42S02): Table 'orcl.tcustord' doesn't exist mysql> describe TCUSTORD; +----------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------------+--------------+------+-----+---------+-------+ | CUST_CODE | varchar(4) | NO | PRI | NULL | | | ORDER_DATE | datetime | NO | PRI | NULL | | | PRODUCT_CODE | varchar(8) | NO | PRI | NULL | | | ORDER_ID | int(11) | NO | PRI | NULL | | | PRODUCT_PRICE | decimal(8,2) | YES | | NULL | | | PRODUCT_AMOUNT | int(11) | YES | | NULL | | | TRANSACTION_ID | float | YES | | NULL | | +----------------+--------------+------+-----+---------+-------+ 7 rows in set (0.00 sec)
  • 11. [REPLICACIÓN DE BASE DE DATOS ORACLE HACIA MYSQL] [MANUAL DE PROCEDIMIENTOS] gt.linkedin.com/in/erickvidal/ @vidbaz mysql> CARGA INICIAL El método que se utilizara para realizar la carga inicial es la carga directa a través de GoldenGate, para volúmenes grandes de información, se recomienda utilizar Bulk, Data Pump, entre otros. A continuación se muestra un esquema de la carga Inicial (Initail-Load): SOURCE DATABASE (ORACLE) 15. Comprobar la conexión hacia la base de datos por medio del comando DBLOGIN, y posteriormente activar el supplemental logging a las tablas que se estarán replicando GGSCI (terminal.vidbaz.com.gt) 2> dblogin userid gguser, password oracle Successfully logged into database. GGSCI (terminal.vidbaz.com.gt) 3> add trandata prdapp.tcustmer Logging of supplemental redo data enabled for table PRDAPP.TCUSTMER. GGSCI (terminal.vidbaz.com.gt) 4> add trandata prdapp.tcustord Logging of supplemental redo data enabled for table PRDAPP.TCUSTORD. GGSCI (terminal.vidbaz.com.gt) 5> info trandata prdapp.tcust* Logging of supplemental redo log data is enabled for table PRDAPP.TCUSTMER. Columns supplementally logged for table PRDAPP.TCUSTMER: CUST_CODE. Logging of supplemental redo log data is enabled for table PRDAPP.TCUSTORD. Columns supplementally logged for table PRDAPP.TCUSTORD: CUST_CODE, ORDER_DATE, PRODUCT_CODE, ORDER_ID. GGSCI (terminal.vidbaz.com.gt) 6> exit [[email protected] gg_orcl_source]$ (Fuente: Oracle® GoldenGate Administering Oracle GoldenGate)
  • 12. [REPLICACIÓN DE BASE DE DATOS ORACLE HACIA MYSQL] [MANUAL DE PROCEDIMIENTOS] gt.linkedin.com/in/erickvidal/ @vidbaz 16. Posteriormente agregar el proceso extract y editar el archivo de parámetros del mismo GGSCI (terminal.vidbaz.com.gt) 1> add extract EINIORCL, sourceistable EXTRACT added. GGSCI (terminal.vidbaz.com.gt) 2> info extract *, tasks EXTRACT EINIORCL Initialized 2016-04-14 12:31 Status STOPPED Checkpoint Lag Not Available Log Read Checkpoint Not Available First Record Record 0 Task SOURCEISTABLE GGSCI (terminal.vidbaz.com.gt) 4> edit params EINIORCL -- -- Archivo de Carga Inicial -- EXTRACT EINIORCL USERID GGUSER, PASSWORD oracle RMTHOST terminal.vidbaz.com.gt, MGRPORT 7809 RMTTASK REPLICAT, GROUP RINIORCL TABLE PRDAPP.TCUSTMER; TABLE PRDAPP.TCUSTORD; GGSCI (terminal.vidbaz.com.gt) 5> 17. Debido a que se esta realizando una replicacion heterogenea se debera generar un archive de parametros en la base de datos fuente que posteriormente se pasara a la base de datos destino GGSCI> EDIT PARAM DEFGEN DEFSFILE ./dirdef/source.def, PURGE USERID gguser, PASSWORD oracle TABLE PRDAPP.TCUSTMER; TABLE PRDAPP.TCUSTORD; [[email protected] gg_orcl_source]$ ./defgen paramfile ./dirprm/defgen.prm *********************************************************************** Oracle GoldenGate Table Definition Generator for Oracle Version 11.2.1.0.3 14400833 OGGCORE_11.2.1.0.3_PLATFORMS_120823.1258 Linux, x64, 64bit (optimized), Oracle 11g on Aug 23 2012 16:58:29
  • 13. [REPLICACIÓN DE BASE DE DATOS ORACLE HACIA MYSQL] [MANUAL DE PROCEDIMIENTOS] gt.linkedin.com/in/erickvidal/ @vidbaz Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved. Starting at 2016-04-14 17:19:14 *********************************************************************** Operating System Version: Linux Version #1 SMP Wed Feb 22 17:37:40 EST 2012, Release 2.6.32-300.10.1.el5uek Node: terminal.vidbaz.com.gt Machine: x86_64 soft limit hard limit Address Space Size : unlimited unlimited Heap Size : unlimited unlimited File Size : unlimited unlimited CPU Time : unlimited unlimited Process id: 24505 *********************************************************************** ** Running with the following parameters ** *********************************************************************** DEFSFILE ./dirdef/source.def, PURGE USERID gguser, PASSWORD ****** TABLE PRDAPP.TCUSTMER; Retrieving definition for PRDAPP.TCUSTMER TABLE PRDAPP.TCUSTORD; Retrieving definition for PRDAPP.TCUSTORD Definitions generated for 2 tables in ./dirdef/source.def 18. Enviar archivo de parámetros de definición a base de datos target [[email protected] gg_orcl_source]$ scp ./dirdef/source.def [email protected]:/u01/app/oracle/gg_orcl_target/dirdef/ [email protected]'s password: source.def
  • 14. [REPLICACIÓN DE BASE DE DATOS ORACLE HACIA MYSQL] [MANUAL DE PROCEDIMIENTOS] gt.linkedin.com/in/erickvidal/ @vidbaz TARGET DATABASE (MYSQL) 19. Agregar el Archivo Replicate (en el cual ya contiene la información del archivo de parámetros de definición generado en source a través de la herramienta defgen) GGSCI (terminal.vidbaz.com.gt) 1> ADD REPLICAT RINIORCL, SPECIALRUN GGSCI (terminal.vidbaz.com.gt) 2> INFO REPLICAT *, TASKS GGSCI (terminal.vidbaz.com.gt) 3> EDIT PARAMS RINIORCL -- -- Change Delivery parameter file for -- TCUSTMER and TCUSTORD changes -- REPLICAT RINIORCL TARGETDB orcl@localhost, USERID OGGUSER, PASSWORD oracle SOURCEDEFS ./dirdef/source.def DISCARDFILE ./dirrpt/RINIORCL.dsc, PURGE MAP PRDAPP/TCUSTMER, TARGET ORCL.TCUSTMER; MAP PRDAPP/TCUSTORD, TARGET ORCL.TCUSTORD; SOURCE DATABASE (ORACLE) 20. Iniciar el proceso de carga inicial GGSCI (terminal.vidbaz.com.gt) 1> start extract EINIORCL Sending START request to MANAGER ... EXTRACT EINIORCL starting TARGET DATABASE (MYSQL) 21. Verificar el reporte de la carga inicial para ver que no haya ocurrido ningún error. GGSCI (terminal.vidbaz.com.gt) 1> view report riniorcl Ver resultado de reporte en Anexos 22. Verificar que en las tablas de mysql se encuentre la información cargada. mysql> select * from TCUSTMER; +-----------+------------------+---------+-------+ | CUST_CODE | NAME | CITY | STATE | +-----------+------------------+---------+-------+
  • 15. [REPLICACIÓN DE BASE DE DATOS ORACLE HACIA MYSQL] [MANUAL DE PROCEDIMIENTOS] gt.linkedin.com/in/erickvidal/ @vidbaz | JANE | ROCKY FLYER INC. | DENVER | CO | | WILL | BG SOFTWARE CO. | SEATTLE | WA | +-----------+------------------+---------+-------+ 2 rows in set (0.00 sec) mysql> select * from TCUSTORD; +-----------+---------------------+--------------+----------+---------------+----------------+----------------+ | CUST_CODE | ORDER_DATE | PRODUCT_CODE | ORDER_ID | PRODUCT_PRICE | PRODUCT_AMOUNT | TRANSACTION_ID | +-----------+---------------------+--------------+----------+---------------+----------------+----------------+ | JANE | 1995-11-11 13:52:00 | PLANE | 256 | 133300.00 | 1 | 100 | | WILL | 1994-09-30 15:33:00 | CAR | 144 | 17520.00 | 3 | 100 | +-----------+---------------------+--------------+----------+---------------+----------------+----------------+ 2 rows in set (0.00 sec) mysql> CAPTURAR LOS CAMBIOS (REPLICACIÓN EN LÍNEA) Ahora se configura el proceso de extracción de los datos en tiempo real, lo cual permitirá la replicación automática de la información de la base de datos Oracle hacia MySQL. SOURCE DATABASE (ORACLE) 23. Agregando el proceso extract, verificando su creación y editando los parámetros GGSCI> ADD EXTRACT EORAORCL, TRANLOG, BEGIN NOW GGSCI> INFO EXTRACT EORAORCL GGSCI> EDIT PARAMS EORAORCL -- -- Change Capture parameter file to capture -- TCUSTMER and TCUSTORD Changes -- EXTRACT EORAORCL USERID gguser, PASSWORD oracle (Fuente: Oracle® GoldenGate Administering Oracle GoldenGate)
  • 16. [REPLICACIÓN DE BASE DE DATOS ORACLE HACIA MYSQL] [MANUAL DE PROCEDIMIENTOS] gt.linkedin.com/in/erickvidal/ @vidbaz RMTHOST 192.168.56.103, MGRPORT 7809 TRANLOGOPTIONS ASMUSER sys@ASM, ASMPASSWORD oracle_4U RMTTRAIL ./dirdat/lt TABLE PRDAPP.TCUSTMER; TABLE PRDAPP.TCUSTORD; 24. Ahora se agrega remote trail, recordando que en esta configuración no se hará un trail local sino que la información será enviada a través de la red hacia el servidor destino, por eso la razón de crear el remote trail. GGSCI> ADD RMTTRAIL ./dirdat/lt, EXTRACT EORAORCL, MEGABYTES 5 --verificando los resultados: GGSCI> INFO RMTTRAIL * TARGET DATABASE (MYSQL) 25. Creando la tabla de Checkpoint, para esto se edita los parámetros de GLOBALS. GGSCI> EDIT PARAMS ./GLOBALS CHECKPOINTTABLE orcl.ggschkpt GGSCI> DBLOGIN SOURCEDB orcl@localhost USERID ogguser, PASSWORD oracle GGSCI> ADD CHECKPOINTTABLE 26. Agregar proceso de replicación GGSCI> ADD REPLICAT RMSQORCL, EXTTRAIL ./dirdat/lt GGSCI> EDIT PARAM RMSQORCL -- -- Change Delivery parameter file to apply -- TCUSTMER and TCUSTORD Changes -- REPLICAT RMSQORCL TARGETDB orcl@localhost, USERID ogguser, PASSWORD oracle HANDLECOLLISIONS SOURCEDEFS ./dirdef/source.def DISCARDFILE ./dirrpt/RMSQORCL.DSC, PURGE MAP PRDAPP.TCUSTMER, TARGET orcl.TCUSTMER; MAP PRDAPP.TCUSTORD, TARGET orcl.TCUSTORD;
  • 17. [REPLICACIÓN DE BASE DE DATOS ORACLE HACIA MYSQL] [MANUAL DE PROCEDIMIENTOS] gt.linkedin.com/in/erickvidal/ @vidbaz SOURCE DATABASE (ORACLE) 27. Iniciar el proceso de replicación y verificar resultados GGSCI> START EXTRACT EORAORCL --verificar resultados: GGSCI> INFO EXTRACT EORAORCL, DETAIL GGSCI> VIEW REPORT EORAORCL GGSCI (terminal.vidbaz.com.gt) 3> info all Program Status Group Lag at Chkpt Time Since Chkpt MANAGER RUNNING EXTRACT RUNNING EORAORCL 00:00:00 00:00:03 TARGET DATABASE (MYSQL) 28. De igual forma en mysql iniciar el proceso y verificar resultados GGSCI> START REPLICAT RMSQORCL --Verificando los resultados: GGSCI> INFO REPLICAT RMSQORCL GGSCI (terminal.vidbaz.com.gt) 3> info all Program Status Group Lag at Chkpt Time Since Chkpt MANAGER RUNNING REPLICAT RUNNING RMSQORCL 00:00:00 00:00:00
  • 18. [REPLICACIÓN DE BASE DE DATOS ORACLE HACIA MYSQL] [MANUAL DE PROCEDIMIENTOS] gt.linkedin.com/in/erickvidal/ @vidbaz ANEXOS EJEMPLO DE ARCHIVO DEFGEN [[email protected] gg_orcl_source]$ ./defgen paramfile ./dirprm/defgen.prm *********************************************************************** Oracle GoldenGate Table Definition Generator for Oracle Version 11.2.1.0.3 14400833 OGGCORE_11.2.1.0.3_PLATFORMS_120823.1258 Linux, x64, 64bit (optimized), Oracle 11g on Aug 23 2012 16:58:29 Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved. Starting at 2016-04-14 17:19:14 *********************************************************************** Operating System Version: Linux Version #1 SMP Wed Feb 22 17:37:40 EST 2012, Release 2.6.32-300.10.1.el5uek Node: terminal.vidbaz.com.gt Machine: x86_64 soft limit hard limit Address Space Size : unlimited unlimited Heap Size : unlimited unlimited File Size : unlimited unlimited CPU Time : unlimited unlimited Process id: 24505 *********************************************************************** ** Running with the following parameters ** *********************************************************************** DEFSFILE ./dirdef/source.def, PURGE USERID gguser, PASSWORD ****** TABLE PRDAPP.TCUSTMER; Retrieving definition for PRDAPP.TCUSTMER TABLE PRDAPP.TCUSTORD; Retrieving definition for PRDAPP.TCUSTORD Definitions generated for 2 tables in ./dirdef/source.def [[email protected] gg_orcl_source]$ cat ./dirdef/source.def *+- Defgen version 2.0, Encoding UTF-8 * * Definitions created/modified 2016-04-14 17:19 * * Field descriptions for each column entry: * * 1 Name * 2 Data Type * 3 External Length * 4 Fetch Offset
  • 19. [REPLICACIÓN DE BASE DE DATOS ORACLE HACIA MYSQL] [MANUAL DE PROCEDIMIENTOS] gt.linkedin.com/in/erickvidal/ @vidbaz * 5 Scale * 6 Level * 7 Null * 8 Bump if Odd * 9 Internal Length * 10 Binary Length * 11 Table Length * 12 Most Significant DT * 13 Least Significant DT * 14 High Precision * 15 Low Precision * 16 Elementary Item * 17 Occurs * 18 Key Column * 19 Sub Data Type * Database type: ORACLE Character set ID: UTF-8 National character set ID: UTF-16 Locale: neutral Case sensitivity: 14 14 14 14 14 14 14 14 14 14 14 14 11 14 14 14 * Definition for table PRDAPP.TCUSTMER Record length: 78 Syskey: 0 Columns: 4 CUST_CODE 64 4 0 0 0 1 0 4 4 0 0 0 0 0 1 0 1 0 NAME 64 30 10 0 0 1 0 30 30 0 0 0 0 0 1 0 0 0 CITY 64 20 46 0 0 1 0 20 20 0 0 0 0 0 1 0 0 0 STATE 0 2 72 0 0 1 0 2 2 0 0 0 0 0 1 0 0 0 End of definition * Definition for table PRDAPP.TCUSTORD Record length: 182 Syskey: 0 Columns: 7 CUST_CODE 64 4 0 0 0 1 0 4 4 0 0 0 0 0 1 0 1 0 ORDER_DATE 192 19 10 0 0 1 0 19 19 19 0 5 0 0 1 0 1 0 PRODUCT_CODE 64 8 32 0 0 1 0 8 8 0 0 0 0 0 1 0 1 0 ORDER_ID 64 50 46 0 0 1 0 50 50 50 0 0 0 0 1 0 1 2 PRODUCT_PRICE 134 10 102 2 0 1 0 8 8 8 0 0 0 0 1 0 0 3 PRODUCT_AMOUNT 134 8 114 0 0 1 0 8 8 8 0 0 0 0 1 0 0 3 TRANSACTION_ID 64 50 126 0 0 1 0 50 50 50 0 0 0 0 1 0 0 2 End of definition [[email protected] gg_orcl_source]$