Golden Gate Bi-directional setup was deleted and again tried to configure the Golden Gate Bi-directional. After starting the replicat process on the target, the process got abended with the error “OGG-02603 Checkpoint table ggadmin.GGS_CHECKPOINT does not exist”
In the Initial setup, the created checkpoint table name is “GGS_CHECPOINT,” but when the configuration was destroyed, the checkpoint table was dropped.
But due to the Golden Gate configuration information, the checkpoint table “GGS_CHECKPOINT” is unable to find, because neither the table exist, and also, adding the checkpoint table step was skipped. Due to that, based on the OGG configuration, it is expecting the accessibility of the table “GGS_CHECKPOINT”
Let’s try to understand the error log of the replicat process. The log response is straightforward to the required checkpoint that does not exist. But let’s explore why.
2021-08-07 14:48:20 INFO OGG-25341 Database Language and Character Set: NLS_LANGUAGE = "AMERICAN" NLS_TERRITORY = "AMERICA" NLS_CHARACTERSET = "WE8MSWIN1252". 2021-08-07 14:48:20 INFO OGG-06604 Database PRODT CPU info: CPU Count 4, CPU Core Count 4, CPU Socket Count 1. Source Context : SourceModule : [er.chkpt.db] SourceID : [er/chkptdb.c] SourceMethod : [CHKPTDB_compareCheckpointPosition] SourceLine : [210] ThreadBacktrace : [13] elements : [/u01/app/oracle/product/OGG_19.1.0/ogghome_1/libgglog.so(CMessageContext::AddThreadContext())] : [/u01/app/oracle/product/OGG_19.1.0/ogghome_1/libgglog.so(CMessageFactory::CreateMessage(CSourceContext*, unsigned int, ...))] : [/u01/app/oracle/product/OGG_19.1.0/ogghome_1/libgglog.so(_MSG_QualTableName(CSourceContext*, int, ggs::gglib::ggapp::CQualDBObjName<(DBObjType)1> const&, CMessag eFactory::MessageDisposition))] : [/u01/app/oracle/product/OGG_19.1.0/ogghome_1/replicat()] : [/u01/app/oracle/product/OGG_19.1.0/ogghome_1/replicat(ggs::er::ReplicatContext::startDBCheckpointing())] : [/u01/app/oracle/product/OGG_19.1.0/ogghome_1/replicat(ggs::gglib::ggapp::ReplicationContext::initializeDataSources(ggs::gglib::ggdatasource::DataSourceParams&))] : [/u01/app/oracle/product/OGG_19.1.0/ogghome_1/replicat()] : [/u01/app/oracle/product/OGG_19.1.0/ogghome_1/replicat(ggs::gglib::MultiThreading::MainThread::ExecMain())] : [/u01/app/oracle/product/OGG_19.1.0/ogghome_1/replicat(ggs::gglib::MultiThreading::Thread::RunThread(ggs::gglib::MultiThreading::Thread::ThreadArgs*))] : [/u01/app/oracle/product/OGG_19.1.0/ogghome_1/replicat(ggs::gglib::MultiThreading::MainThread::Run(int, char**))] : [/u01/app/oracle/product/OGG_19.1.0/ogghome_1/replicat(main)] : [/lib64/libc.so.6(__libc_start_main)] : [/u01/app/oracle/product/OGG_19.1.0/ogghome_1/replicat()] 2021-08-07 14:48:20 ERROR OGG-02603 Checkpoint table ggadmin.GGS_CHECKPOINT does not exist. Create this table with the ADD CHECKPOINTTABLE command. 2021-08-07 14:48:20 ERROR OGG-01668 PROCESS ABENDING. GGSCI (ORA-X1 as ggadmin@PRODT) 8>
Next, read the replicat information with the attributes using the below command.
GGSCI (ORA-X1 as ggadmin@PRODT) 16> info inrep1, showch REPLICAT INREP1 Initialized 2021-08-07 14:48 Status STOPPED INTEGRATED Checkpoint Lag 00:00:00 (updated 00:06:46 ago) Log Read Checkpoint File /dirdat/rt000000000 First Record RBA 0 Current Checkpoint Detail: Read Checkpoint #1 GGS Log Trail Startup Checkpoint (starting position in the data source): Sequence #: 0 RBA: 0 Timestamp: Not Available Extract Trail: /dirdat/rt Seqno Length: 9 Current Checkpoint (position of last record read in the data source): Sequence #: 0 RBA: 0 Timestamp: Not Available Extract Trail: /dirdat/rt Seqno Length: 9 Header: Version = 2 Record Source = U Type = 14 # Input Checkpoints = 1 # Output Checkpoints = 0 Configuration: Data Source = 0 Transaction Integrity = -1 Task Type = 0 Database Checkpoint: Checkpoint table = ggadmin.GGS_CHECKPOINT Key = 1613821723 (0x6030f71b) Create Time = 2021-08-07 14:48:05 Status: Start Time = 2021-08-07 14:48:05 Last Update Time = 2021-08-07 14:48:05 Stop Status = G Last Result = 0 GGSCI (ORA-X1 as ggadmin@PRODT) 17>
In the above output, the checkpoint table points to “GGS_CHECKPOINT”. Since it was already used in the previous exercise let’s add the replicat with the new checkpoint table.
GGSCI (ORA-X1 as ggadmin@PRODT) 19> add replicat inrep1, integrated exttrail /dirdat/rt, checkpointtable GGADMIN.CKPT REPLICAT (Integrated) added.
Now, start the replicat process.
GGSCI (ORA-X1 as ggadmin@PRODT) 20> start inrep1 Sending START request to MANAGER ... REPLICAT INREP1 starting GGSCI (ORA-X1 as ggadmin@PRODT) 21> info inrep1, showch REPLICAT INREP1 Last Started 2021-08-07 14:57 Status RUNNING INTEGRATED Checkpoint Lag 00:00:00 (updated 00:00:02 ago) Process ID 2717 Log Read Checkpoint File /dirdat/rt000000000 First Record RBA 0 Current Checkpoint Detail: Read Checkpoint #1 GGS Log Trail Startup Checkpoint (starting position in the data source): Sequence #: 0 RBA: 0 Timestamp: Not Available Extract Trail: /dirdat/rt Seqno Length: 9 Current Checkpoint (position of last record read in the data source): Sequence #: 0 RBA: 0 Timestamp: Not Available Extract Trail: /dirdat/rt Seqno Length: 9 Header: Version = 2 Record Source = A Type = 14 # Input Checkpoints = 1 # Output Checkpoints = 0 Configuration: Data Source = 0 Transaction Integrity = -1 Task Type = 0 Database Checkpoint: Checkpoint table = GGADMIN.CKPT Key = 1695236896 (0x650b4320) Create Time = 2021-08-07 14:57:31 Status: Start Time = 2021-08-07 14:57:37 Last Update Time = 2021-08-07 14:57:41 Stop Status = A Last Result = 400 GGSCI (ORA-X1 as ggadmin@PRODT) 22>
From the above output, we can see the new checkpoint table was added to the configuration. Finally, do not forget to add the checkpoint table information ./GLOBALS parameter.
Tip: Checkpoint table required only where the replicat is running!