Detalles adicionales de tablas de puntos de control

Cuando se utilizan puntos de control de base de datos, Oracle GoldenGate crea una tabla de puntos de control con un nombre definido por el usuario en la base de datos al ejecutar el comando ADD CHECKPOINTTABLE, o bien un usuario puede crear la tabla mediante chkpt_db_create.sql script (donde db es una abreviatura del tipo de base de datos que soporta el script).

Hay dos tablas: la tabla de puntos de control principal y una tabla de puntos de control auxiliar que se crea automáticamente. La tabla auxiliar, conocida como tabla de transacciones, lleva el nombre de la tabla de puntos de control principal agregada con _lox. Cada Replicat, o cada thread de un Replicat coordinado, utiliza una fila en la tabla de puntos de control para almacenar su información de progreso.

En el momento del punto de control, normalmente hay un número de transacciones (entre el total de n transacciones) que se han aplicado y el resto aún está en curso. Por ejemplo, si Replicat está procesando un grupo de n transacciones que van de CSN1 a CSN3. CSN1 es la marca de agua alta y CSN3 es la marca de agua baja. Cualquier transacción con un CSN superior a la marca de agua superior no se ha procesado, y cualquier transacción con un CSN inferior a la marca de agua inferior ya se ha procesado. Las transacciones finalizadas se almacenan en la columna LOG_CMPLT_XID de la tabla de puntos de control. Cualquier desbordamiento de estas transacciones se almacena en la tabla de transacciones (tabla de puntos de control auxiliar) en la columna LOG_CMPLT_XID de dicha tabla.

Actualmente, Replicat (o cada thread de Replicat de un Replicat coordinado) aplica transacciones en serie (no en paralelo); por lo tanto, la marca de agua superior (el valor LOG_CSN de la tabla) siempre es la misma que la marca de agua inferior (el valor LOG_CMPLT_CSN de la tabla) y, normalmente, solo hay un ID de transacción en la columna LOG_CMPLT_XID. La única excepción es cuando hay varias transacciones que comparten el mismo CSN.

No cambie los nombres o los atributos de las columnas en estas tablas. Puede cambiar los atributos de almacenamiento de tablas según sea necesario.

Columna Descripción
LOG_BSN
LOG_BSN proporciona la información necesaria para volver a definir Extract en el tiempo para volver a procesar las transacciones. Es necesario filtrar por Replicat porque es probable que Extract vuelva a generar una pequeña cantidad de datos que ya aplicó Replicat.
VERSION
Versión del formato de tabla de puntos de control. Permite identificar mejoras futuras como números de versión de la tabla.
AUDIT_TS
Registro de hora de la confirmación de la transacción de origen.
SEQNO
Número de secuencia de la pista de entrada que Replicat estaba leyendo en el momento del punto de control.
RBA
Dirección de bytes relativa a la que ha llegado Replicat en la pista identificada por SEQNO. RBA + SEQNO proporcionan una posición absoluta en la pista que identifica el progreso de Replicat en el momento del punto de control.
GROUP_NAME (primary key)
Nombre de un grupo de Replicat que utiliza esta tabla para puntos de control. Puede haber varios grupos de Replicat que utilicen la misma tabla. Esta columna forma parte de la clave primaria.
LAST_UPDATE_TS
Fecha y hora de la última actualización de la tabla de puntos de control.
CREATE_TS
Fecha y hora en que se creó la tabla de puntos de control.
CURRENT_DIR
Directorio raíz o carpeta actual de Oracle GoldenGate.
LOG_CMPLT_XIDS
Almacena las transacciones entre las marcas de agua altas y bajas que ya se han aplicado.
LOG_CMPLT_CSN
Almacena la marca de agua baja, o el límite inferior, de los CSN. Cualquier transacción con un CSN inferior a este valor ya se ha procesado.
LOG_CSN
Almacena la marca de agua alta, o el límite superior, de los CSN. No se ha procesado ninguna transacción con un CSN superior a este valor.
LOG_XID
No se usa. Retenido para compatibilidad con versiones anteriores.
GROUP_KEY (primary key)
Un identificador único que, junto con
GROUPNAME
, identifica de forma única un punto de control independientemente del número de grupos de Replicat que escriban en la misma tabla. Esta columna forma parte de la clave primaria.
Columna Descripción
GROUP_KEY
Identificador único que, junto con GROUPNAME, identifica de forma única un punto de control independientemente del número de grupos de Replicat que escriben en la misma tabla. Esta columna forma parte de la clave primaria de la tabla de transacciones.
LOG_CMPLT_XIDS_SEQ
Crea filas únicas en el caso de que haya tantas transacciones de desbordamiento que se necesitan varias filas para almacenarlas todas. Esta columna forma parte de la clave primaria de la tabla de transacciones.
LOG_CMPLT_XIDS
Almacena el desbordamiento de transacciones entre las marcas de agua altas y bajas que ya se han aplicado.
LOG_CMPLT_CSN
Clave ajena que hace referencia a la tabla de puntos de control. Esta columna forma parte de la clave primaria de la tabla de transacciones.
GROUP_NAME
Nombre de un grupo de Replicat que utiliza esta tabla para puntos de control. Puede haber varios grupos de Replicat que utilicen la misma tabla. Esta columna forma parte de la clave primaria de la tabla de transacciones.

Información de punto de control interno

El comando INFO con la opción SHOWCH no solo muestra las entradas de punto de control actuales, sino que también muestra información de metadatos sobre el registro en sí. Esta información no está documentada y debe ser utilizada por los procesos de Oracle GoldenGate y por el personal de soporte al resolver un caso de soporte.

