0% found this document useful (0 votes)
20 views7 pages

Table in Replicat

This document provides steps to configure database replication between a source and target database using GoldenGate software. The steps include: 1) Configuring supplemental logging and forced logging on source and target databases. 2) Creating the GoldenGate administrator user and required objects on source and target. 3) Configuring GoldenGate processes including adding transaction data and starting the extract and replicat processes. 4) Importing the initial data dump from source to target and beginning replication after the specified checkpoint.

Uploaded by

Mukarram Khan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
20 views7 pages

Table in Replicat

This document provides steps to configure database replication between a source and target database using GoldenGate software. The steps include: 1) Configuring supplemental logging and forced logging on source and target databases. 2) Creating the GoldenGate administrator user and required objects on source and target. 3) Configuring GoldenGate processes including adding transaction data and starting the extract and replicat processes. 4) Importing the initial data dump from source to target and beginning replication after the specified checkpoint.

Uploaded by

Mukarram Khan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 7

bFor Guider Database Replication:

================================
Step 1:
Both source and target side Verify that supplemental logging and forced logging are
set properly.

ALTER DATABASE FORCE LOGGING;


ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
select SUPPLEMENTAL_LOG_DATA_MIN,FORCE_LOGGING from v$database;

Step 2:
======================================

This parameter must be changed on source and target databases:

ALTER SYSTEM SET ENABLE_GOLDENGATE_REPLICATION=TRUE SCOPE=BOTH;


show parameter ENABLE_GOLDENGATE_REPLICATION

Step 3:
======================================
Create the administrator and user/schema owners on both source and target database.

create tablespace goldengate datafile '+SAPT_GUIDER' size 2gb autoextend on;


create user gguser identified by gguser default tablespace goldengate quota
unlimited on goldengate;
grant create session,connect,resource,alter system to gguser;
EXEC DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE(grantee=>'gguser',
privilege_type=>'CAPTURE', grant_optional_privileges=>'*');

Step 4:
=======================================

Both source and target side go to Golden Gate Installed location (in our
scenario /u01/gghome) and then run the following Golden Gate inbuild scripts for
creating all necessary objects to support DDL replication.

@marker_setup
@ddl_setup
@role_setup.sql
GRANT GGS_GGSUSER_ROLE TO <loggedUser>
@ddl_enable.sql

Step 5:
========================================

SOURCE (GGSOURCE.DOYENSYS.COM):

Start GGSCI and login into database using dblogin command.


./ggsci
dblogin userid gguser, password gguser

Step 6:
=========================================

By default manager parameter has created while installing the goldengate software
we just add the user information to manager parameter file.
Port 7809
DynamicPortList 20100-20199
PurgeOldExtracts /gg_data/ogg11g/dirdat/pe*, UseCheckPoints, MinKeepHours 2
Autostart Replicat R*
AUTORESTART Replicat *, WaitMinutes 1, Retries 3

Step 7:
=========================================
Source side add trandata for particular table which we wants to replicate the data
to target database.
add trandata NGENDATA.LINE
add trandata NGENDATA.PORT
add trandata NGENDATA.CNTR_SIZE_GROUP
add trandata NGENDATA.CNTR_SIZE_SPECIFICATION
add trandata NGENDATA.CNTR_TYPE_GROUP
add trandata NGENDATA.HOLD_CONDITION_CONSEQUENCE_SET
add trandata NGENDATA.SP_HDL_CD_NULL_CONSEQUENCE
add trandata NGENDATA.EDI_OPERATION_LOG
add trandata NGENDATA.EDI_LOADING_MASK_PLAN_RUNNABLE
add trandata NGENDATA.CWP_PLANNED_MOVE
add trandata NGENDATA.CONTAINER
add trandata NGENDATA.VOYAGE
add trandata NGENDATA.SHIPMENT_INSTRUCTION
add trandata NGENDATA.VESSEL_PLANNING_ADMIN
add trandata NGENDATA.SHIPMENT
add trandata NGENDATA.VOYAGE_MEMBER
add trandata NGENDATA.CNTR_DAMAGE_DTL
add trandata NGENDATA.VESSEL_BUSINESS_ADMIN
add trandata NGENDATA.BARGE_JOB

Step 8:
=========================================
Create the primary Extract parameter file.

