Uso de la Utilidad LogDump para Acceder a Registros de Archivos de Pista
La información de pista de Oracle GoldenGate es necesaria para la solución de problemas y el soporte técnico. Utilice la utilidad Logdump para ver los registros de pista de Oracle GoldenGate.
Modo de recuperación de pista
Por defecto, Extract funciona en modo de adición, donde si hay un fallo del proceso, se escribe un marcador de recuperación en la pista y Extract agrega datos de recuperación al archivo para que se conserve un historial de todos los datos anteriores con fines de recuperación.
En el modo de adición, la inicialización de Extract determina la identidad de la última transacción completa que se ha escrito en la pista en el momento del inicio. Con esa información, Extract finaliza la recuperación cuando se encuentra el registro de confirmación para esa transacción en el origen de datos; a continuación, comienza la nueva captura de datos con la siguiente transacción confirmada que califica para extracción y comienza a agregar los nuevos datos a la pista. Un Replicat comienza a leer de nuevo desde ese punto de recuperación.
El modo de sobrescritura es otra versión de la recuperación de Extract que se utilizó en las versiones de Oracle GoldenGate anteriores a la versión 10.0. En estas versiones, Extract sobrescribe los datos de transacción existentes en la pista después de la última posición de punto de control de escritura, en lugar de agregar los nuevos datos. La primera transacción que se escribe es la primera que califica para extracción después de la última posición de punto de control de lectura en el origen de datos.
Si la versión de Oracle GoldenGate en el destino es anterior a la versión 10, Extract se revertirá automáticamente al modo de sobrescritura para soportar la compatibilidad con versiones anteriores. Este comportamiento se puede controlar manualmente con el parámetro RECOVERYOPTIONS.
Formato de registro de pista
Cada registro de cambio escrito por Oracle GoldenGate en un archivo de pista o Extract incluye un área de cabecera, un área de datos y, posiblemente, un área de token de usuario. La cabecera del registro contiene información sobre el entorno de la transacción y el área de datos contiene los valores de datos reales que se han extraído.
El área de token contiene información especificada por los usuarios de Oracle GoldenGate para su uso en la asignación y conversión de columnas.
Los archivos de pista de Oracle GoldenGate no están estructurados. Puede ver los registros de Oracle GoldenGate con la utilidad Logdump proporcionada con el software de Oracle GoldenGate. Para obtener más información, consulte Visualización del primer registro en Referencia de volcado de log para Oracle GoldenGate. Nota: A medida que se realizan mejoras en el software de Oracle GoldenGate, el formato de registro de pista está sujeto a cambios que puede que no se reflejen en esta documentación. Para ver la estructura actual, use la utilidad Logdump.
Registro de cabecera de archivo de pista
Cada archivo de una pista contiene un registro de cabecera de archivo que se almacena al principio del archivo. La cabecera del archivo contiene información sobre el propio archivo de pista. Las versiones anteriores de Oracle GoldenGate no contienen esta cabecera.
El encabezado del archivo se almacena como un registro al principio de un archivo de pista que precede a los registros de datos. La información almacenada en la cabecera de pista proporciona suficiente información sobre los registros para activar un proceso de Oracle GoldenGate para determinar si los registros están en un formato que soporta la versión actual de Oracle GoldenGate.
Los campos de cabecera de pista se almacenan como tokens, donde el formato de token sigue siendo el mismo en todas las versiones de Oracle GoldenGate. Si una versión de Oracle GoldenGate no soporta ningún token determinado, ese token se ignora. Los tokens depracados tienen asignado un valor por defecto para mantener la compatibilidad con las versiones anteriores de Oracle GoldenGate.
Para garantizar la compatibilidad con versiones anteriores y futuras de los archivos entre las distintas versiones de proceso de Oracle GoldenGate, los campos de cabecera de archivo se escriben en un formato de token estandarizado. Los tokens nuevos creados por las nuevas versiones de un proceso pueden ser ignorados por las versiones anteriores, de modo que se mantenga la compatibilidad con versiones anteriores. Del mismo modo, las versiones más recientes de Oracle GoldenGate admiten tokens más antiguos. Además, si un token está en desuso por una nueva versión de proceso, se asigna un valor por defecto al token para que las versiones anteriores puedan seguir funcionando correctamente. El token que especifica la versión del archivo es COMPATIBILITY y se puede ver en la utilidad Logdump y también recuperándolo con la opción GGFILEHEADER de la función @GETENV.
Un archivo de pista o Extract debe tener una versión que sea igual o inferior a la del proceso que lo lee. De lo contrario, el proceso finalizará de manera anormal. Además, Oracle GoldenGate fuerza que la pista de salida sea de la misma versión que la de su pista o archivo de entrada. Al reiniciar, Extract realiza un rollback de una pista a un nuevo archivo para asegurarse de que cada archivo es de una única versión (a menos que el archivo esté vacío).
Desde Oracle GoldenGate 21c en adelante, para las bases de datos Oracle, puede especificar un nombre único global para la base de datos mediante el parámetro DB_UNIQUE_NAME. Si no se define este parámetro de base de datos, DB_UNIQUE_NAME es el mismo que DB_NAME. Esta función permite la identificación única del origen de los datos de pista mediante la visualización de la cabecera del archivo de pista.
Consulte el parámetro [GETENV](/pls/topic/lookup?ctx=en/middleware/goldengate/core/21.3/admin&id=GWURF-GUID-B84527F5-91BA-4E2E-BC37-92D1B6C35735) para conocer el uso del token DbUniqueName.
El token DbUniqueName se escribirá en los archivos de pista con el nivel de compatibilidad 19.1; sin embargo, las versiones anteriores de Oracle GoldenGate que soportan ese nivel de compatibilidad ignorarán el nuevo token. El token pertenece al grupo de información de base de datos. El campo estará limitado a 65536 bytes, para permitir que se ajusten todos los valores posibles de DB_UNIQUE_NAME, limitados a 30 caracteres.
Debido a que los procesos de Oracle GoldenGate están desacoplados y pueden ser de diferentes versiones de Oracle GoldenGate, la cabecera de archivo de cada archivo de pista contiene un indicador de versión. Por defecto, la versión de un archivo de pista es la versión actual del proceso que ha creado el archivo. Si necesita definir la versión de una pista, utilice la opción FORMAT del parámetro EXTTRAIL, EXTFILE, RMTTRAIL o RMTFILE.
Puede ver la cabecera de pista con el comando FILEHEADER en la utilidad Logdump. Para obtener más información sobre los tokens de la cabecera del archivo, consulte Referencia de volcado de log para Oracle GoldenGate.
Registro de nombre de partición en cabecera de archivo de pista
Cada registro DML de la cabecera del archivo de pista puede contener un índice de un registro de nombre de partición (PNR). Debido a que el nombre completo de la partición puede ser largo, se crea un PNR en cada archivo de pista por primera vez que se escribe la partición. Cada PNR contiene el nombre de la partición y el ID del objeto de la partición.
Para Extract principal, PNR solo se genera para la coincidencia de particiones e incluye mediante los parámetros PARTITION y PARTITIONEXCLUDE. Los registros DML de estas particiones tienen un índice para el registro de definición de tabla y otro índice para el registro de nombre de partición. Los registros DML de todas las demás tablas, como las tablas no particionadas o las tablas particionadas, que no coinciden ni se excluyen mediante los parámetros PARTITION o PARTITIONEXCLUDE, solo tienen un índice en el registro de definición de tabla como se ha hecho hoy. Para el servicio de distribución, el PNR se escribe si el registro de pista de origen contiene un índice PNR.
Visualización del Nombre de la Partición y el Índice PNR en Logdump
Utilice la utilidad Logdump para mostrar el registro de nombre de partición y el DML que contiene el índice PNR.
A continuación, se muestra un ejemplo que muestra la captura de la pantalla en un archivo:
$ logdump > output.txt <<EOF
ghdr on
detail data
open ./dirdat/tr000000000
n 200
EOF
La salida muestra el PNR y el DML con los valores de índice PNR, como se muestra en el siguiente ejemplo:
HDR-IND : E (X45) PARTITION : . (XFF80)
UNDOFLAG : . (X00) BEFOREAFTER: A (X41)
RECLENGTH : 0 (X0000) IO TIME : 2019/01/17 16:48:01.129.045
IOTYPE : 170 (XAA) ORIGNODE : 4 (X04)
TRANSIND : . (X03) FORMATTYPE : R (X52)
SYSKEYLEN : 0 (X00) INCOMPLETE : . (X00)
TDR/PNR IDX: (001, 002) AUDITPOS : 13287580
CONTINUED : N (X00) RECCOUNT : 1 (X01)
2019/01/17 16:48:01.129.045 METADATA LEN 0 RBA 3425
PARTITION NAME: P1 PARTITION ID: 75,234 FLAGS: X00000001
___________________________________________________________________
HDR-IND : E (X45) PARTITION : . (XFF8C)
UNDOFLAG : . (X00) BEFOREAFTER: A (X41)
RECLENGTH : 18 (X0012) IO TIME : 2019/01/17 16:47:58.000.000
IOTYPE : 5 (X05) ORIGNODE : 255 (XFF)
TRANSIND : . (X00) FORMATTYPE : R (X52)
SYSKEYLEN : 0 (X00) INCOMPLETE : . (X00)
AUDITRBA : 15 AUDITPOS : 13287580
CONTINUED : N (X00) RECCOUNT : 1 (X01)
2019/01/17 16:47:58.000.000 INSERT LEN 18 RBA 3486
NAME: TKGGU1.T1 (PARTITION: P1, TDR/PNR INDEX: 1/2)
AFTER IMAGE: PARTITION X8C G B
0000 0500 0000 0100 3101 0005 0000 0001 0031 | ........1........1
COLUMN 0 (X0000), LEN 5 (X0005)
0000 0100 31 | ....1
COLUMN 1 (X0001), LEN 5 (X0005)
0000 0100 31 | ....1
Ejemplo de un registro de Oracle GoldenGate
A continuación, se muestra un registro de Oracle GoldenGate visto con Logdump. La primera parte (la lista de campos) es la cabecera y la segunda parte es el área de datos. El registro tiene un aspecto similar al de todas las plataformas soportadas por Oracle GoldenGate. Figura 1: Ejemplo de un registro de Oracle GoldenGate