Los metadatos se incluyen en las siguientes entradas de la salida SHOWCH.

Header:

    Version = 2

    Record Source = A

    Type = 1

    # Input Checkpoints = 1

    # Output Checkpoints = 0

    File Information:

    Block Size = 2048

    Max Blocks = 100

    Record Length = 2048

    Current Offset = 0

    Configuration:

    Data Source = 0

    Transaction Integrity = -1

    Task Type = 0

    Status:

    Start Time = 2011-01-12 13:10:13

    Last Update Time = 2011-01-12 21:23:31

    Stop Status = A

    Last Result = 400

Comando INFO EXTRACT SHOWCH: Información de punto de control

El siguiente ejemplo presenta la información de punto de control devuelta por el comando INFO EXTRACT con la opción SHOWCH. En este caso, el origen de datos es un cluster de base de datos Oracle RAC, por lo que hay información de thread incluida en la salida. Puede ver los puntos de control anteriores especificando el número de ellos que desea ver después del argumento SHOWCH.

EXTRACT JC108XT Last Started 2011-01-01 14:15 Status ABENDED
Checkpoint Lag 00:00:00 (updated 00:00:01 ago)
Log Read Checkpoint File /orarac/oradata/racq/redo01.log
 2011-01-01 14:16:45 Thread 1, Seqno 47, RBA 68748800
Log Read Checkpoint File /orarac/oradata/racq/redo04.log
 2011-01-01 14:16:19 Thread 2, Seqno 24, RBA 65657408
Current Checkpoint Detail:
Read Checkpoint #1
 Oracle RAC Redo Log
 Startup Checkpoint (starting position in data source):
 Thread #: 1
 Sequence #: 47
 RBA: 68548112
 Timestamp: 2011-01-01 13:37:51.000000
 SCN: 0.8439720
 Redo File: /orarac/oradata/racq/redo01.log

Recovery Checkpoint (position of oldest unprocessed transaction in data source):
 Thread #: 1
 Sequence #: 47
 RBA: 68748304
 Timestamp: 2011-01-01 14:16:45.000000
 SCN: 0.8440969
Redo File: /orarac/oradata/racq/redo01.log
 Current Checkpoint (position of last record read in the data source):
 Thread #: 1
 Sequence #: 47
 RBA: 68748800
 Timestamp: 2011-01-01 14:16:45.000000
 SCN: 0.8440969
 Redo File: /orarac/oradata/racq/redo01.log
Read Checkpoint #2
 Oracle RAC Redo Log
 Startup Checkpoint(starting position in data source):
 Sequence #: 24
 RBA: 60607504
 Timestamp: 2011-01-01 13:37:50.000000
 SCN: 0.8439719
 Redo File: /orarac/oradata/racq/redo04.log
Recovery Checkpoint (position of oldest unprocessed transaction in data source):
 Thread #: 2
 Sequence #: 24
 RBA: 65657408
 Timestamp: 2011-01-01 14:16:19.000000
 SCN: 0.8440613
 Redo File: /orarac/oradata/racq/redo04.log
 Current Checkpoint (position of last record read in the data source):
 Thread #: 2
 Sequence #: 24
 RBA: 65657408
 Timestamp: 2011-01-01 14:16:19.000000
 SCN: 0.8440613
 Redo File: /orarac/oradata/racq/redo04.log
Write Checkpoint #1
 GGS Log Trail
 Current Checkpoint (current write position):
 Sequence #: 2
 RBA: 2142224
 Timestamp: 2011-01-01 14:16:50.567638
 Extract Trail: ./dirdat/eh
 Header:
 Version = 2
 Record Source = A
 Type = 6
 # Input Checkpoints = 2
 # Output Checkpoints = 1
 File Information:
 Block Size = 2048
 Max Blocks = 100
 Record Length = 2048
 Current Offset = 0
Configuration:
 Data Source = 3
 Transaction Integrity = 1
 Task Type = 0
 Status:
 Start Time = 2011-01-01 14:15:14
 Last Update Time = 2011-01-01 14:16:50
 Stop Status = A
 Last Result = 400

INFORMACIÓN REPLICAT, SHOWCH: Información de punto de control

El comando básico muestra los puntos de control actuales. Para ver un número específico de puntos de control anteriores, escriba el valor después del argumento SHOWCH.

REPLICAT JC108RP Last Started 2011-01-12 13:10 Status RUNNING
Checkpoint Lag 00:00:00 (updated 111:46:54 ago)
Log Read Checkpoint File ./dirdat/eh000000000
 First Record RBA 3702915
Current Checkpoint Detail:
 Read Checkpoint #1
 GGS Log Trail
 Startup Checkpoint(starting position in data source):
 Sequence #: 0
 RBA: 3702915
 Timestamp: Not Available
 Extract Trail: ./dirdat/eh
 Current Checkpoint (position of last record read in the data source):
 Sequence #: 0
 RBA: 3702915
 Timestamp: Not Available
 Extract Trail: ./dirdat/eh
 Header:
 Version = 2
 Record Source = A
 Type = 1
 # Input Checkpoints = 1
 # Output Checkpoints =
 File Information:
 Block Size = 2048
 Max Blocks = 100
 Record Length = 2048
 Current Offset = 0
 Configuration:
 Data Source = 0
 Transaction Integrity = -1
 Task Type = 0
 Status:
 Start Time = 2011-01-12 13:10:13
 Last Update Time = 2011-01-12 21:23:31
 Stop Status = A
 Last Result = 400