In this section, we will discuss problems with the replicat and how ot solve them:
There are several problems, which you can have with the replicat, but like everything with golden gate..or oracle :D It requires great deal of head banging. Preferably in a massive wall.
For whatever reason, a replicat can point to a wrong remote trail file. I tried cleaning it up, deleting the entire replicat and whatever else. Nothing worked. So I just repositioned the replicat and told him after which SCN to start. There are couple steps to do, but firstly let's see the situation:
Check the current setting
GGSCI (temporaprod.izb.local as ggate@orclprod) 29> info IBPREP1 REPLICAT IBPREP1 Last Started 2021-02-24 18:02 Status RUNNING Checkpoint Lag 00:00:00 (updated 00:00:10 ago) Process ID 58280 Log Read Checkpoint File /u01/app/oracle/product/12.3.0/gg/dirdat/rt000000000 First Record RBA 0
So, our replicat searches for: /u01/app/oracle/product/12.3.0/gg/dirdat/rt000000000. ALTHOUGH THERE ISN'T EVEN SUCH FILE WHEN IT WAS CREATED and the entire checkpoint table was re-created….but whatever :) So, let's check on which one we are currently:
Check current sequence on Extract(On Master/Primary/Whatever you call it)
GGSCI (oraprod.izola.dom) 4> INFO EXTRACT group SHOWCH ERROR: EXTRACT does not exist. GGSCI (oraprod.izola.dom) 5> INFO EXTRACT IBPEXT1 SHOWCH EXTRACT IBPEXT1 Last Started 2020-11-28 09:32 Status RUNNING Checkpoint Lag 00:00:00 (updated 00:00:01 ago) Process ID 9912 Log Read Checkpoint Oracle Redo Logs 2021-02-24 20:11:14 Seqno 35956, RBA 107833856 SCN 0.2698551815 (2698551815) Current Checkpoint Detail: Read Checkpoint #1 Oracle Redo Log Startup Checkpoint (starting position in the data source): Thread #: 1 Sequence #: 33640 RBA: 1774096 Timestamp: 2020-11-28 08:19:16.000000 SCN: 0.2645241670 (2645241670) Redo File: /app/data/orclprod/redo/log1/log1a.rdo Recovery Checkpoint (position of oldest unprocessed transaction in the data source): Thread #: 1 Sequence #: 35956 RBA: 107697680 Timestamp: 2021-02-24 20:10:59.000000 SCN: 0.2698551736 (2698551736) Redo File: /app/data/orclprod/redo/log1/log1a.rdo Current Checkpoint (position of last record read in the data source): Thread #: 1 Sequence #: 35956 RBA: 107833856 Timestamp: 2021-02-24 20:11:14.000000 SCN: 0.2698551815 (2698551815) Redo File: /app/data/orclprod/redo/log1/log1a.rdo Write Checkpoint #1 GGS Log Trail Current Checkpoint (current write position): Sequence #: 748 <- This little thingy. RBA: 84655471 Timestamp: 2021-02-24 20:11:18.092007 Extract Trail: ./dirdat/lt Trail Type: EXTTRAIL
That being said, if you use have a data pump (classic) Golden Gate, you DON'T NEED that number. You need the DATAPUMP number:
Check current sequence on Data pump(On Master/Primary/Whatever you call it)
GGSCI (oraprod.izola.dom) 7> INFO EXTRACT IBPDMP1 SHOWCH EXTRACT IBPDMP1 Last Started 2021-02-24 17:05 Status RUNNING Checkpoint Lag 00:00:00 (updated 00:00:03 ago) Process ID 2647 Log Read Checkpoint File ./dirdat/lt000749 2021-02-24 20:13:05.000000 RBA 20895488 Current Checkpoint Detail: Read Checkpoint #1 GGS Log Trail Startup Checkpoint (starting position in the data source): Sequence #: 747 RBA: 47136581 Timestamp: 2021-02-24 17:03:58.000000 Extract Trail: ./dirdat/lt Current Checkpoint (position of last record read in the data source): Sequence #: 749 RBA: 20895488 Timestamp: 2021-02-24 20:13:05.000000 Extract Trail: ./dirdat/lt Write Checkpoint #1 GGS Log Trail Current Checkpoint (current write position): Sequence #: 750 <- This thingy. RBA: 73757623 Timestamp: 2021-02-24 20:13:11.485236 Extract Trail: ./dirdat/rt Trail Type: RMTTRAIL
So after, you have the needed sequence number, we can teach the replicat our peaceful ways…BY FORCE :D
Point the sequence number
GGSCI (temporaprod.izb.local) 3> dblogin userid ggate,password izola Successfully logged into database. GGSCI (temporaprod.izb.local) 4> stop replicat IBPREP1 Sending STOP request to REPLICAT IBPREP1 ... GGSCI (temporaprod.izb.local as ggate@orclprod) 5> ALTER REPLICAT IBPREP1 EXTSEQNO 750 2021-02-24 20:14:27 INFO OGG-06594 Replicat IBPREP1 has been altered. Even the start up position might be updated, duplicate suppression remains active in next startup. To override duplicate suppression, start IBPREP1 with NOFILTERDUPTRANSACTIONS option. REPLICAT altered. GGSCI (temporaprod.izb.local as ggate@orclprod) 5>
After that you can verify that it points to the correct and start it:
Verify & Start the replicat
GGSCI (temporaprod.izb.local as ggate@orclprod) 10> info IBPREP1 REPLICAT IBPREP1 Initialized 2021-02-24 20:14 Status STOPPED Checkpoint Lag 00:00:00 (updated 00:00:07 ago) Log Read Checkpoint File /u01/app/oracle/product/12.3.0/gg/dirdat/rt000000750 First Record RBA 0 GGSCI (temporaprod.izb.local as ggate@orclprod) 11> start replicat IBPREP1, aftercsn 2698449303 Sending START request to MANAGER ... REPLICAT IBPREP1 starting GGSCI (temporaprod.izb.local as ggate@orclprod) 12> info IBPREP1 REPLICAT IBPREP1 Last Started 2021-02-24 20:15 Status RUNNING Checkpoint Lag 00:00:00 (updated 00:00:07 ago) Process ID 69757 Log Read Checkpoint File /u01/app/oracle/product/12.3.0/gg/dirdat/rt000750 First Record RBA 1467 <- You see, all fine
Now, you can set also the RBA (Rollback..something), using the whole set of commands:
Re-point syntax
ALTER REPLICAT group EXTSEQNO 750 ALTER REPLICAT group EXTRBA 1467
But I gave him the SCN so he knows where to go.