ADD NEW TABLE TO AN EXISTING EXTRACT, PUMP AND REPLICAT
ADD NEW TABLE TO AN EXISTING EXTRACT, PUMP AND REPLICAT
oracle replicationintermediate
by OracleDba
14 views
ADD NEW TABLE TO AN EXISTING EXTRACT, PUMP AND REPLICAT
1234567891011121314151617181920212223242526272829
To resync one or more tables/schemas on different SCN's using a single or minimum number of replicats without using handlecollisions.
This can be done with Oracle goldenGate (OGG) 11.1.1.0.x or higher.
We are going to add new table SOURCE.DASANI to existing extract,pump and replicat
Environment
Source
Server Name : RAC1
OS Version : Red Hat Enterprise Linux Server release 6.5
RAC : No
Database Version : 12.2.0.1.0
GoldenGate Version : Version 12.3.0.1.4 for oracle db 12.2.0.1.0
Database Name : PSG01DAS
Golden Gate User : OGGADMIN
Golden Gate Extract : ERAJ
Golden Gate Pump : PRAJ
Source Schema : SOURCE
Oracle Home : /u01/app/oracle/product/12.2.0/dbhome_1
GoldenGate Home : /u01/app/oracle/product/12.3/ogg
Target
Server Name : RAC1
OS Version : Red Hat Enterprise Linux Server release 6.5
RAC : No
Database Version : 12.2.0.1.0
GoldenGate Version : Version 12.3.0.1.4 for oracle db 12.2.0.1.0
Database Name : USG01DAS
Golden Gate User : OGGADMIN
Golden Gate Replicat : RRAJ
Target Schema : TARGET
Oracle Home : /u01/app/oracle/product/12.2.0/dbhome_1
GoldenGate Home : /u01/app/oracle/product/12.3/ogg1234567891011121314151617181920212223242526272829303132333435
GGSCI (rac1.rajasekhar.com) 1>
dblogin UserIdAlias OGGADMIN
Successfully logged into database.
GGSCI (rac1.rajasekhar.com as OGGADMIN@PSG01DAS) 2>
SQL>
SELECT COUNT (*) FROM SOURCE.DASANI;
COUNT(*)
----------
15 <-----
SQL>
ALTER TABLE SOURCE.DASANI ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
Table altered.
SQL>
GGSCI (rac1.rajasekhar.com as OGGADMIN@PSG01DAS) 2>
ADD TRANDATA SOURCE.DASANI
2019-04-24 00:39:01 WARNING OGG-06439 No unique key is defined for table DASANI. All viable columns will be used to represent the key, but may not guarantee uniqueness. KEYCOLS may be used to define the key.
2019-04-24 00:39:01 INFO OGG-15130 No key found for table SOURCE.DASANI. All viable columns will be logged.
2019-04-24 00:39:03 INFO OGG-15132 Logging of supplemental redo data enabled for table SOURCE.DASANI.
2019-04-24 00:39:03 INFO OGG-15133 TRANDATA for scheduling columns has been added on table SOURCE.DASANI.
2019-04-24 00:39:03 INFO OGG-15135 TRANDATA for instantiation CSN has been added on table SOURCE.DASANI.
2019-04-24 00:39:04 INFO OGG-10471 ***** Oracle Goldengate support information on table SOURCE.DASANI *****
Oracle Goldengate support native capture on table SOURCE.DASANI.
Oracle Goldengate marked following column as key columns on table SOURCE.DASANI: NAME, ROLE
No unique key is defined for table SOURCE.DASANI.
GGSCI (rac1.rajasekhar.com as OGGADMIN@PSG01DAS) 3>12345678910111213141516171819
GGSCI (rac1.rajasekhar.com as OGGADMIN@PSG01DAS) 4>
edit params eraj
-- Add below
TABLE SOURCE.DASANI;
GGSCI (rac1.rajasekhar.com as OGGADMIN@PSG01DAS) 5>
view params eraj
Extract ERAJ
SETENV (ORACLE_SID='PSG01DAS')
UserIdAlias OGGADMIN
TranlogOptions IntegratedParams (max_sga_size 256)
Exttrail ./dirdat/ea
LOGALLSUPCOLS
UPDATERECORDFORMAT COMPACT
TABLE SOURCE.EMP;
TABLE SOURCE.EMPLOYEE;
TABLE SOURCE.X;
TABLE SOURCE.X1;
TABLE SOURCE.DASANI; <---
GGSCI (rac1.rajasekhar.com as OGGADMIN@PSG01DAS) 6>12345678910111213141516171819202122232425262728293031
GGSCI (rac1.rajasekhar.com as OGGADMIN@PSG01DAS) 7>
edit params praj
-- Add below
TABLE SOURCE.DASANI;
GGSCI (rac1.rajasekhar.com as OGGADMIN@PSG01DAS) 8>
view params praj
Extract PRAJ
SETENV (ORACLE_SID='PSG01DAS')
UserIdAlias OGGADMIN
rmthost rac2, mgrport 7809
rmttrail ./dirdat/pa
TABLE SOURCE.EMP;
TABLE SOURCE.EMPLOYEE;
TABLE SOURCE.X;
TABLE SOURCE.X1;
TABLE SOURCE.DASANI; <----
GGSCI (rac1.rajasekhar.com as OGGADMIN@PSG01DAS) 9>
GGSCI (rac1.rajasekhar.com as OGGADMIN@PSG01DAS) 11>
stop eraj
Sending STOP request to EXTRACT ERAJ ...
Request processed.
GGSCI (rac1.rajasekhar.com as OGGADMIN@PSG01DAS) 12>
start eraj
Sending START request to MANAGER ...
EXTRACT ERAJ starting
GGSCI (rac1.rajasekhar.com as OGGADMIN@PSG01DAS) 13>123456789101112131415161718192021222324252627282930
GGSCI (rac1.rajasekhar.com as OGGADMIN@PSG01DAS) 13>
stop praj
Sending STOP request to EXTRACT PRAJ ...
Request processed.
GGSCI (rac1.rajasekhar.com as OGGADMIN@PSG01DAS) 14>
start praj
Sending START request to MANAGER ...
EXTRACT PRAJ starting
GGSCI (rac1.rajasekhar.com as OGGADMIN@PSG01DAS) 15>
GGSCI (rac1.rajasekhar.com as OGGADMIN@PSG01DAS) 15>
info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
EXTRACT
RUNNING
ERAJ
00:00:03 00:00:00
EXTRACT
RUNNING
PRAJ
00:00:00 00:00:10
GGSCI (rac1.rajasekhar.com as OGGADMIN@PSG01DAS) 16>123456
SQL>
select current_scn from v$database;
CURRENT_SCN
-----------
2298283 <----
SQL>1234567891011121314151617181920212223242526272829303132333435
SQL>
select * from dba_directories where DIRECTORY_NAME='DATA_PUMP_DIR';
OWNER DIRECTORY_NAME DIRECTORY_PATH ORIGIN_CON_ID
---------- ------------------------- ---------------------------------------- -------------
SYS
DATA_PUMP_DIR
/u01/app/oracle/admin/PSG01DAS/dpdump/ 0
SQL>
[oracle@rac1 ~]$
expdp \'/ as sysdba\' directory=data_pump_dir dumpfile=source_dasani.dmp logfile=source_dasani.log tables=source.dasani flashback_scn=
2298283
Export: Release 12.2.0.1.0 - Production on Wed Apr 24 00:52:11 2019
Copyright (c) 1982, 2017, Oracle and/or its affiliates. All rights reserved.
Connected to: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
FLASHBACK automatically enabled to preserve database integrity.
Starting "SYS"."SYS_EXPORT_TABLE_01": "/******** AS SYSDBA" directory=data_pump_dir dumpfile=source_dasani.dmp logfile=source_dasani.log tables=source.dasani flashback_scn=2298283
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
Processing object type TABLE_EXPORT/TABLE/STATISTICS/MARKER
Processing object type TABLE_EXPORT/TABLE/PROCACT_INSTANCE
Processing object type TABLE_EXPORT/TABLE/TABLE
Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
. . exported "SOURCE"."DASANI" 5.687 KB 15 rows
Master table "SYS"."SYS_EXPORT_TABLE_01" successfully loaded/unloaded
******************************************************************************
Dump file set for SYS.SYS_EXPORT_TABLE_01 is:
/u01/app/oracle/admin/PSG01DAS/dpdump/source_dasani.dmp
Job "SYS"."SYS_EXPORT_TABLE_01" successfully completed at Wed Apr 24 00:52:48 2019 elapsed 0 00:00:28
[oracle@rac1 ~]$12345
[oracle@rac1 ~]$
scp /u01/app/oracle/admin/PSG01DAS/dpdump/source_dasani.dmp oracle@rac2:/u01/app/oracle/admin/USG01DAS/dpdump/
oracle@rac2's password:
source_dasani.dmp 100% 200KB 200.0KB/s 00:00
[oracle@rac1 ~]$1234567891011121314151617181920212223242526272829303132333435
SQL> col OWNER for a10
SQL> col DIRECTORY_NAME for a25
SQL> col DIRECTORY_PATH for a40
SQL> set lines 180
SQL>
select * from dba_directories where DIRECTORY_NAME='DATA_PUMP_DIR';
OWNER DIRECTORY_NAME DIRECTORY_PATH ORIGIN_CON_ID
---------- ------------------------- ---------------------------------------- -------------
SYS
DATA_PUMP_DIR
/u01/app/oracle/admin/USG01DAS/dpdump/ 0
SQL>
[oracle@rac2 ~]$
impdp \'/ as sysdba\' directory=data_pump_dir dumpfile=source_dasani.dmp logfile=source_dasani_imp.log
remap_schema=source:target
transform=segment_attributes:n transform=oid:n
Import: Release 12.2.0.1.0 - Production on Wed Apr 24 00:58:28 2019
Copyright (c) 1982, 2017, Oracle and/or its affiliates. All rights reserved.
Connected to: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
Master table "SYS"."SYS_IMPORT_FULL_01" successfully loaded/unloaded
Starting "SYS"."SYS_IMPORT_FULL_01": "/******** AS SYSDBA" directory=data_pump_dir dumpfile=source_dasani.dmp logfile=source_dasani_imp.log remap_schema=source:target transform=segment_attributes:n transform=oid:n
Processing object type TABLE_EXPORT/TABLE/PROCACT_INSTANCE
Processing object type TABLE_EXPORT/TABLE/TABLE
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
. . imported "TARGET"."DASANI" 5.687 KB 15 rows
Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
Processing object type TABLE_EXPORT/TABLE/STATISTICS/MARKER
Job "SYS"."SYS_IMPORT_FULL_01" successfully completed at Wed Apr 24 00:58:54 2019 elapsed 0 00:00:23
[oracle@rac2 ~]$123456789101112131415161718192021222324252627282930313233343536373839
Note :
Please use single quotes since OGG v12 uses ANSI SQL parameter by default, if you use double quotes then you may receive this error.
You can use double quotes in pre OGG v12
2019-04-24T01:10:34.244+0800 ERROR OGG-00375 Oracle GoldenGate Delivery for Oracle, rraj.prm: Error in FILTER clause.
2019-04-24T01:10:39.386+0800 ERROR OGG-01668 Oracle GoldenGate Delivery for Oracle, rraj.prm: PROCESS ABENDING.
GGSCI (rac2.rajasekhar.com) 14>
edit params rraj
-- Add below line
Map SOURCE.DASANI, target TARGET.DASANI, FILTER ( @GETENV('TRANSACTION', 'CSN') > 2298283);
GGSCI (rac2.rajasekhar.com) 15>
view params rraj
Replicat RRAJ
SETENV(ORACLE_SID='USG01DAS')
UserIdAlias OGGADMIN
DBOPTIONS INTEGRATEDPARAMS(parallelism 6)
AssumeTargetDefs
DiscardFile ./dirrpt/rpdw.dsc, Purge
UserIdAlias OGGADMIN
Map SOURCE.EMP, target TARGET.EMP;
Map SOURCE.EMPLOYEE, target TARGET.EMPLOYEE;
Map SOURCE.X, target TARGET.X;
Map SOURCE.X1, target TARGET.X1;
Map SOURCE.DASANI, target TARGET.DASANI, FILTER ( @GETENV('TRANSACTION', 'CSN') > 2298283); <-----
GGSCI (rac2.rajasekhar.com) 16>
GGSCI (rac2.rajasekhar.com) 16>
stop rraj
Sending STOP request to REPLICAT RRAJ ...
Request processed.
GGSCI (rac2.rajasekhar.com) 17>
GGSCI (rac2.rajasekhar.com) 19>
start rraj
Sending START request to MANAGER ...
REPLICAT RRAJ starting
GGSCI (rac2.rajasekhar.com) 20>12345678910
GGSCI (rac2.rajasekhar.com) 20>
info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
REPLICAT RUNNING
RRAJ 00:00:00 00:00:11
GGSCI (rac2.rajasekhar.com) 21>123456789101112131415161718192021222324252627282930313233343536373839
SQL>
SELECT COUNT(*) FROM SOURCE.DASANI;
COUNT(*)
----------
15 <---
SQL>
SQL>
INSERT INTO SOURCE.DASANI VALUES ('CHITTI','MANAGER');
1 row created.
SQL>
INSERT INTO SOURCE.DASANI VALUES ('SRINIVAS','LEAD');
1 row created.
SQL>
commit;
Commit complete.
SQL>
SELECT COUNT(*) FROM SOURCE.DASANI;
COUNT(*)
----------
17 <-----
SQL>
SQL>
SELECT COUNT(*) FROM TARGET.DASANI;
COUNT(*)
----------
15
SQL>
SQL>
SELECT COUNT(*) FROM TARGET.DASANI;
COUNT(*)
----------
17 <----
SQL>
It's sync now, next step we need to FILTER PARAMETER from Relicat12345678910111213141516171819202122232425262728293031323334
GGSCI (rac2.rajasekhar.com) 31>
dblogin UserIdAlias OGGADMIN
Successfully logged into database.
GGSCI (rac2.rajasekhar.com as OGGADMIN@USG01DAS) 32>
lag rraj
Sending GETLAG request to REPLICAT RRAJ ...
Last record lag 246 seconds.
Low watermark lag: 1.
High watermark lag: 258.
Low watermark position: 2211928.
High watermark position: 2316576.
At EOF, no more records to process
GGSCI (rac2.rajasekhar.com as OGGADMIN@USG01DAS) 33>
edit params rraj
-- From
Map SOURCE.DASANI, target TARGET.DASANI, FILTER ( @GETENV('TRANSACTION', 'CSN') > 2298283);
-- To
Map SOURCE.DASANI, target TARGET.DASANI;
GGSCI (rac2.rajasekhar.com as OGGADMIN@USG01DAS) 34>
view params rraj
Replicat RRAJ
SETENV(ORACLE_SID='USG01DAS')
UserIdAlias OGGADMIN
DBOPTIONS INTEGRATEDPARAMS(parallelism 6)
AssumeTargetDefs
DiscardFile ./dirrpt/rpdw.dsc, Purge
UserIdAlias OGGADMIN
Map SOURCE.EMP, target TARGET.EMP;
Map SOURCE.EMPLOYEE, target TARGET.EMPLOYEE;
Map SOURCE.X, target TARGET.X;
Map SOURCE.X1, target TARGET.X1;
Map SOURCE.DASANI, target TARGET.DASANI; <-----
GGSCI (rac2.rajasekhar.com as OGGADMIN@USG01DAS) 35>123456789101112131415
GGSCI (rac2.rajasekhar.com as OGGADMIN@USG01DAS) 35>
stop rraj
Sending STOP request to REPLICAT RRAJ ...
Request processed.
GGSCI (rac2.rajasekhar.com as OGGADMIN@USG01DAS) 36>
GGSCI (rac2.rajasekhar.com as OGGADMIN@USG01DAS) 37>
start rraj
Sending START request to MANAGER ...
REPLICAT RRAJ starting
GGSCI (rac2.rajasekhar.com as OGGADMIN@USG01DAS) 38>1234567891011
GGSCI (rac2.rajasekhar.com as OGGADMIN@USG01DAS) 38>
info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
REPLICAT RUNNING
RRAJ
00:00:00 00:00:05
GGSCI (rac2.rajasekhar.com as OGGADMIN@USG01DAS) 39>1234567891011121314151617181920212223242526272829303132333435363738394041424344
SQL>
SELECT COUNT(*) FROM SOURCE.DASANI;
COUNT(*)
----------
17 <----
SQL>
INSERT INTO SOURCE.DASANI VALUES ('SOMU','DBA');
1 row created.
SQL>
INSERT INTO SOURCE.DASANI VALUES ('ZABI','DBA');
1 row created.
SQL>
INSERT INTO SOURCE.DASANI VALUES ('GIRI','BIGDATA');
1 row created.
SQL>
COMMIT
;
Commit complete.
SQL>
SQL>
SELECT COUNT(*) FROM SOURCE.DASANI;
COUNT(*)
----------
20 <-----
SQL>
SQL>
SELECT COUNT(*) FROM TARGET.DASANI;
COUNT(*)
----------
17
SQL>
SQL>
SELECT COUNT(*) FROM TARGET.DASANI;
COUNT(*)
----------
20 <------
SQL>Please to add comments
No comments yet. Be the first to comment!