Extract exng
USERID gguser@ggsource, PASSWORD gguser
TranlogOptions IntegratedParams (max_sga_size 1024)
Exttrail /gg_data/gg_home/dirdat/ng
LOGALLSUPCOLS
--UPDATERECORDFORMAT COMPACT
Table NGENDATA.LINE;
Table NGENDATA.PORT;
Table NGENDATA.CNTR_SIZE_GROUP;
Table NGENDATA.CNTR_SIZE_SPECIFICATION;
Table NGENDATA.CNTR_TYPE_GROUP;
Table NGENDATA.HOLD_CONDITION_CONSEQUENCE_SET;
Table NGENDATA.SP_HDL_CD_NULL_CONSEQUENCE;
Table NGENDATA.EDI_OPERATION_LOG;
Table NGENDATA.EDI_LOADING_MASK_PLAN_RUNNABLE;
Table NGENDATA.CWP_PLANNED_MOVE;
Table NGENDATA.CONTAINER;
Table NGENDATA.VOYAGE;
Table NGENDATA.SHIPMENT_INSTRUCTION;
Table NGENDATA.VESSEL_PLANNING_ADMIN;
Table NGENDATA.SHIPMENT;
Table NGENDATA.VOYAGE_MEMBER;
Table NGENDATA.CNTR_DAMAGE_DTL;
Table NGENDATA.VESSEL_BUSINESS_ADMIN;
Table NGENDATA.BARGE_JOB;

Step 9:
=============================================
dblogin userid gguser,password gguser

register extract exng database

unregister extract exng database

Step 10:
===========================================

GGSCI (ggprod) 1> add extract exng1, integrated tranlog, begin now
EXTRACT added.

GGSCI (ggprod) 2> add exttrail /gg_data/gg_home/dirdat/ng, extract exng1, megabytes


100
EXTTRAIL added.

Step 11:
==================================================
Create the secondary Extract (data pump) parameter file.

edit params dpnd

Extract dpng
USERID gguser@ggsource, PASSWORD gguser
RMTHOST 172.29.222.71, MGRPORT 7809, TCPBUFSIZE 100000
RMTTRAIL /oracle/gg_home/dirdat/dg
PASSTHRU
Table NGENDATA.LINE;
Table NGENDATA.PORT;
Table NGENDATA.CNTR_SIZE_GROUP;
Table NGENDATA.CNTR_SIZE_SPECIFICATION;
Table NGENDATA.CNTR_TYPE_GROUP;
Table NGENDATA.HOLD_CONDITION_CONSEQUENCE_SET;
Table NGENDATA.SP_HDL_CD_NULL_CONSEQUENCE;
Table NGENDATA.EDI_OPERATION_LOG;
Table NGENDATA.EDI_LOADING_MASK_PLAN_RUNNABLE;
Table NGENDATA.CWP_PLANNED_MOVE;
Table NGENDATA.CONTAINER;
Table NGENDATA.VOYAGE;
Table NGENDATA.SHIPMENT_INSTRUCTION;
Table NGENDATA.VESSEL_PLANNING_ADMIN;
Table NGENDATA.SHIPMENT;
Table NGENDATA.VOYAGE_MEMBER;
Table NGENDATA.CNTR_DAMAGE_DTL;
Table NGENDATA.VESSEL_BUSINESS_ADMIN;
Table NGENDATA.BARGE_JOB;

Step 12:
====================================================
Create the data pump group and the remote Extract trail file and start the data
pump process.

GGSCI (ggprod) 10> add extract dpng1, exttrailsource /gg_data/gg_home/dirdat/ng


EXTRACT added.

add extract dpng2, exttrailsource /gg_data/gg_home/dirdat/ng

GGSCI (ggprod) 11> add rmttrail /oracle/gg_home/dirdat/nd, extract dpng1, megabytes


100
RMTTRAIL added.

add rmttrail /oracle/gg_home/dirdat/nd, extract dpng2, megabytes 100

Step 13:
=========================================================

start extract dpump1

=============================================Target Site
Steps=====================================

create or replace directory dpdir as '/oracle/app/oracle';


