检查点表附加详细信息

使用数据库检查点时,Oracle GoldenGate 在执行 ADD CHECKPOINTTABLE 命令时在数据库中创建具有用户定义名称的检查点表,或者用户可以使用 chkpt_db_create.sql script 创建表(其中 db 是脚本支持的数据库类型的缩写)。

有两个表:主检查点表和自动创建的辅助检查点表。辅助表(称为事务处理表)包含附加了 _lox 的主检查点表的名称。每个复制或协调复制的每个线程都使用检查点表中的一行来存储其进度信息。

在检查点时,通常会应用一些事务处理(在 n 个事务处理总数中),其余事务处理仍在处理中。例如,如果 Replicat 正在处理一组从 CSN1 到 CSN3 的 n 个事务。CSN1 是高水位标志,CSN3 是低水位标志。尚未处理 CSN 高于高水位标志的任何事务,并且已处理 CSN 低于低水位标志的任何事务。已完成的事务处理存储在检查点表的 LOG_CMPLT_XID 列中。这些事务的任何溢出都存储在事务表(辅助检查点表)中该表的 LOG_CMPLT_XID 列中。

目前,复制(或协调复制的每个复制线程)以串行方式(非并行方式)应用事务;因此,高水位标志(表中的 LOG_CSN 值)始终与低水位标志(表中的 LOG_CMPLT_CSN 值)相同,且 LOG_CMPLT_XID 列中通常只有一个事务 ID。唯一的例外是存在多个共享同一 CSN 的事务处理。

不要更改这些表中列的名称或属性。可以根据需要更改表存储属性。

列 说明
LOG_BSN
LOG_BSN 提供了及时设置提取以重新处理事务处理所需的信息。某些按复制过滤是必要的,因为提取可能会重新生成已经由复制应用的小量数据。
VERSION
检查点表格式的版本。允许将来将增强功能标识为表的版本号。
AUDIT_TS
源事务处理提交的时间戳。
SEQNO
Replicat 在检查点时读取的输入线索的序列号。
RBA
Replicat 在由 SEQNO 标识的线索中达到的相对字节地址。RBA + SEQNO 提供了线索中的绝对位置,该位置标识了检查点时复制的进度。
GROUP_NAME (primary key)
使用此表的检查点的复制组的名称。可以有多个使用同一表的复制组。此列是主键的组成部分。
LAST_UPDATE_TS
上次更新检查点表的日期和时间。
CREATE_TS
创建检查点表的日期和时间。
CURRENT_DIR
当前 Oracle GoldenGate 主目录或文件夹。
LOG_CMPLT_XIDS
存储已应用的高水位和低水位之间的事务处理。
LOG_CMPLT_CSN
存储 CSN 的低水印或下边界。已处理 CSN 低于此值的任何事务处理。
LOG_CSN
存储 CSN 的高水位标志或上边界。尚未处理 CSN 超过此值的任何事务处理。
LOG_XID
未使用。为向后兼容而保留。
GROUP_KEY (primary key)
唯一标识符,以及
GROUPNAME
,唯一标识检查点,而不考虑向同一个表写入了多少个复制组。此列是主键的组成部分。
列 说明
GROUP_KEY
一个唯一标识符,与 GROUPNAME 一起唯一标识检查点,而不管正在向同一个表写入多少个复制组。此列是事务处理表主键的一部分。
LOG_CMPLT_XIDS_SEQ
在有太多溢出事务处理时创建唯一行,需要多行来存储所有溢出事务处理。此列是事务处理表主键的一部分。
LOG_CMPLT_XIDS
存储已应用的高水位和低水位之间的事务处理溢出。
LOG_CMPLT_CSN
引用检查点表的外键。此列是事务处理表主键的一部分。
GROUP_NAME
使用此表的检查点的复制组的名称。可以有多个使用同一表的复制组。此列是事务处理表主键的一部分。

内部检查点信息

带有 SHOWCH 选项的 INFO 命令不仅显示当前检查点条目,而且还显示有关记录本身的元数据信息。此信息未记录,供 Oracle GoldenGate 流程和支持人员在解决支持案例时使用。

元数据包含在 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

INFO EXTRACT SHOWCH 命令:检查点信息

以下示例显示了 INFO EXTRACT 命令返回的带有 SHOWCH 选项的检查点信息。在这种情况下,数据源是 Oracle RAC 数据库集群,因此输出中包括线程信息。您可以通过指定要在 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

INFO REPLICAT,SHOWCH:检查点信息

基本命令显示当前检查点。要查看以前检查点的特定数量,请在 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