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 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. |
|
Versión del formato de tabla de puntos de control. Permite identificar mejoras futuras como números de versión de la tabla. |
|
Registro de hora de la confirmación de la transacción de origen. |
|
Número de secuencia de la pista de entrada que Replicat estaba leyendo en el momento del punto de control. |
|
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. |
|
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. |
|
Fecha y hora de la última actualización de la tabla de puntos de control. |
|
Fecha y hora en que se creó la tabla de puntos de control. |
|
Directorio raíz o carpeta actual de Oracle GoldenGate. |
|
Almacena las transacciones entre las marcas de agua altas y bajas que ya se han aplicado. |
|
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. |
|
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. |
|
No se usa. Retenido para compatibilidad con versiones anteriores. |
|
Un identificador único que, junto con , 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 |
|---|---|
|
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. |
|
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. |
|
Almacena el desbordamiento de transacciones entre las marcas de agua altas y bajas que ya se han aplicado. |
|
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. |
|
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