Categories: Oracle Golden Gate, Golden Gate 12c

Oracle Golden Gate 12c : Llevando a cabo una carga inicial (INITIAL LOAD con DIRECT LOAD)



Oracle Golden Gate es un extraordinario utilitario que tiene Oracle para llevar a cabo replicación de datos, tiene una increíble cantidad de comandos, es muy flexible y muy dúctil a la hora de trasladar datos desde una fuente a otra.



La carga inicial de datos (INITIAL LOAD) es la etapa en donde cargamos toda la información de nuestro origen en el destino por una sola y única vez, para posteriormente comenzar a aplicar sólo los cambios al destino mediante la sincronización de EXTRACTORES con REPLICADORES.

Oracle Golden Gate nos proporcionar una serie de mecanismos para llevar a cabo la carga inicial de estos datos (IUNITIAL LOAD), todas poseen pros y contras
  • Carga inicial de datos desde archivos al replicador (Loading Data from File to Replicat)
  • En esta forma de carga inicial el extractor genera archivos que el replicador puede aplicar en la base de datos de destino, este método es lento y sólo debiese ser ocupado para poca cantidad de registros , además posee limitaciones en los tipos de datos que puede trasladar.
  • Carga inicial de de datos mediante la generación de archivos de TRAIL(Loading Data from Trail to Replicat)
  • El extractor generará archivos de TRAIL los cuales serán leídos por el replicador para cargar la información en la base de datos de destino, mucho más rápido que el anterior caso de INITIAL LOAD
  • Carga de datos desde un archivo a utilitarios de base de datos (Loading Data from File to Database Utility)
  • Este método hace que los EXTRACTORES generen archivos planos en formato ASCII los cuales pueden ser procesados por utilitarios que cargarán la información a nivel de base de datos , por ejemplo un SQLLOADER o cualquier otro utilitario que cargue información a una base de datos (ejem: SQL Server)
  • Carga inicial de datos con carga directa entre extractores y replicadores (Loading Data with an Oracle GoldenGate Direct Load)
  • La carga inicial de datos mediante DIRECT LOAD implica que el extractor le enviará de forma directa los datos a un REPLICADOR el cual hará la carga de forma automática a la tabla que se haya indicado en la claúsula MAP del replicador sin necesidad de generar archivos de TRAIL, no está soportada la copia de tablas que posean LOBs, LONGs o datos estructurados de usuario y no carga los datos que se hayan modificado o insertado en el origen desde que se comenzó con la extracción de datos.
  • Carga inicial de datos mediante BULK LOAD con SQL Loader(Loading Data with a Direct Bulk Load to SQL*Loader)
  • Este forma especial de INITIAL LOAD solamente trabaja con Oracle SQL Loader en el destino, el EXTRACTOR saca los registros desde las tablas de origen y se las envía al REPLICADOR el cual mediante las interfaces de SQLLOADER (procedimientos almacenados) carga la información en las tablas de destino, esta carga de datos no funciona si en el origen existen datos LOBs o LONGs


Oracle Golden Gate INITIAL LOAD con DIRECT LOAD :
Haremos un ejercicio para realizar la INITIAL LOAD mediante la opción de DIRECT LOAD, para poder apreciar de una manera gráfica como sucede esto, les invito a ver la siguiente imagen :>>

1) Creamos nuestra tabla en el orígen con datos que trasladaremos con DIRECT LOAD de Golden Gate

create table tabla_inicio as 
select *
from (
select rownum fila
               from
                       (select rownum r from dual connect by rownum <= 1000) a,
                       (select rownum r from dual connect by rownum <= 1000) b,
                       (select rownum r from dual connect by rownum <= 1000) c
               where rownum <= 100000000
)

Con el anterior comando , tenemos de inmediato 100 millones de filas


2) Creamos nuestro extractor en el origen , a nivel de comando en la interfaz de Golden Gate (ggsci) ejecutamos lo siguiente