Área de cabecera de registro
La cabecera de registro de Oracle GoldenGate proporciona metadatos de los datos que contiene el registro e incluye la siguiente información.
-
Tipo de operación, como inserción, actualización o supresión
-
Indicador anterior o posterior para actualizaciones
-
Información de transacción, como el grupo de transacciones y el registro de hora de confirmación
Descripción de campos de cabecera
A continuación se describen los campos de la cabecera del registro de Oracle GoldenGate. Algunos campos solo se aplican a determinadas plataformas.
Tabla: campos de cabecera de registro de Oracle GoldenGate
| Campo | Descripción |
|---|---|
|
Siempre debe ser un valor E, que indique que el registro fue creado por el proceso de extracción. Cualquier otro valor indica datos no válidos. |
|
Longitud, en bytes, del buffer de registro. |
|
Tipo de operación representada por el registro. Consulte la Tabla 12-* para obtener una lista de tipos de operación. |
|
El lugar del registro dentro de la transacción actual. Los valores son: 0 - primer registro en transacción 1 - ni el primer ni el último registro de la transacción 2 - último registro de la transacción 3 - solo registro en la transacción |
|
Identifica el identificador del log de transacciones, como el número de secuencia del redo log de Oracle. |
|
(Windows y UNIX) Identifica si el registro es un segmento de un fragmento de datos más grande que es demasiado grande para caber dentro de un registro. Los LOB, los CLOB y algunos VARCHAR se almacenan en segmentos. Los registros unificados que contienen imágenes antes y después en un solo registro (debido al parámetro S: el registro es un segmento; indica a Oracle GoldenGate que estos datos continúan en otro registro. N - no hay continuación de los datos a otro segmento; podría ser el último de una serie o un registro que no es un segmento de datos más grandes. |
|
Para los registros de Windows y UNIX, este campo siempre será un valor de 4 (registro comprimido FieldComp en formato interno). Para estas plataformas, el término partición no indica que los datos representen ninguna partición lógica o física concreta dentro de la estructura de la base de datos. |
|
Identifica si el registro es una imagen anterior (B) o posterior (A) de una operación de actualización. Los registros que combinan imágenes anteriores y posteriores como resultado del parámetro UPDATERECORDFORMAT se marcan como imágenes posteriores. Las inserciones siempre van después de las imágenes, las supresiones siempre van antes que las imágenes. |
|
La hora a la que se produjo la operación, en la hora local del sistema de origen, en formato GMT. Este tiempo puede ser el mismo o diferente para cada operación de una transacción en función de cuándo se haya producido la operación. |
|
Identifica si los datos se han leído del log de transacciones o se han recuperado de la base de datos.</p>F: recuperado de la base de datos<p>R: legible en el log de transacciones |
|
Este campo es obsoleto. |
|
Identifica la posición en el registro de transacciones de los datos. |
|
(Windows y UNIX) Se utiliza para los datos LOB cuando se deben dividir en fragmentos para escribirlos en el archivo de Oracle GoldenGate. RecCount se utiliza para volver a ensamblar los fragmentos. |
Uso de datos de cabecera
Algunos de los datos disponibles en la cabecera de registro de Oracle GoldenGate se pueden utilizar para la asignación mediante la opción GGHEADER de la función @GETENV o mediante cualquiera de los siguientes elementos de transacción como expresión de origen en una sentencia COLMAP en el parámetro TABLE o MAP.
-
GGS_TRANS_TIMESTAMP
-
GGS_TRANS_RBA
-
GGS_OP_TYPE
-
GGS_BEFORE_AFTER_IND
Área de datos de registro
El área de datos del registro de pista de Oracle GoldenGate contiene lo siguiente:
-
Hora a la que se ha confirmado el cambio en la base de datos origen
-
Tipo de operación de base de datos
-
La longitud del registro
-
Dirección de bytes relativa en el archivo de pista
-
Nombre de la tabla
-
Los datos cambian en formato hexadecimal
A continuación, se explican las diferencias en los formatos de imagen de registro utilizados por Oracle GoldenGate en sistemas Windows, UNIX, Linux y NonStop.
Formato de imagen de registro completo (orígenes NonStop)
Una imagen de registro completo contiene los valores de todas las columnas de una fila procesada. El formato de imagen de registro completo se genera en la pista cuando el sistema de origen es HP NonStop y solo cuando el valor IOType especificado en la cabecera de registro es uno de los siguientes:
3 - Delete 5 - Insert 10 - Update
Cada imagen de registro completo tiene el mismo formato que si se recuperara de un programa leyendo el archivo o tabla original directamente. Para las tablas SQL, los campos de fecha y hora, los valores nulos y otros datos se escriben exactamente como lo haría un programa para seleccionarlos en un buffer de aplicación. Aunque los campos de fecha y hora se representan internamente como un registro de hora de ocho bytes, su formulario externo puede tener hasta 26 bytes expresados como una cadena. Los registros de suscripción se recuperan a medida que existen en el archivo original.
Cuando el tipo de operación es Insert o Update, la imagen contiene el contenido del registro después de la operación (la imagen posterior). Cuando el tipo de operación es Delete, la imagen contiene el contenido del registro antes de la operación (la imagen anterior).
Para los registros generados a partir de una base de datos Enscribe, las imágenes de registro completo se muestran a menos que el archivo original tenga el atributo AUDITCOMPRESS definido en ON. Cuando AUDITCOMPRESS es ON, los registros de actualización comprimidos se generan cada vez que el archivo original recibe una operación de actualización. (El proceso Extract puede recuperar una imagen completa mediante el parámetro FETCHCOMPS).
Formato de imagen de registro comprimido (orígenes de Windows, UNIX y Linux)
Una imagen de registro comprimida solo contiene la clave (primaria, única, KEYCOLS) y las columnas que cambiaron en la fila procesada. Por defecto, los registros de pista escritos por procesos en sistemas Windows y UNIX siempre se comprimen.
El formato de un registro comprimido es el siguiente:
column_index
column_length
column_data[...]
Dónde:
-
column_index
es el índice ordinal de la columna dentro de la tabla de origen (2 bytes).
-
colum_length
es la longitud de los datos (2 bytes).
-
column_data
son los datos, incluidos
NULL
o bien
VARCHAR
indicadores de longitud.
Los registros de suscripción escritos desde la plataforma NonStop se pueden comprimir. El formato de un registro Enscribe comprimido es el siguiente:
field_offset
field_length field_value[...]
Dónde:
-
field_offset
es el desplazamiento dentro del registro original del valor cambiado (2 bytes).
-
field_length
es la longitud de los datos (2 bytes).
-
field_value
son los datos, incluidos
NULL
o bien
VARCHAR
indicadores de longitud.
El primer campo de un registro Enscribe comprimido es la clave primaria o del sistema.
Área de tokens
El registro de pista también puede contener dos áreas para tokens. Uno es para uso interno y no está documentado aquí, y el otro es el área de tokens de usuario. Los tokens de usuario son valores de entorno que se capturan y almacenan en el registro de pista para la replicación en columnas de destino u otros fines. Si se utilizan, estos tokens siguen la parte de datos del registro y aparecen similares a los siguientes cuando se visualizan con Logdump:
| Parámetro | Valor |
|---|---|
TKN-HOST TKN-GROUP TKN-BA_IND TKN-COMMIT_TS TKN-POS TKN-RBA TKN-TABLE TKN-OPTYPE TKN-LENGTH TKN-TRAN_IND |
: syshq : EXTORA : AFTER : 2011-01-24 17:08:59.000000 : 3604496 : 4058 : SOURCE.CUSTOMER : INSERT : 57 : BEGIN |
Tipos de operaciones de Oracle GoldenGate
A continuación se muestran algunos de los tipos de operación de Oracle GoldenGate. Se pueden agregar tipos a medida que se agregue una nueva funcionalidad a Oracle GoldenGate. Para obtener una lista más actualizada, utilice el comando SHOW RECTYPE en la utilidad Logdump:
| Tipo | Descripción | Plataforma |
|---|---|---|
| 1-Abort | Transacción abortada. | NSK TMF |
| 2-Commit | Transacción confirmada. | NSK TMF |
| 3-Delete | Se eliminó un registro/fila. Un registro Delete suele contener una imagen de registro completa. Sin embargo, si se ha utilizado el parámetro COMPRESSDELETES, solo estarán presentes las columnas clave. |
Todos |
| 4-EndRollback | Finalizó un rollback de base de datos | NSK TMF |
| 5-Insert | Se insertó un registro/fila. Un registro Insert contiene una imagen de registro completa. |
Todos |
| 6-Prepared | Se ha preparado una transacción en red para confirmar. | NSK TMF |
| 7-TMF-Cierre | Se produjo un cierre de TMF. | NSK TMF |
| 8-TransBegin | Ya no se utiliza. | NSK TMF |
| 9-TransRelease | Ya no se utiliza. | NSK TMF |
| 10-Update | Se actualizó un registro/fila. Un registro Update contiene una imagen de registro completa. Nota: Si el indicador de partición de la cabecera del registro es 4, el registro tiene el formato FieldComp (consulte a continuación) y la actualización se comprime. |
Todos |
| 11-UpdateComp | Se actualizó un registro/fila en formato TMF AuditComp. En este formato, solo están presentes los bytes modificados. Un descriptor de 4 bytes con el formato 2-byte_offset2-byte_length precede a cada fragmento de datos. El desplazamiento de bytes es el índice ordinal de la columna dentro de la tabla de origen. La longitud es la longitud de los datos. |
NSK TMF |
| 12-FileAlter | Se ha modificado un atributo de un archivo de base de datos. | NSK |
| 13-FileCreate | Se ha creado un archivo de base de datos. | NSK |
| 14-FilePurge | Se ha suprimido un archivo de base de datos. | NSK |
| 15-FieldComp | Se ha actualizado una fila de una tabla SQL. En este formato, solo están presentes los bytes modificados. Antes de que la base de datos no registre las imágenes de las columnas sin cambios. Un descriptor de 4 bytes con el formato 2-byte_offset2-byte_length precede a cada fragmento de datos. El desplazamiento de bytes es el índice ordinal de la columna dentro de la tabla de origen. La longitud es la longitud de los datos. Un indicador de partición de 4 en la cabecera del registro indica el formato FieldComp. |
Todos |
| 16-FileRename | Se ha cambiado el nombre del archivo. | NSK |
| 17-AuxPointer | Contiene información sobre qué pistas AUX tienen nuevos datos y la ubicación en la que leer. | NSK TMF |
| 18-NetworkCommit | Una transacción en red confirmada. | NSK TMF |
| 19-NetworkAbort | Se abortó una transacción en red. | NSK TMF |
| 90-(GGS)SQLCol | Se ha agregado una o varias columnas de una tabla SQL o se ha cambiado un atributo. | NSK |
| 100 - (GGS) Depuración | Todos los datos se han eliminado del archivo (PURGEDATA). |
NSK |
| 101-(GGS)Depurar (archivo) | Se depuró un archivo. | NSK no TMF |
| 102-(GGS)Crear(archivo) | Se ha creado un archivo. El registro de Oracle GoldenGate contiene los atributos de archivo. | NSK no TMF |
| 103-(GGS)Alter(Archivo) | Se modificó un archivo. El registro de Oracle GoldenGate contiene los atributos de archivo modificados. | NSK no TMF |
| 104-(GGS)Renombrar (archivo) | Se ha cambiado el nombre del archivo. El registro de Oracle GoldenGate contiene los nombres original y nuevo. | NSK no TMF |
| 105-(GGS)modo de ajuste | Se ha realizado una operación SETMODE. El registro de Oracle GoldenGate contiene la información SETMODE. |
NSK no TMF |
| 106-GGSChangeLabel | Se ha realizado una operación CHANGELABEL. El registro de Oracle GoldenGate contiene la información CHANGELABEL. |
NSK no TMF |
| 107-(GGS)Control | Se ha realizado una operación CONTROL. El registro de Oracle GoldenGate contiene la información CONTROL. |
NSK no TMF |
115 y 117 (GGS)KeyFieldComp(32) |
Se actualizó una clave primaria. El registro de Oracle GoldenGate contiene la imagen anterior de la clave y la imagen posterior de la clave y la fila. Los datos tienen el formato FieldComp (comprimido), lo que significa que antes de que la base de datos no registre las imágenes de las columnas sin cambios. |
Windows y UNIX |
116-LargeObject 116-LOB |
Identifica una columna RAW, BLOB, CLOB o LOB. Los datos de este tipo se almacenan en varios registros. |
Windows y UNIX |
| 132-(GGS) SequenceOp | Identifica una operación en una secuencia. | Windows y UNIX |
ACTUALIZACIÓN 134-UNIFIED ACTUALIZACIÓN DE CONTRASEÑA 135-UNIFIED |
Identifica un registro de pista unificado que contiene valores de antes y después en el mismo registro. La imagen anterior de UNIFIED UPDATE contiene todas las columnas que están disponibles en el registro de transacción para las imágenes anterior y posterior. La imagen anterior de UNIFIED UPDATE contiene todas las columnas disponibles en el registro de transacción, pero la imagen posterior se limita a las columnas de clave primaria y las columnas que se modificaron en UPDATE. |
Windows y UNIX |
| 160 - DDL_Op | Identifica una operación DDL | Windows y UNIX |
161- RecordFragment |
Identifica parte de una fila grande que se debe almacenar en varios registros (más que solo el registro base). | Windows y UNIX |
Bloque no estructurado de 200 GGSU 200-BulkIO |
Se ha realizado una operación BULKIO. El registro de Oracle GoldenGate contiene el bloque RAW DP2. |
NSK no TMF |
| 201 a 204 | Estos son diferentes tipos de registros de rastreo NonStop. Los analistas de soporte de Oracle GoldenGate utilizan registros de rastreo. A continuación, se muestran descripciones.
|
NSK no TMF |
| 205-GGSComment | Indica un registro de comentario creado por la utilidad Logdump. Logdump crea los registros de comentarios al principio y al final de los datos que se guardan en un archivo con el comando SAVE de Logdump. |
Todos |
| 249 a través de 254 | Estos son diferentes tipos de registros de rastreo NonStop. Los analistas de soporte de Oracle GoldenGate utilizan registros de rastreo. A continuación, se muestran descripciones.
|
NSK fuera de plazo |