The 12c new feature “identity columns” are not yet support with Goldengate 12.2 / 12c.

The failure to replicate the new “identity” type will not be logged – anywhere.  The issue is only identified by running GoldenGate Integrated Extract Healthcheck script, found in MOS article 1448324.1 – but that means you have to be pro-active.

So, if you want to replicate a table – bottom line at least for now – don’t use “identity” columns…

Instead do it the old fashion way with a sequence, a trigger and primary key as follows in this simple example:

Note: integrated capture and integrated replicat must be setup (param files shown later) to propagate DDL.

As the user HR:

CREATE TABLE dept (
ID NUMBER(10) NOT NULL,
DESCRIPTION VARCHAR2(50) NOT NULL);

ALTER TABLE dept ADD (
CONSTRAINT dept_pk1 PRIMARY KEY (ID));

CREATE SEQUENCE dept_seq START WITH 1;
Trigger definition:

CREATE OR REPLACE TRIGGER dept_bir
BEFORE INSERT ON dept
FOR EACH ROW

BEGIN
SELECT dept_seq.NEXTVAL
INTO :new.id
FROM dual;
END;
/

Goldengate param files used to propagate DDL version 12.2 – should work with some previous versions of GoldenGate – for you to vett.

# on the source side – with ./ggsci

edit params extract1

EXTRACT extract1
USERID ggadmin PASSWORD ggadmin
LOGALLSUPCOLS
UPDATERECORDFORMAT COMPACT
DDL INCLUDE MAPPED
EXTTRAIL /u01/app/oracle/product/12.2.0/gg122/dirdat/in
SEQUENCE hr.*;
TABLE hr.*;

edit params dpump

EXTRACT dpump
USERID ggadmin, PASSWORD ggadmin
RMTHOST o68-122db.localdomain, MGRPORT 7809
RMTTRAIL /u01/app/oracle/product/12.2.0/gg122/dirdat/rt
PASSTHRU
TABLE HR.*;

# on the target side

edit params rep1

REPLICAT rep1
ASSUMETARGETDEFS
USERID ggadmin, PASSWORD ggadmin
DISCARDFILE /u01/app/oracle/product/12.2.0/gg122/discards, PURGE
MAP HR.*, TARGET HR.*;

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *