Configurar GoldenGate para Depurar Archivos Trail
Introducción
Cuando configuras una replicación con GoldenGate se van a generar muchísimos archivos trail que contienen
la actividad de las transacciones extraídas de la base de datos o desde otros extrails.
Esto se puede convertir en un problema para la disponibilidad del espacio en disco.
Es por ello que necesitamos configurar GoldenGate para que depure de forma automática los archivos trail cuando ya no sean necesarios:
- Que ya hayan sido consumidos por los procesos de Replicat o data pump.
- Que sean lo suficientemente antiguos para no ser requeridos en caso de un reproceso.
Configurar la Depuración de Extrails
El proceso de depuración automática se activa al usar el parámetro PURGEOLDEXTRACTS
, de acuerdo a la documentación:
PURGEOLDEXTRACTS: Depura los archivos trail cuando Oracle GoldenGate ha terminado de procesarlos. Sin el PURGEOLDEXTRACTS, no se efectúa ninguna depuración y los archivos trail pueden consumir espacio en disco significante. Para mejores resultados, use el PURGEOLDEXTRACTS como parámetro del Manager, no como parámetro de un Extract o Replicat.
Detener los Procesos
Necesitamos parar todos los procesos de GoldenGate antes de detener el Manager para su reconfiguración:
[golden@patogolden golden]$ ./ggsci
Oracle GoldenGate Command Interpreter for Oracle
Version 19.1.0.0.4 OGGCORE_19.1.0.0.0_PLATFORMS_191017.1054_FBO
Linux, x64, 64bit (optimized), Oracle 19c on Oct 17 2019 21:16:29
Operating system character set identified as UTF-8.
GGSCI (patogolden) 1> stop *
Sending STOP request to EXTRACT EXTPATO ...
Request processed.
Sending STOP request to REPLICAT REPATO ...
Request processed.
GGSCI (patogolden) 2> stop mgr
Manager process is required by other GGS processes.
Are you sure you want to stop it (y/n)?y
Sending STOP request to MANAGER ...
Request processed.
Manager stopped.
GGSCI (patogolden) 3> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER STOPPED
EXTRACT STOPPED EXTPATO 00:00:00 00:15:20
REPLICAT STOPPED REPATO 00:00:00 00:15:14
Configuración de los Parámteros del Manager
Dentro de GoldenGate edita el archivo de parámetros con la nueva instrucción PURGEOLDEXTRACTS
incluyendo:
USECHECKPOINTS
para que un trail sólo sea borrado si ya fue procesado previamente.MINKEEPFILES
para preservar algunos trails previos para un posible reproceso.
GGSCI (patogolden) 4> edit params mgr
PORT 7809
DYNAMICPORTLIST 7810-7820
AUTOSTART ER *
PURGEOLDEXTRACTS /golden/dirdat/*, USECHECKPOINTS, MINKEEPFILES 4, FREQUENCYMINUTES 15
Iniciar el Manager y la Replicación
GGSCI (patogolden) 5> start mgr
Manager started.
GGSCI (patogolden) 6> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
EXTRACT RUNNING EXTPATO 00:00:00 00:00:08
REPLICAT RUNNING REPATO 00:00:00 00:00:04
Validar la Depuración
Primero vamos a detener nuestro Replicat para que los archivos extrail se acumulen:
GGSCI (patogolden) 7> stop replicat repato
Sending STOP request to REPLICAT REPATO ...
Request processed.
Validar el USECHECKPOINT
Revisando el directorio dirdat
podemos ver que tenemos 9 archivos trail en vez del máximo 4 que configuramos.
Esto se debe a que usamos el parámetro USECHECKPOINT
. Como estos trails aún no han sido procesados ya que detuvimos el Replicat,
ellos no son candidatos para el borrado:
[golden@patogolden golden]$ cd dirdat
[golden@patogolden dirdat]$ ls
tr000000021 tr000000023 tr000000025 tr000000027 tr000000029
tr000000022 tr000000024 tr000000026 tr000000028
Validar el MINKEEPFILES
Levantemos el Replicat y veamos qué pasa:
GGSCI (patogolden) 1> start replicat repato
Sending START request to MANAGER ...
REPLICAT REPATO starting
Después de algún tiempo podemos ver que el Replicat ha procesado todos los trails pendientes hasta el tr000000029
:
GGSCI (patogolden) 2> info replicat repato
REPLICAT REPATO Last Started 2020-06-10 22:09 Status RUNNING
INTEGRATED
Checkpoint Lag 00:00:00 (updated 00:00:09 ago)
Process ID 27661
Log Read Checkpoint File /golden/dirdat/tr000000029
2020-06-10 22:12:46.000000 RBA 720227
GGSCI (patogolden) 3> send mgr, getpurgeoldextracts
Sending GETPURGEOLDEXTRACTS request to MANAGER ...
PurgeOldExtracts Rules
Fileset MinHours MinFiles UseCP
/golden/dirdat/* 0 4 Y
OK
Extract Trails
Filename Oldest_Chkpt_Seqno
/golden/dirdat/tr 29
Revisando el archivo de reporte del Manager podemos ver que estos 5 archivos fueron depurados de acuerdo a nuestra regla:
[golden@patogolden dirrpt]$ tail -f MGR.rpt
2020-06-10 22:15:42 INFO OGG-00957 Purged old extract file '/golden/dirdat/tr000000021', applying UseCheckPoints purge rule: Oldest Chkpt Seqno 29 > 21.
2020-06-10 22:15:42 INFO OGG-00957 Purged old extract file '/golden/dirdat/tr000000022', applying UseCheckPoints purge rule: Oldest Chkpt Seqno 29 > 22.
2020-06-10 22:15:42 INFO OGG-00957 Purged old extract file '/golden/dirdat/tr000000023', applying UseCheckPoints purge rule: Oldest Chkpt Seqno 29 > 23.
2020-06-10 22:15:42 INFO OGG-00957 Purged old extract file '/golden/dirdat/tr000000024', applying UseCheckPoints purge rule: Oldest Chkpt Seqno 29 > 24.
2020-06-10 22:15:42 INFO OGG-00957 Purged old extract file '/golden/dirdat/tr000000025', applying UseCheckPoints purge rule: Oldest Chkpt Seqno 29 > 25.
Finalmente validemos en el directorio dirdat
:
[golden@patogolden dirdat]$ ls
tr000000026 tr000000027 tr000000028 tr000000029
podemos ver que aunque los archivos tr000000026
, tr000000027
y tr000000028
ya fueron completamente procesados están siendo preservados para cumplir con el mínimo de archivos que configuramos.
Conclusión
Hemos configurado y validado el parámetro PURGEOLDEXTRACTS
en el Manager de GoldenGate
y los subparámetros USECHECKPOINTS
y MINKEEPFILES
con el fin de automatizar la depuración
de los archivos trail antiguos y así mantener nuestro directorio dirdat siempre con suficiente espacio libre.