add extract EXTINI, SOURCEISTABLE

Donde :

SOURCEISTABLE : Se le indica que el origen de los datos es una tabla Oracle y de allí extraerá todas las filas y columnas que las tablas posean


3) Le proporcionamos el código a nuestro nuevo extractor , en el archivo ./dirprm/extini.prm colocamos lo siguiente

EXTRACT EXTINI
USERID ggorigen, PASSWORD ggorigen123
RMTHOST 198.162.157.200, MGRPORT 7809
RMTTASK replicat, GROUP repini
TABLE GGORIGEN.*
KEYCOLS (FILA);

Donde :

EXTRACT {nombre extractor}: Indica el nombre del extractor Golden Gate
USERID {usuario}, PASSWORD {password} : Son las credenciales de conectividad para nuestra base de datos origen
RMTHOST {Ip máquina}, MGRPORT {Puerto} : Se le proporciona la IP de la máquina donde estará el manager remoto al igual que el puerto donde esté último escuchará
RMTTASK replicat, GROUP {nombre de replicador} : Acá se le indica al extractor como se llama el replicador en la máquina de destino
TABLE {usuario}.{nombre tabla} : Este es el origen de datos, con el usuario dueño y la tabla o tablas a replicar, si usamos un * , le indicamos que tome todas las tablas que pertenecen a un usuario en partícular.
KEYCOLS ({nombre columna}) : En el campo KEYCOLS se indica cual es la Primary Key que no posee la tabla, si esta tabla no posee PK igual, se debe indicar mediante esta claúsula que campo sirve para que Golden Gata identifique de forma única una fila.


4) Creamos nuestro replicador en el destino , a nivel de comando en la interfaz de Golden Gate (ggsci) ejecutamos lo siguiente

add replicat REPINI, SPECIALRUN

Donde :

SPECIALRUN : Con esto se le indica a Golden Gate que este replicador sólo se ejecutará una vez, que no habrá checkpoint y que sólo finalizará cuando haya trasladado todos los datos (no se lleva los cambios que se hayan producido posterior al START del extractor).


5) Le proporcionamos el código a nuestro nuevo replicador, en el archivo ./dirprm/repini.prm colocamos lo siguiente

REPLICAT REPINI
USERID ggdestino, PASSWORD ggdestino123
ASSUMETARGETDEFS
MAP GGORIGEN.*, TARGET GGDESTINO.*;

Donde :

REPLICAT {nombre replicador}: Indica el nombre del replicador Golden Gate
USERID {usuario}, PASSWORD {password} : Son las credenciales de conectividad para nuestra base de datos destino
ASSUMETARGETDEFS : Se usa esta claúsula cuando el orígen de datos y el destino donde quedarán tienen la misma estructura .
MAP {usuario}.{nombre tabla}, TARGET {usuario}.{nombre tabla} : Este es el mapeo de datos, con el usuario dueño y la tabla o tablas a replicar, si usamos un * , le indicamos que tome todas las tablas que pertenecen a un usuario en partícular, MAP indica como viene desde el origen y TARGET es indicativo de donde se cargarán los datos en el destino.


6) Las tablas en el destino deben existir como estructuras de datos, o sea, deben ser creadas antes de comenzar con la replicación


7) Chequeamos nuestro extractor y replicador

GGSCI (oraserver1.localdomain) 3>  info extract EXTINI

EXTRACT    EXTINI    Initialized   2016-06-26 14:05   Status STOPPED
Checkpoint Lag       Not Available
Log Read Checkpoint  Not Available
                     First Record         Record 0
Task                 SOURCEISTABLE
GGSCI (oraserver2.localdomain) 5> info replicat REPINI

REPLICAT   REPINI    Initialized   2016-06-26 14:05   Status STOPPED
Checkpoint Lag       00:00:00 (updated 00:00:02 ago)
Log Read Checkpoint  Not Available
Task                 SPECIALRUN


