Esto es el paso a paso para agregar una nueva tabla a un ambiente de replicación de Golden Gate ya existente. En este caso agregaremos dos nuevas tablas sobre un extractor, pump y replicador de Golden Gate.
Tablas a agregar:
SIEBEL.CX_ELEGIBILIDAD
SIEBEL.CX_ITEM_ELEGI
Extractores, Pump y Replicadores que editaremos:
Extractor: E_S_STG1
PMP: P_S_STG1
Replicador: R_S_STG1
1. Primer paso es detener el replicador en el cual agregaremos nuestra tabla en el ambiente de DESTINO o TARGET:
[oracle@miscanti oragg]$ ./ggsci
Oracle GoldenGate Command Interpreter for Oracle
Version 12.1.2.1.0 OGGCORE_12.1.2.1.0_PLATFORMS_140727.2135.1_FBO
Linux, x64, 64bit (optimized), Oracle 12c on Aug 7 2014 10:21:34
Operating system character set identified as UTF-8.
Copyright (C) 1995, 2014, Oracle and/or its affiliates. All rights reserved.
GGSCI (miscanti) 1> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
REPLICAT RUNNING R_B_STG1 00:00:40 00:00:07
REPLICAT RUNNING R_S_STG1 00:00:00 00:00:04
GGSCI (miscanti) 2> stop R_S_STG1
Sending STOP request to REPLICAT R_S_STG1 ...
Request processed.
GGSCI (miscanti) 4> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
REPLICAT RUNNING R_B_STG1 00:00:00 00:00:07
REPLICAT STOPPED R_S_STG1 00:00:00 00:04:12
Tenemos que asegurarnos de que el replicador no vuelva a subir de nuevo.
2. Ahora en el ambiente de ORIGEN procederemos activar el supplemental logging de las tablas (usando la herramienta de ggsci y conectados a la instancia de BD):
GGSCI (edc01dbadm03.vtr.cl) 1> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
EXTRACT RUNNING E_S_STG1 00:00:04 00:00:09
EXTRACT RUNNING P_S_STG1 00:00:00 00:00:06
GGSCI (edc01dbadm03.vtr.cl) 2> DBLOGIN USERID ogg_user@SBLQA, PASSWORD oracle
Successfully logged into database.
GGSCI (edc01dbadm03.vtr.cl as ogg_user@SBLQA4) 3> ADD TRANDATA SIEBEL.CX_ELEGIBILIDAD
Logging of supplemental redo data enabled for table SIEBEL.CX_ELEGIBILIDAD.
TRANDATA for scheduling columns has been added on table 'SIEBEL.CX_ELEGIBILIDAD'.
GGSCI (edc01dbadm03.vtr.cl as ogg_user@SBLQA4) 4>
GGSCI (edc01dbadm03.vtr.cl as ogg_user@SBLQA4) 4> ADD TRANDATA SIEBEL.CX_ITEM_ELEGI
Logging of supplemental redo data enabled for table SIEBEL.CX_ITEM_ELEGI.
TRANDATA for scheduling columns has been added on table 'SIEBEL.CX_ITEM_ELEGI'.
3. Agregamos las tablas a los archivos de parámetros de extractor y pump (E_S_STG1 y P_S_STG1)
(agregamos la tabla al Extractor)
GGSCI (edc01dbadm03.vtr.cl as ogg_user@SBLQA4) 5> edit param E_S_STG1
(agregamos las siguientes tablas al final del archivo de parámetros y guardamos:)
TABLE SIEBEL.CX_ELEGIBILIDAD;
TABLE SIEBEL.CX_ITEM_ELEGI;
(agregamos la tabla al PUMP)
GGSCI (edc01dbadm03.vtr.cl as ogg_user@SBLQA4) 6> edit param P_S_STG1
(agregamos las siguientes tablas al final del archivo de parámetros y guardamos:)
TABLE SIEBEL.CX_ELEGIBILIDAD;
TABLE SIEBEL.CX_ITEM_ELEGI;
4. Posterior detenemos el extractor y el pump:
GGSCI (edc01dbadm03.vtr.cl as ogg_user@SBLQA4) 11> stop P_S_STG1
Sending STOP request to EXTRACT P_S_STG1 ...
Request processed.
GGSCI (edc01dbadm03.vtr.cl as ogg_user@SBLQA4) 12> stop E_S_STG1
Sending STOP request to EXTRACT E_S_STG1 ...
Request processed.
GGSCI (edc01dbadm03.vtr.cl as ogg_user@SBLQA4) 13> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
EXTRACT STOPPED E_S_STG1 00:00:05 00:00:03
EXTRACT STOPPED P_S_STG1 00:00:00 00:00:17
5. Posteriormente levantamos el PUMP y luego el Extractor nuevamente (EN ESE ORDEN)
GGSCI (edc01dbadm03.vtr.cl as ogg_user@SBLQA4) 15> start P_S_STG1
Sending START request to MANAGER ...
EXTRACT P_S_STG1 starting
GGSCI (edc01dbadm03.vtr.cl as ogg_user@SBLQA4) 16> start E_S_STG1
Sending START request to MANAGER ...
EXTRACT E_S_STG1 starting
GGSCI (edc01dbadm03.vtr.cl as ogg_user@SBLQA4) 18> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
EXTRACT RUNNING E_S_STG1 00:00:04 00:00:04
EXTRACT RUNNING P_S_STG1 00:00:00 00:00:02
6. Procederemos ahora desde sqlplus a obtener el SCN actual de la base de datos de ORIGEN. Este valor será importante y lo usaremos para sacar un expdp de las tablas:
[oracle@edc01dbadm03 expdp_gg]$ sqlplus "/as sysdba"
SQL*Plus: Release 12.1.0.2.0 Production on Thu Jun 27 18:24:53 2019
Copyright (c) 1982, 2014, Oracle. All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Advanced Analytics and Real Application Testing options
SQL> select to_char(dbms_flashback.get_system_change_number()) from dual;
TO_CHAR(DBMS_FLASHBACK.GET_SYSTEM_CHANGE
----------------------------------------
14977510302280
SQL> exit
Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Advanced Analytics and Real Application Testing options
7. Con el valor anterior (14977510302280) procederemos a exportar las tablas (con exp o expdp)
[oracle@edc01dbadm03 expdp_gg]$ exp userid=ogg_user/oracle@SBLQA CONSISTENT=y flashback_scn=14977510302280 file=exp01.dmp log=exp01.log TABLES=SIEBEL.CX_ELEGIBILIDAD,SIEBEL.CX_ITEM_ELEGI
Export: Release 12.1.0.2.0 - Production on Thu Jun 27 18:25:28 2019
Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved.
Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Advanced Analytics and Real Applicat
Export done in AL32UTF8 character set and AL16UTF16 NCHAR character set
About to export specified tables via Conventional Path ...
Current user changed to SIEBEL
. . exporting table CX_ELEGIBILIDAD 286 rows exported
. . exporting table CX_ITEM_ELEGI 5930 rows exported
Export terminated successfully without warnings.
8. Una vez terminada la exportación nos llevaremos el archivo DMP exp01.dmp al servidor de DESTINO donde tenemos nuestro replicador:
[oracle@edc01dbadm03 expdp_gg]$ scp /goldeng/expdp_gg/exp01.dmp USR_GOLDENG@miscanti.vtr.cl:/u01/app/expdp_gg
USR_GOLDENG@miscanti.vtr.cl's password:
exp01.dmp 100% 1264KB 1.2MB/s 00:00
[oracle@edc01dbadm03 expdp_gg]$
9. En el servidor de DESTINO revisamos que el archivo se encuentre ok:
[oracle@miscanti oragg]$ cd /u01/app/expdp_gg
[oracle@miscanti expdp_gg]$ ls -lptr
total 6058504
-rw-r--r--. 1 USR_GOLDENG USR_GOLDENG 1294336 Jun 27 19:35 exp01.dmp
10. En este server de DESTINO procederemos a importar las tablas nuevas:
[oracle@miscanti expdp_gg]$ imp userid=ogg_user/oracle@STAGING1 file=exp01.dmp log=exp_imp01.log FROMUSER=SIEBEL TOUSER=SIEBEL TABLES=CX_ELEGIBILIDAD,CX_ITEM_ELEGI
Import: Release 12.2.0.1.0 - Production on Thu Jun 27 19:38:37 2019
Copyright (c) 1982, 2017, Oracle and/or its affiliates. All rights reserved.
Connected to: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
Export file created by EXPORT:V12.01.00 via conventional path
import done in AL32UTF8 character set and AL16UTF16 NCHAR character set
. importing SIEBEL's objects into SIEBEL
. . importing table "CX_ELEGIBILIDAD" 286rows imported
. . importing table "CX_ITEM_ELEGI" 5930rows imported
Import terminated successfully with warnings.
11. Ya terminado el import de las tablas, ingresamos a la herramienta de GGSCI sobre este ambiente de DESTINO y procederemos a agregar las nuevas tablas al archivo de parámetros del replicador. Pero en este caso usaremos la keyword FILTER en el archivo de parámetros, para indicar a partir de que SCN se pueden comenzar a aplicar los cambios para las nuevas tablas que vengan en los trails files. Este SCN es el mismo con el cual realizamos el export anterior desde el ORIGEN:
GGSCI (miscanti) 2> edit param R_S_STG1
--Agregamos lo siguiente al final del archivo de param.
--teniendo precaución con el valor que
--estamos usando para el atributo CSN
MAP SIEBEL.CX_ELEGIBILIDAD, TARGET SIEBEL.CX_ELEGIBILIDAD ,FILTER ( @GETENV ('TRANSACTION', 'CSN') > 14977510302280);
MAP SIEBEL.CX_ITEM_ELEGI, TARGET SIEBEL.CX_ITEM_ELEGI ,FILTER ( @GETENV ('TRANSACTION', 'CSN') > 14977510302280);
12. Subimos posteriormente el replicador en este ambiente de DESTINO:
GGSCI (miscanti) 4> start R_S_STG1
Sending START request to MANAGER ...
REPLICAT R_S_STG1 starting
GGSCI (miscanti) 6> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
REPLICAT RUNNING R_B_STG1 00:00:52 00:00:01
REPLICAT RUNNING R_S_STG1 00:00:00 00:00:05
Eso es todo, ya con el replicador corriendo ya se pueden eliminar los comandos FILTER del archivo de parámetros del replicador.
Espero sea de utilidad,
Saludos, Felipe.