Table in Replicat

You might also like

Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 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