8) Y ejecutamos nuestro extractor, el cual se comunicará directamente con el replicador y este a su vez insertará los registros de manera automática en la tabla que se le indico en la claúsula MAP

GGSCI (oraserver1.localdomain) 4> start extract EXTINI

Sending START request to MANAGER ...
EXTRACT EXTINI starting


9) Se chequea el estado del extractor y del replicador nuevamente y vemos como avanza el contador de registros leídos

Extractor

Replicador


10) Y nuestra tabla en el destino comienza a cargarse con datos

SQL> select count(*) from ggdestino.tabla_inicio;

  COUNT(*)
----------
   6478000

SQL>


Recordar que los cambios que se hagan a la tabla origen mientras se está generando la replicación no serán traspasados al destino con el INITIAL LOAD, esto se hará solamente en una replicación normal de Oracle Golden Gate


Metalink :
Master Note - Oracle GoldenGate: Initial Load Techniques and References (Doc ID 1311707.1)
Goldengate : Direct Load - Initial Load Techniques (Doc ID 1457164.1)

Espero les sirva para entender lo poderoso de Oracle Golden Gate

by Ligarius
25.06.16. 23:02:05. 666 words, 1897 views. Categories: Oracle Golden Gate, Golden Gate 12c ,

Instalando (y desinstalando) en forma gráfica y en forma silenciosa Oracle Golden Gate 12c



Hola gente....después de muchos meses he vuelto a escribir, la verdad he tenido muchísimo trabajo y he dejado un poco de lado este blog, al igual que los exámenes de certificación, pero como no hay mal que dure cien años, he vuelto para seguir escribiendo y seguir con mis certificaciones.



En la actualidad me encuentro trabajando con Oracle Golden Gate 12c entre otras cosas, inclusive con adaptadores Flat File, los cuales son bastante interesantes y poderosos y de los cuales hablaremos más adelante.

El presente post es sencillo, muestra como instalar en forma gráfica, desinstalar en modo texto e instalar en forma silenciosa nuestro Oracle Golden Gate 12c (instalación efectuada en un OEL 7)




1.- Instalando Golden Gate 12c a través de la GUI

Esta es la primera interfaz gráfica que posee Oracle Golden Gate, la verdad es muy sencilla, con pocos pasos, pero no contiene nada del otro mundo, he aquí el paso a paso.

Ubicamos nuestro archivo comprimido de Oracle Golden Gate 12c
[oracle@oraserver1 goldengate12c]$ ls -ltr
total 669196
-rw-r--r--. 1 oracle oinstall 475611228 Jun 12 00:02 V100692-01.zip


Al descomprimirlo, nos encontramos con los siguientes archivos

[oracle@oraserver1 goldengate12c]$ ls -ltr
total 669196
drwxr-xr-x. 3 oracle oinstall        18 Dec 12  2015 fbo_ggs_Linux_x64_shiphome
-rw-r--r--. 1 oracle oinstall      1559 Jan 18 20:12 OGG-12.2.0.1-README.txt
-rw-r--r--. 1 oracle oinstall    282294 Jan 18 20:13 OGG-12.2.0.1.1-ReleaseNotes.pdf
-rw-r--r--. 1 oracle oinstall 475611228 Jun 12 00:02 V100692-01.zip


Accedemos a la carpeta que posee el runInstaller

[oracle@oraserver1 response]$ pwd
/home/oracle/sw/GG/goldengate12c/fbo_ggs_Linux_x64_shiphome/Disk1


Lo ejecutamos y aparece la siguiente pantalla, la cual nos solicita si instalamos la versión 11g o 12c de Oracle Golden Gate


Nos pide a continuación la ruta donde lo instalaremos, donde se encuentra el motor Oracle si arranca de inmediato con el Manager de Golden Gate ,el puerto 7809 es el puerto por defecto donde el Manager escuchará las peticiones y requerimientos.


