GoldenGate Initial-Load Trail to Replicat

This article will demostrate how to perform a OGG Initial Load using the Trail to Replicat technique.

Other Initial Load techniques and their advantages and disadvantages can be found here.

Pre-requisites

OGG is installed on source and target systems

Environment

OGG : 11.2.1.0.1
Database : 11.2.0.3
Linux : OEL 6 ( 64 bit )

Trail to Replicat Steps

1. Configure the initial-load processes

Extract


SOURCEISTABLE
-- --------------------------------------------------
-- environment
-- --------------------------------------------------
SETENV (ORACLE_HOME="/u01/app/oracle/product/11.2.0/dbhome_1")
SETENV (ORACLE_SID="GGDB1")
SETENV (NLS_LANG="AMERICAN_AMERICA.WE8MSWIN1252")
USERID ggate, PASSWORD ggate
-- --------------------------------------------------
RMTHOST gglab1n2, mgrport 7809
rmtfile /u01/app/oracle/product/golden_gate/dirdat/il, maxfiles 3, megabytes 2000, PURGE
TABLE soe.*;

Replicat


REPLICAT irttr
-- --------------------------------------------------
-- environment
-- --------------------------------------------------
SETENV (ORACLE_HOME="/u01/app/oracle/product/11.2.0/dbhome_1")
SETENV (ORACLE_SID="GGDB2")
SETENV (NLS_LANG="AMERICAN_AMERICA.WE8MSWIN1252")
USERID ggate, PASSWORD ggate
-- --------------------------------------------------
-- options
-- --------------------------------------------------
ASSUMETARGETDEFS
DBOPTIONS SUPPRESSTRIGGERS
--DBOPTIONS DEFERREFCONST
-- --------------------------------------------------
-- files
-- --------------------------------------------------
DISCARDFILE ./dirrpt/irttr.dsc, PURGE
-- --------------------------------------------------
-- mappings
-- --------------------------------------------------
MAP soe.* , TARGET soe.*;

2. Configure the change-synchronization processes

This is the normal replication methods, so I will not cover them here to keep things short. You can see example of this in some of my other posts.

3. Start the change-synchronization Extract

GGSCI> DBLOGIN USERID ggate, PASSWORD password ggate

GGSCI> FLUSH SEQUENCE soe.*

GGSCI> start extract csoea

4. Start the initial-load extract

extract paramfile ./dirprm/icttr.prm reportfile ./dirrpt/icttr.rpt

You should observe the following:

* the collector starting on target as seen in the ggserr.log

* the trail files in dirdat directory on target ( $GG_HOME/dirdat/il* )

* report file in dirrpt directory on source

Monitor the icttr.rpt report file for any errors.

5. Start the initial-load replicat on the target environment

Since we are using normal trail files here, the replicat can be started w/o having to wait on the initial-load extract to complete.

add replicat irttr, exttrail ./dirdat/il, nodbcheckpoint
replicat paramfile ./dirprm/irttr.prm reportfile ./dirrpt/irttr.rpt

Monitor the report file for the initial-load replicat and wait until it the intiial-load extract is complete and the replicat is at the EOF with no more records to process. If there are no errors, then you can continue on to the next step.

However, I hit errors here. The following is from the irttr.rpt file, the info command, and the ggserr.log respectively.

...
Reading ./dirdat/il000000, current RBA 3564957, 33000 records

Report at 2013-05-22 21:50:21 (activity since 2013-05-22 21:49:31)

From Table SOE.INVENTORIES to SOE.INVENTORIES:
       #                   inserts:     33000
       #                   updates:         0
       #                   deletes:         0
       #                  discards:         0


Last log location read:
     FILE:      ./dirdat/il000000
     SEQNO:     0
     RBA:       3564957
     TIMESTAMP: 2013-05-22 21:29:46.677112
     EOF:       NO
     READERR:   0


