manual tecnico ogg oracle to mysql

19
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

Upload: erick-vidbaz

Post on 12-Apr-2017

54 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Manual Tecnico OGG Oracle to MySQL

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

Page 2: Manual Tecnico OGG Oracle to MySQL

[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

Page 3: Manual Tecnico OGG Oracle to MySQL

[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

Page 4: Manual Tecnico OGG Oracle to MySQL

[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

Page 5: Manual Tecnico OGG Oracle to MySQL

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

Page 6: Manual Tecnico OGG Oracle to MySQL

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

Page 7: Manual Tecnico OGG Oracle to MySQL

[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

Page 8: Manual Tecnico OGG Oracle to MySQL

[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

Page 9: Manual Tecnico OGG Oracle to MySQL

[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

Page 10: Manual Tecnico OGG Oracle to MySQL

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

Page 11: Manual Tecnico OGG Oracle to MySQL

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

Page 12: Manual Tecnico OGG Oracle to MySQL

[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

Page 13: Manual Tecnico OGG Oracle to MySQL

[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

Page 14: Manual Tecnico OGG Oracle to MySQL

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

+-----------+------------------+---------+-------+

Page 15: Manual Tecnico OGG Oracle to MySQL

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

Page 16: Manual Tecnico OGG Oracle to MySQL

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

Page 17: Manual Tecnico OGG Oracle to MySQL

[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

Page 18: Manual Tecnico OGG Oracle to MySQL

[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

Page 19: Manual Tecnico OGG Oracle to MySQL

[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]$