grant all on directory dpdir to ROC_NGENDATA,SYSTEM;
expdp system/Sapt4321
tables=NGENDATA.LINE,NGENDATA.PORT,NGENDATA.CNTR_SIZE_GROUP,NGENDATA.CNTR_SIZE_SPEC
IFICATION,NGENDATA.CNTR_TYPE_GROUP,NGENDATA.HOLD_CONDITION_CONSEQUENCE_SET,NGENDATA
.SP_HDL_CD_NULL_CONSEQUENCE,NGENDATA.EDI_OPERATION_LOG,NGENDATA.EDI_LOADING_MASK_PL
AN_RUNNABLE,NGENDATA.CWP_PLANNED_MOVE,NGENDATA.SHIPMENT_INSTRUCTIONS,NGENDATA.CONTA
INER,NGENDATA.VOYAGE,NGENDATA.SHIPMENT_INSTRUCTION,NGENDATA.VESSEL_PLANNING_ADMIN,N
GENDATA.SHIPMENT,NGENDATA.VOYAGE_MEMBER,NGENDATA.CNTR_DAMAGE_DTL,NGENDATA.VESSEL_BU
SINESS_ADMIN,NGENDATA.BARGE_JOB DIRECTORY=dpdir DUMPFILE=NGENDATA24821.dmp
LOGFILE=NGENDATA24821.log flashback_scn=66125004492

start replicat RPNG aftercsn 60924054442

impdp ROC_NGENDATA/ROC_NGENDATA
tables=NGENDATA.LINE,NGENDATA.PORT,NGENDATA.CNTR_SIZE_GROUP,NGENDATA.CNTR_SIZE_SPEC
IFICATION,NGENDATA.CNTR_TYPE_GROUP,NGENDATA.HOLD_CONDITION_CONSEQUENCE_SET,NGENDATA
.SP_HDL_CD_NULL_CONSEQUENCE,NGENDATA.EDI_OPERATION_LOG,NGENDATA.EDI_LOADING_MASK_PL
AN_RUNNABLE,NGENDATA.CWP_PLANNED_MOVE,NGENDATA.CONTAINER,NGENDATA.VOYAGE,NGENDATA.S
HIPMENT_INSTRUCTION,NGENDATA.VESSEL_PLANNING_ADMIN,NGENDATA.SHIPMENT,NGENDATA.VOYAG
E_MEMBER,NGENDATA.CNTR_DAMAGE_DTL,NGENDATA.VESSEL_BUSINESS_ADMIN,NGENDATA.BARGE_JOB
remap_schema=NGENDATA:ROC_NGENDATA
REMAP_TABLESPACE=CORE_OPERATION_D01:ROC_NGENDATA,CORE_OPERATION_X01:ROC_NGENDATA,DA
TA_INTERCHANGE_X01:ROC_NGENDATA,AUDIT_TRAIL_D01:ROC_NGENDATA,AUDIT_TRAIL_X01:ROC_NG
ENDATA,LOB01:ROC_NGENDATA,SHIPS_PLANNING_D01:ROC_NGENDATA,DATA_INTERCHANGE_D01:ROC_
NGENDATA,DISPLACEMENT_CTRL_D01:ROC_NGENDATA,DISPLACEMENT_CTRL_X01:ROC_NGENDATA,SHIP
S_PLANNING_X01:ROC_NGENDATA DIRECTORY=dpdir DUMPFILE=NGENDATA24821.dmp
LOGFILE=NGENDATA212.log

NGENDATA.LINE,NGENDATA.PORT,NGENDATA.CNTR_SIZE_GROUP,NGENDATA.CNTR_SIZE_SPECIFICATI
ON,NGENDATA.CNTR_TYPE_GROUP,NGENDATA.HOLD_CONDITION_CONSEQUENCE_SET,NGENDATA.SP_HDL
_CD_NULL_CONSEQUENCE,NGENDATA.EDI_OPERATION_LOG,NGENDATA.EDI_LOADING_MASK_PLAN_RUNN
ABLE,NGENDATA.CWP_PLANNED_MOVE,NGENDATA.SHIPMENT_INSTRUCTIONS,NGENDATA.CONTAINER,NG
ENDATA.VOYAGE,NGENDATA.SHIPMENT_INSTRUCTION,NGENDATA.VESSEL_PLANNING_ADMIN,NGENDATA
.SHIPMENT,NGENDATA.VOYAGE_MEMBER,NGENDATA.CNTR_DAMAGE_DTL,NGENDATA.VESSEL_BUSINESS_
ADMIN,NGENDATA.BARGE_JOB

