[OGG] OGG-01431 OGG-01151 OGG-01296 Error mapping from {0} to {1}


Mientras configuraba GoldenGate recientemente para sincronizar dos entornos hasta el día del cutover, me encontré con el siguiente error:
2025-02-04 15:49:09 WARNING OGG-01431 Aborted grouped transaction on XXXX.XXXX.XXX, Mapping error.
2025-02-04 15:49:09 WARNING OGG-01003 Repositioning to rba 52166587 in seqno 8.
2025-02-04 15:49:09 WARNING OGG-01151 Error mapping from XXXX.XX to XXX.XXX.XXXX.
A simple vista, el mensaje no aporta mucha claridad, no es un error interno del propio Oracle sino más bien del Golden Gate, con lo que tendremos que utilizar su propia herramienta, logdump.
Para quienes no estén familiarizados, logdump es la utilidad del golden gate para filtrar, ver y guardar datos que son almacenados en los ficheros de extracción.
Ejecutaremos el comando logdump para entrar en logdump ya que queremos ver la definición que tiene la tabla en los ficheros de extracción
Logdump 248 >open /ogg/19.1/dirdat/ek000000008
Current LogTrail is /ogg/19.1/dirdat/ek000000008
Logdump 249 >
GHDR ON
DETAIL ON
DETAIL DATA
USERTOKEN ON
FILEHEADER ON
ggstoken detail data
Logdump 255 >pos 0
Logdump 256 >FILTER INCLUDE FILENAME <SCHEMA>.<TABLE>
Logdump 257 >n
Explico cada uno de los comandos que he ejecutando dentro de logdump
La primera línea siempre tiene que ser “open _”. Para indicar el fichero de extracción que queremos leer.
Formateo para la visualización: GHDR (Encabezados de registros), DETAIL ON y DETAIL DATA (Datos de columna detallados)…
Pos 0: Nos posicionamos al principio del fichero
FILTER INCLUDE FILENAME Aplicamos un filtro para ver solo la información de la tabla afectada
n o next para los registros
Ejecutamos y analizamos la salida:
Todas las columnas encajan con la definición de la tabla excepto las dos últimas. Esas dos columnas no corresponden con lo definición de la tabla. Quizás ahí esta el problema.
Tras revisar varias tablas del diccionario para identificar su origen, finalmente las encontré en DBA_IND_COLUMNS. Había el mismo problema en origen como destino
SQL> r
1 Select Table_Name, Index_Name, Column_Name
2 From Dba_Ind_Columns
3 Where Table_Name = 'XXXXXXX'
4*
TABLE_NAME INDEX_NAME COLUMN_NAME
--------------- ---------------------------------------- --------------------
XXXXXXX XXXXXXX XXXXXXX
XXXXXXX XXXXXXX XXXXXXX
XXXXXXX XXXXXXX XXXXXXX
XXXXXXX XXXXXXX XXXXXXX
XXXXXXX XXXXXXX XXXXXXX
XXXXXXX XXXXXXX SYS_NC00035$
XXXXXXX XXXXXXX SYS_NC00036$
Recreamos esos índices y arrancamos de nuevo el proceso:
2025-02-04T16:35:51.608+0100 INFO OGG-01407 Oracle GoldenGate Delivery for Oracle, xxxx.prm: Setting current schema for DDL operation to xxxx.
2025-02-04T16:35:52.810+0100 INFO OGG-01408 Oracle GoldenGate Delivery for Oracle, xxxx.prm: Restoring current schema for DDL operation to C##GGATE.
2025-02-04T16:35:52.845+0100 INFO OGG-01407 Oracle GoldenGate Delivery for Oracle, xxxx.prm: Setting current schema for DDL operation to xxxx.
2025-02-04T16:35:53.929+0100 INFO OGG-01408 Oracle GoldenGate Delivery for Oracle, xxxx.prm: Restoring current schema for DDL operation to C##GGATE
2025-02-04T16:35:54.073+0100 INFO OGG-02232 Oracle GoldenGate Delivery for Oracle, xxxx.prm: Switching to next trail file /ogg/19.1/dirdat/ek000000009 at 2025-02-04T16:35:54.073 due to EOF. with current RBA 499,999,769.
2025-02-04T16:35:54.205+0100 INFO OGG-01407 Oracle GoldenGate Delivery for Oracle, xxxx.prm: Setting current schema for DDL operation to xxxx.
2025-02-04T16:35:54.211+0100 INFO OGG-01408 Oracle GoldenGate Delivery for Oracle, xxxx.prm: Restoring current schema for DDL operation to C##GGATE.
Listo. Espero que os sirva.
Subscribe to my newsletter
Read articles from David Sanz directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

David Sanz
David Sanz
Soy desarrollador, Analista, DBA Oracle y Arquitecto OCI, certificado en OCI Migration and Integration Certified Professional y Certified Architect Associate con más de 15 años de experiencia en plataformas Oracle además de especialista en temas de rendimiento.