Para finalizar, nos entrega un estado de lo que instalaremos y donde


Una pantalla de progreso de instalación, sin necesidad de ejecutar archivos de root.sh ni nada parecido


Y simplemente una pantalla de finalización


2.- Instalando Golden Gate 12c de forma silenciosa

Todo lo visualizado en el paso 1, se puede hacer ejecutando de forma silenciosa el instalador, para ello podemos buscar el archivo de response en la siguiente ruta de nuestro Oracle Golden Gate

[oracle@oraserver1 response]$ pwd
/home/oracle/sw/GG/goldengate12c/fbo_ggs_Linux_x64_shiphome/Disk1/response


Acá se encuentra el archivo oggcore.rsp y es dentro de este archivo que se parametriza la instalación, los campos a setear son los siguientes

INSTALL_OPTION=ORA12c
SOFTWARE_LOCATION=/home/oracle/app/goldengate
START_MANAGER=true
MANAGER_PORT=7809
DATABASE_LOCATION=/home/oracle/app/oracle/product/12.1.0/dbhome_1
INVENTORY_LOCATION=/home/oracle/oraInventory
UNIX_GROUP_NAME=oinstall


Si se fijan, son exactamente las mismas opciones que cuando realizamos la instalación mediante GUI

Los datos del inventario , que son los 2 últimos valores expresados en el punto anterior, se pueden encontrar en

[oracle@oraserver1 ~]$ cat /etc/oraInst.loc
inventory_loc=/home/oracle/app/oraInventory
inst_group=oinstall


La ejecución del comando para la instalación silenciosa

[oracle@oraserver1 Disk1]$ ./runInstaller -silent -responseFile /home/oracle/sw/GG/goldengate12c/fbo_ggs_Linux_x64_shiphome/Disk1/response/oggcore.rsp


Lo que nos arrojará la siguiente información

Starting Oracle Universal Installer...

Checking Temp space: must be greater than 120 MB.   Actual 44080 MB    Passed
Checking swap space: must be greater than 150 MB.   Actual 7792 MB    Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2016-06-12_12-10-03PM. Please wait ...[oracle@oraserver1 Disk1]$ You can find the log of this install session at:
 /home/oracle/app/oraInventory/logs/installActions2016-06-12_12-10-03PM.log
The installation of Oracle GoldenGate Core was successful.
Please check '/home/oracle/app/oraInventory/logs/silentInstall2016-06-12_12-10-03PM.log' for more details.
Successfully Setup Software.


Chequeamos nuestro aplicativo instalado, simplemente ejecutando el comando ggsci

[oracle@oraserver1 ~]$ cd $GGHOME
[oracle@oraserver1 goldengate]$ ./ggsci

Oracle GoldenGate Command Interpreter for Oracle
Version 12.2.0.1.1 OGGCORE_12.2.0.1.0_PLATFORMS_151211.1401_FBO
Linux, x64, 64bit (optimized), Oracle 12c on Dec 12 2015 02:56:48
Operating system character set identified as UTF-8.

Copyright (C) 1995, 2015, Oracle and/or its affiliates. All rights reserved.

GGSCI (oraserver1.localdomain) 2> info manager

Manager is running (IP port oraserver1.localdomain.7809, Process ID 23478).

GGSCI (oraserver1.localdomain) 3>


3.- Para desinstalar lo instalado
Para desinstalar lo instalado, simplemente ejecutamos un comando desde nuestra instalación de Oracle Golden Gate (OracleHome de Golden Gate)

[oracle@oraserver1 goldengate]$ cd deinstall
[oracle@oraserver1 deinstall]$
[oracle@oraserver1 deinstall]$ ./deinstall.sh


El anterior comando provocará la siguiente salida

ALERT: Ensure all the processes running from the current Oracle Home are shutdown prior to running this software uninstallation script.

Proceed with removing Oracle GoldenGate home: /home/oracle/app/goldengate (yes/no)? [no]
yes
Starting Oracle Universal Installer...

Checking swap space: must be greater than 500 MB.   Actual 7794 MB    Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2016-06-12_11-20-51AM. Please wait ...Oracle Universal Installer, Version 11.2.0.3.0 Production
Copyright (C) 1999, 2011, Oracle. All rights reserved.

Starting deinstall


Deinstall in progress (Sunday, June 12, 2016 10:20:54 AM CLT)
............................................................... 100% Done.

Deinstall successful


End of install phases.(Sunday, June 12, 2016 10:21:16 AM CLT)
End of deinstallations
Please check '/home/oracle/app/oraInventory/logs/silentInstall2016-06-12_11-20-51AM.log' for more details.


Espero les sirva :>>

by Ligarius
12.06.16. 16:38:27. 892 words, 1318 views. Categories: Instalación, Oracle Golden Gate ,

Oracle Golden Gate : Dejando el manager como servicio Windows



¿Qué sucede si nuestro proceso Manager de Oracle Golden Gate no queda en modo Background? Pues simplemente cada vez que salgamos de la sesión, el proceso se bajará y ya no tendremos acceso a la extracción ni replicación.

Para dar una idea en general , el proceso Oracle Golden Manager es el que maneja la replicación mediante los procesos REPLICAT y maneja la extracción mediante los procesos EXTRACT, cada uno de estos ocupa un puerto que es asignado por el mismo manager

Puedes ver un pequeño ejemplo de como instalar Oracle Golden Gate en el siguiente link
http://www.oracleyyo.com/index.php/2011/03/08/uso_golden_gate

Puedes analizar la documentación de Oracle Golden Gate
http://www.oracle.com/technetwork/middleware/goldengate/documentation/index.html



He aquí el efecto de no tener el Oracle Golden Gate Manager en modo background.

Primero chequeamos el estado de nuestro Oracle Golden Gate Manager, el cual aparece como DOWN



Posterior a esto, levantamos el servicio y vemos como aparece una pantalla de RUNTIME (Ya no está ejecutándose como servicio Windows)


Si cerramos la sesión de Windows , nuestro servicio de manager se caerá :'(

Para poder solucionar esto, vamos a la carpeta de instalación del Golden Gate y ejecutamos el comando install, esto realiza una creación de servicio en Windows

Para ello realizamos la siguiente ejecución

install addevents addservice autostart

ADDEVENTS : Significa que se añade el nuevo servicio al Event Manager
ADDSERVICE : Es el nombre del servicio , por defecto se nombrará como GGSMGR.
AUTOSTART : Para que el servicio levante de forma automática, sin necesidad de intervención , por ejemplo en un reboot de la máquina


La cual aparece consignada en el siguiente documento (2.7.4 Installing Manager as a Windows service)
http://docs.oracle.com/cd/E35209_01/doc.1121/e35957.pdf

Ya con los comandos anteriores, tenemos nuestro servicio Windows asociado al Oracle Golden Gate Manager, si está como servicio , no depende de nuestra sesión para seguir viviendo.

by Ligarius
08.08.14. 13:40:25. 334 words, 3481 views. Categories: Oracle Golden Gate ,

Oracle Golden Gate : Un pequeño ejemplo de su instalación y uso



Tuve el agrado de ocupar Oracle Golden Gate y la verdad me pareció una increíble herramienta de replicación , es muy versártil y extraordinariamente segura.



Aunque tiene una debilidad con ciertos objetos BLOB , pero en términos generales , poderosa... aunque yo creo que alcance a conocerla en un muy bajo porcentaje pero hizo lo que debía hacer

Acá les dejo un pequeño paper de como se instala, donde se descarga y un uso básico..

Oracle Golden Gate

Realmente esto esta a millones de años luz de lo que era Oracle Advanced Queue... |-|

Links Útiles B)
Desinstalando Oracle Golden Gate