create tablespace ROC_NGENDATA datafile '/data/ROCDDDB/ROC_NGENDATA_01.dbf' size 5g


autoextend on;
create user ROC_NGENDATA identified by ROC_NGENDATA default tablespace ROC_NGENDATA
quota unlimited on ROC_NGENDATA;
grant dba to ROC_NGENDATA;

CORE_OPERATION_D01:ROC_NGENDATA,CORE_OPERATION_X01:ROC_NGENDATA,DATA_INTERCHANGE_X0
1:ROC_NGENDATA,AUDIT_TRAIL_D01:ROC_NGENDATA,AUDIT_TRAIL_X01:ROC_NGENDATA,LOB01:ROC_
NGENDATA,SHIPS_PLANNING_D01:ROC_NGENDATA,DATA_INTERCHANGE_D01:ROC_NGENDATA,DISPLACE
MENT_CTRL_D01:ROC_NGENDATA,DISPLACEMENT_CTRL_X01:ROC_NGENDATA,SHIPS_PLANNING_X01:RO
C_NGENDATA

Step 1:
======================================================

To create a checkpoint Table in the target database.


dblogin userid gguser,password gguser
add checkpointtable gguser.chkptngen
info checkpointtable gguser.chkptngen

Step 2:
======================================================
Create the Replicat parameter file for target side.

edit params rpgd

Replicat rpng
DBOPTIONS INTEGRATEDPARAMS(parallelism 6)
AssumeTargetDefs
DiscardFile /oracle/gg_home/dirdat/discard2.txt, Purge
USERID gguser, PASSWORD gguser
HANDLECOLLISIONS
Map NGENDATA.LINE, target ROC_NGENDATA.LINE;
Map NGENDATA.PORT, target ROC_NGENDATA.PORT;
Map NGENDATA.CNTR_SIZE_GROUP, target ROC_NGENDATA.CNTR_SIZE_GROUP;
Map NGENDATA.CNTR_SIZE_SPECIFICATION, target ROC_NGENDATA.CNTR_SIZE_SPECIFICATION;
Map NGENDATA.CNTR_TYPE_GROUP, target ROC_NGENDATA.CNTR_TYPE_GROUP;
Map NGENDATA.HOLD_CONDITION_CONSEQUENCE_SET, target
ROC_NGENDATA.HOLD_CONDITION_CONSEQUENCE_SET;
Map NGENDATA.SP_HDL_CD_NULL_CONSEQUENCE, target
ROC_NGENDATA.SP_HDL_CD_NULL_CONSEQUENCE;
Map NGENDATA.EDI_OPERATION_LOG, target ROC_NGENDATA.EDI_OPERATION_LOG;
Map NGENDATA.EDI_LOADING_MASK_PLAN_RUNNABLE, target
ROC_NGENDATA.EDI_LOADING_MASK_PLAN_RUNNABLE;
Map NGENDATA.CWP_PLANNED_MOVE, target ROC_NGENDATA.CWP_PLANNED_MOVE;
Map NGENDATA.CONTAINER, target ROC_NGENDATA.CONTAINER;
Map NGENDATA.VOYAGE, target ROC_NGENDATA.VOYAGE;
Map NGENDATA.SHIPMENT_INSTRUCTION, target ROC_NGENDATA.SHIPMENT_INSTRUCTION;
Map NGENDATA.VESSEL_PLANNING_ADMIN, target ROC_NGENDATA.VESSEL_PLANNING_ADMIN;
Map NGENDATA.SHIPMENT, target ROC_NGENDATA.SHIPMENT;
Map NGENDATA.VOYAGE_MEMBER, target ROC_NGENDATA.VOYAGE_MEMBER;
Map NGENDATA.CNTR_DAMAGE_DTL, target ROC_NGENDATA.CNTR_DAMAGE_DTL;
Map NGENDATA.VESSEL_BUSINESS_ADMIN, target ROC_NGENDATA.VESSEL_BUSINESS_ADMIN;
Map NGENDATA.BARGE_JOB, target ROC_NGENDATA.BARGE_JOB;

dblogin userid gguser,password gguser


Step 3:
====================================================
Create and start the replicat process.

Add Replicat rpng, Integrated exttrail /oracle/gg_home/dirdat/nd, CHECKPOINTTABLE


gguser.chkptngen

start replicat rpng aftercsn 66125004492

errors:

==========
2021-01-06 15:17:49 WARNING OGG-02544 Unhandled error (ORA-26787: The row with
key ("CNTR_ID", "VOYAGE_ID") = (DUMM0792167, EPC2-CCBM-049) does not exist in t
able ROC_GDR.CONTAINER
ORA-01403: no data found) while processing the record at SEQNO 0, RBA 84170 in I
ntegrated mode. REPLICAT will retry in Direct mode.

2021-01-06 15:17:49 WARNING OGG-01004 Aborted grouped transaction on ROC_GDR.C


ONTAINER, Database error 1403 (No data found).

2021-01-06 15:17:49 WARNING OGG-01003 Repositioning to rba 84170 in seqno 0.

2021-01-06 15:17:49 WARNING OGG-01154 SQL error 1403 mapping GDR.CONTAINER to


ROC_GDR.CONTAINER No data found.

select count(*) from NGENDATA.LINE;


select count(*) from NGENDATA.PORT;
select count(*) from NGENDATA.CNTR_SIZE_GROUP;
select count(*) from NGENDATA.CNTR_SIZE_SPECIFICATION;
select count(*) from NGENDATA.CNTR_TYPE_GROUP;
select count(*) from NGENDATA.HOLD_CONDITION_CONSEQUENCE_SET;
select count(*) from NGENDATA.SP_HDL_CD_NULL_CONSEQUENCE;
select count(*) from NGENDATA.EDI_OPERATION_LOG;
select count(*) from NGENDATA.EDI_LOADING_MASK_PLAN_RUNNABLE;
select count(*) from NGENDATA.CWP_PLANNED_MOVE;
select count(*) from NGENDATA.SHIPMENT_INSTRUCTION;
select count(*) from NGENDATA.CONTAINER;
select count(*) from NGENDATA.VOYAGE;
select count(*) from NGENDATA.SHIPMENT_INSTRUCTION;
select count(*) from NGENDATA.VESSEL_PLANNING_ADMIN;
select count(*) from NGENDATA.SHIPMENT;
select count(*) from NGENDATA.VOYAGE_MEMBER;
select count(*) from NGENDATA.CNTR_DAMAGE_DTL;
select count(*) from NGENDATA.VESSEL_BUSINESS_ADMIN;
select count(*) from NGENDATA.BARGE_JOB;

select count(*) from LINE;


select count(*) from PORT;
select count(*) from CNTR_SIZE_GROUP;
select count(*) from CNTR_SIZE_SPECIFICATION;
select count(*) from CNTR_TYPE_GROUP;
select count(*) from HOLD_CONDITION_CONSEQUENCE_SET;
select count(*) from SP_HDL_CD_NULL_CONSEQUENCE;
select count(*) from EDI_OPERATION_LOG;
select count(*) from EDI_LOADING_MASK_PLAN_RUNNABLE;
select count(*) from CWP_PLANNED_MOVE;
select count(*) from SHIPMENT_INSTRUCTION;
select count(*) from CONTAINER;
select count(*) from VOYAGE;
select count(*) from SHIPMENT_INSTRUCTION;
select count(*) from VESSEL_PLANNING_ADMIN;
select count(*) from SHIPMENT;
select count(*) from VOYAGE_MEMBER;
select count(*) from CNTR_DAMAGE_DTL;
select count(*) from VESSEL_BUSINESS_ADMIN;
select count(*) from BARGE_JOB;

drop Table LINE;


drop Table PORT;
drop Table CNTR_SIZE_GROUP;
drop Table CNTR_SIZE_SPECIFICATION;
drop Table CNTR_TYPE_GROUP;
drop Table HOLD_CONDITION_CONSEQUENCE_SET;
drop Table SP_HDL_CD_NULL_CONSEQUENCE;
drop Table EDI_OPERATION_LOG;
drop Table EDI_LOADING_MASK_PLAN_RUNNABLE;
drop Table CWP_PLANNED_MOVE;
drop Table SHIPMENT_INSTRUCTION;
drop Table SHIPMENT;
drop Table VOYAGE_MEMBER;
drop Table CNTR_DAMAGE_DTL;
drop Table VESSEL_BUSINESS_ADMIN;
drop Table VOYAGE cascade constraints;
drop Table CONTAINER cascade constraints;
drop Table VESSEL_PLANNING_ADMIN cascade constraints;
drop table line cascade constraints;

You might also like