2013-05-22 21:50:21  ERROR   OGG-01668  PROCESS ABENDING.
...
GGSCI (gglab1n2.enkitec.com) 2> info *

REPLICAT   IRTTR     Last Started 2013-05-22 21:49   Status ABENDED
Checkpoint Lag       00:20:34 (updated 15:45:19 ago)
Log Read Checkpoint  File ./dirdat/il000000
                     2013-05-22 21:29:46.677112  RBA 3565065
2013-05-22 21:32:18  INFO    OGG-00995  Oracle GoldenGate Delivery for Oracle, irttr.prm:  REPLICAT IRTTR starting.
2013-05-22 21:32:18  INFO    OGG-03035  Oracle GoldenGate Delivery for Oracle, irttr.prm:  Operating system character set identified as UTF-8. Locale: en_US, LC_ALL:.
2013-05-22 21:32:18  INFO    OGG-01815  Oracle GoldenGate Delivery for Oracle, irttr.prm:  Virtual Memory Facilities for: COM
    anon alloc: mmap(MAP_ANON)  anon free: munmap
    file alloc: mmap(MAP_SHARED)  file free: munmap
    target directories:
    /u01/app/oracle/product/golden_gate/dirtmp.
2013-05-22 21:32:18  INFO    OGG-00996  Oracle GoldenGate Delivery for Oracle, irttr.prm:  REPLICAT IRTTR started.
2013-05-22 21:33:02  ERROR   OGG-00446  Oracle GoldenGate Delivery for Oracle, irttr.prm:  CSN not found in supplemental file /u01/app/oracle/product/golden_gate/dirchk/IRTTR.cps.
2013-05-22 21:33:02  ERROR   OGG-01668  Oracle GoldenGate Delivery for Oracle, irttr.prm:  PROCESS ABENDING.

This turns out to be a know bug in OGG Version 11.2.1.0.1 and later. Unfortunately, the fix will not be available until 11.2.1.0.4.

Check out the follow note for more details.

OGG v11.2 Replicat fails OGG-00868 OCI Error ORA-01400: cannot insert NULL into
(“OGG_ADMIN”.”CHECKPOINT_LOX”.”LOG_CMPLT_CSN”) , ERROR OGG-00446 CSN not found in
supplemental file /u01/app/oracle/goldengate/dirchk/RPBSINI.cps. [ID 1468424.1]

So I leave off here waiting for the future version.

——————————————————————————-

However, if I were able to continue, there are only two more steps.

6. Start the change-synchronization Replicat

GGSCI> start replicat rsoeas

7. Turn off HANDLECOLLISIONS

SEND REPLICAT rsoeas, NOHANDLECOLLISIONS

Lastly, edit the replicat parameter file and remove HANDLECOLLISIONS so that it is not enabled next time the replicat restarts.

Advertisements

2 thoughts on “GoldenGate Initial-Load Trail to Replicat

  1. Hi Rick,

    Can you please tell me if do you have already done an initial load ” trail to replicat ” using multiple extracts/replicats ?
    I tested it but i notice a data missing.
    I created:
    On database Source:
    One change synchro extract S started with: Table User.*.
    Three initial extracts with a different set of tables started in parallel:
    Extract 1: tables A, B
    Extract 2: tables C,D
    Extract 3: Exclude table A, B, C,D
    Table User.*

    On traget:
    Initial load:
    Replicat 1 assoiciated to Extract 1 trails
    Replicat 2 assoiciated to Extract 2 trails
    Replicat 3 assoiciated to Extract 3 trails

    One replicat associated to Change synchro extract S
    When the 3 initial replicat was finished, i stopped them and i started the change syncro replicat.

    I am unable to find a similar scenario on the Net.

    Please can you advise?

    Best Regards,
    Fouzia.

  2. Pingback: GoldenGate Initial-Load Trail to Replicat – Part 2 | Rick Miners' Oracle Blog

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s