Todo lo que necesitas saber de Golden Gate
Oracle y Golden Gate


by Ligarius
08.03.11. 05:45:44. 118 words, 11443 views. Categories: Oracle Golden Gate ,

Desinstalando el Golden Gate :)



Los pasos (sencillos) para desinstalar Oracle Golden Gate



Los pasos para llevar a cabo la desinstalación son pocos y bastante sencillos

1.- Abrir una ventana de comandos , obvio :>

2.- Ubicar el lugar donde se instalo Golden Gate

[oracle bin]$ cd $GOLDEN_HOME
[oracle gg]$



3.- Ejecutar la consola de comandos de Golden Gate

[oracle gg]$ ./ggsci



4.- Bajar todos los procesos extractores y replicadores de Golden Gate

[oracle@kaitek gg]$ ./ggsci

Oracle GoldenGate Command Interpreter for Oracle
Version 10.4.0.46 Build 003
Linux, x64, 64bit (optimized), Oracle 9 on Feb 26 2010 13:35:23

Copyright (C) 1995, 2010, Oracle and/or its affiliates. All rights reserved.

GGSCI (oracle) 2> info all, allprocesses

Program Status Group Lag Time Since Chkpt

MANAGER STOPPED
EXTRACT STOPPED EXTFULL
EXTRACT STOPPED EXTRAER1 00:00:00 861:25:08
EXTRACT ABENDED EXTRAER2 00:00:00 525:11:53

GGSCI (oracle) 3> stop extract extraer2
EXTRACT EXTRAER2 is already stopped.


Obs : Se bajan todos los procesos extractores, cuando son los procesos replicadores se ocupa la sintáxis

stop replicat (nombre)



5.- Bajar el proceso Manager

GGSCI (oracle) 4> stop mgr
Manager is already stopped.



6.- Visualizamos los procesos para verificar que no se ejecutan

GGSCI (oracle) 5> info all

Program Status Group Lag Time Since Chkpt

MANAGER STOPPED
EXTRACT STOPPED EXTRAER1 00:00:00 861:25:28
EXTRACT ABENDED EXTRAER2 00:00:00 525:12:13




7.- Salir del ggsci y eliminar los archivos donde se encuentra instalado

[oracle bin]$ cd $GOLDEN_HOME
[oracle product]$ ls -ltr
total 8
drwxr-xr-x 14 oracle oinstall 4096 Aug 11 16:55 gg

[oracle product]$ rm -rf gg
[oracle product]$




8.- Eliminación del esquema de base de datos que sirve como conector de golden gate (si existiese)

SQL> drop user golden cascade;

User dropped.

SQL> SQL> quit


Obs : Hay veces que este último comando falla y nos arroja el siguiente mensaje de error

SQL> drop user golden cascade;
drop user golden cascade
*
ERROR at line 1:
ORA-00604: error occurred at recursive SQL level 2
ORA-20782: GoldenGate DDL Replication Error: Code :ORA-20782: Cannot DROP
object used in GoldenGate replication while trigger is enabled. Consult
GoldenGate documentation and/or call GoldenGate Technical Support if you wish
to do so., error stack: Error stack is avalaible only on Oracle 10.1 and above
ORA-06512: at line 883



Si así fuese, se debe eliminar un trigger de la siguiente forma

SQL> drop trigger ggs_ddl_trigger_before;

Trigger dropped.



Y después eliminar el esquema de conector

Ahora viene la pregunta ¿publicará Hector un documento sobre Golden Gate y su instalación?:?: y la respuesta e s.... sí claro. :>>

En los próximos días les entregaré un doc de como instalar y configurar Oracle Golden Gate y como instalar y configurar Oracle Golden Gate Veridata :lalala:

Espero les sirva


by Ligarius
31.08.10. 15:11:01. 418 words, 7542 views. Categories: Base de datos, Oracle Golden Gate ,