4. 4
Oracle GoldenGate 18c and Oracle GoldenGate Cloud Services Workshop Lab Exercise 16
GGSCI (rac01.localdomain) 3>
GGSCI (rac01.localdomain) 3> dblogin useridalias oggadmin_cdb1
Successfully logged into database CDB$ROOT.
GGSCI (rac01.localdomain as C##oggadmin@cdb1_2/CDB$ROOT) 4>
GGSCI (rac01.localdomain as C##oggadmin@cdb1_2/CDB$ROOT) 4> add extract ext1 integrated tranlog begin now
EXTRACT (Integrated) added.
GGSCI (rac01.localdomain as C##oggadmin@cdb1_2/CDB$ROOT) 5>
GGSCI (rac01.localdomain as C##oggadmin@cdb1_2/CDB$ROOT) 5> add exttrail ./dirdat/ogg1/lt extract ext1
EXTTRAIL added.
GGSCI (rac01.localdomain as C##oggadmin@cdb1_2/CDB$ROOT) 6>
GGSCI (rac01.localdomain as C##oggadmin@cdb1_2/CDB$ROOT) 6> add extract pump1 exttrailsource ./dirdat/ogg1/lt
EXTRACT added.
GGSCI (rac01.localdomain as C##oggadmin@cdb1_2/CDB$ROOT) 7>
GGSCI (rac01.localdomain as C##oggadmin@cdb1_2/CDB$ROOT) 7> add rmttrail ./dirdat/ogg2/rt extract pump1
5. 5
Oracle GoldenGate 18c and Oracle GoldenGate Cloud Services Workshop Lab Exercise 16
RMTTRAIL added.
GGSCI (rac01.localdomain as C##oggadmin@cdb1_2/CDB$ROOT) 8>
GGSCI (rac01.localdomain as C##oggadmin@cdb1_2/CDB$ROOT) 8> register extract ext1 database container (pdb1)
2019-02-10 16:35:09 INFO OGG-02003 Extract EXT1 successfully registered with database at SCN 9997578.
GGSCI (rac01.localdomain as C##oggadmin@cdb1_2/CDB$ROOT) 9>
GGSCI (rac01.localdomain as C##oggadmin@cdb1_2/CDB$ROOT) 9> add replicat rep1 exttrail ./dirdat/ogg1/rt checkpointtable
pdb1.c##oggadmin.chkptab
REPLICAT added.
GGSCI (rac01.localdomain as C##oggadmin@cdb1_2/CDB$ROOT) 10>
GGSCI (rac01.localdomain as C##oggadmin@cdb1_2/CDB$ROOT) 10> dblogin useridalias oggadmin_cdb2
Successfully logged into database CDB$ROOT.
GGSCI (rac01.localdomain as C##oggadmin@cdb2_1/CDB$ROOT) 11>
GGSCI (rac01.localdomain as C##oggadmin@cdb2_1/CDB$ROOT) 11> add extract ext2 integrated tranlog begin now
EXTRACT (Integrated) added.
6. 6
Oracle GoldenGate 18c and Oracle GoldenGate Cloud Services Workshop Lab Exercise 16
GGSCI (rac01.localdomain as C##oggadmin@cdb2_1/CDB$ROOT) 12>
GGSCI (rac01.localdomain as C##oggadmin@cdb2_1/CDB$ROOT) 12> add exttrail ./dirdat/ogg2/lt extract ext2
EXTTRAIL added.
GGSCI (rac01.localdomain as C##oggadmin@cdb2_1/CDB$ROOT) 13>
GGSCI (rac01.localdomain as C##oggadmin@cdb2_1/CDB$ROOT) 13> add extract pump2 exttrailsource ./dirdat/ogg2/lt
EXTRACT added.
GGSCI (rac01.localdomain as C##oggadmin@cdb2_1/CDB$ROOT) 14>
GGSCI (rac01.localdomain as C##oggadmin@cdb2_1/CDB$ROOT) 14> add rmttrail ./dirdat/ogg1/rt extract pump2
RMTTRAIL added.
GGSCI (rac01.localdomain as C##oggadmin@cdb2_1/CDB$ROOT) 15>
GGSCI (rac01.localdomain as C##oggadmin@cdb2_1/CDB$ROOT) 15> register extract ext2 database container (pdb2)
2019-02-10 16:49:39 INFO OGG-02003 Extract EXT2 successfully registered with database at SCN 9588068.
GGSCI (rac01.localdomain as C##oggadmin@cdb2_1/CDB$ROOT) 16>
7. 7
Oracle GoldenGate 18c and Oracle GoldenGate Cloud Services Workshop Lab Exercise 16
GGSCI (rac01.localdomain as C##oggadmin@cdb2_1/CDB$ROOT) 16> add replicat rep2 exttrail ./dirdat/ogg2/rt
REPLICAT added.
GGSCI (rac01.localdomain as C##oggadmin@cdb2_1/CDB$ROOT) 17>
GGSCI (rac01.localdomain as C##oggadmin@cdb2_1/CDB$ROOT) 17> start er *
Sending START request to MANAGER ...
EXTRACT EXT1 starting
Sending START request to MANAGER ...
EXTRACT EXT2 starting
Sending START request to MANAGER ...
EXTRACT PUMP1 starting
Sending START request to MANAGER ...
EXTRACT PUMP2 starting
Sending START request to MANAGER ...
REPLICAT REP1 starting
Sending START request to MANAGER ...
REPLICAT REP2 starting
8. 8
Oracle GoldenGate 18c and Oracle GoldenGate Cloud Services Workshop Lab Exercise 16
GGSCI (rac01.localdomain as C##oggadmin@cdb2_1/CDB$ROOT) 18>
GGSCI (rac01.localdomain as C##oggadmin@cdb2_1/CDB$ROOT) 18> shell sleep 30
GGSCI (rac01.localdomain as C##oggadmin@cdb2_1/CDB$ROOT) 19>
GGSCI (rac01.localdomain as C##oggadmin@cdb2_1/CDB$ROOT) 19> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
EXTRACT STARTING EXT1 00:00:00 00:28:49
EXTRACT STARTING EXT2 00:00:00 00:15:05
EXTRACT STARTING PUMP1 00:00:00 00:28:41
EXTRACT STARTING PUMP2 00:00:00 00:15:00
REPLICAT STARTING REP1 00:00:00 00:15:22
REPLICAT STARTING REP2 00:00:00 00:00:51
GGSCI (rac01.localdomain as C##oggadmin@cdb2_1/CDB$ROOT) 20> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
EXTRACT RUNNING EXT1 00:00:00 00:38:33
EXTRACT RUNNING EXT2 00:00:00 00:24:48
9. 9
Oracle GoldenGate 18c and Oracle GoldenGate Cloud Services Workshop Lab Exercise 16
EXTRACT RUNNING PUMP1 00:00:00 00:00:05
EXTRACT RUNNING PUMP2 00:00:00 00:00:07
REPLICAT RUNNING REP1 00:00:00 00:00:04
REPLICAT RUNNING REP2 00:00:00 00:00:03
Connect as the DEMO user to PDB1
Issue INSERT statement on MYOBJECTS and COMMIT
Verify via STATS EXT1 LATEST and STATS PUMP1 LATEST command that changes have been extracted and transmitted
Verify via STATS REP2 LATEST command that changes have been replicated on PDB2
Connect as the DEMO user to PDB2
Issue INSERT statement on MYOBJECTS and COMMIT
Verify via STATS EXT2 LATEST and STATS PUMP2 LATEST command that changes have been extracted and transmitted
Verify via STATS REP1 LATEST command that changes have been replicated on PDB1
Create the TEST_CDR table in the DEMO schema in both PDB1 as well as PDB2 databases.
[oracle@rac01 ~]$ sqlplus demo/oracle@pdb1
SQL> create table demo.test_cdr
11. 11
Oracle GoldenGate 18c and Oracle GoldenGate Cloud Services Workshop Lab Exercise 16
GGSCI (rac01.localdomain) 9> dblogin useridalias oggadmin_pdb2
Successfully logged into database PDB2.
GGSCI (rac01.localdomain as c##oggadmin@cdb2_1/PDB2) 10> info trandata demo.test_cdr
2019-02-08 14:50:20 INFO OGG-10471 ***** Oracle Goldengate support information on table DEMO.TEST_CDR *****
Oracle Goldengate support native capture on table DEMO.TEST_CDR.
Oracle Goldengate marked following column as key columns on table DEMO.TEST_CDR: PROD_ID.
Logging of supplemental redo log data is disabled for table PDB2.DEMO.TEST_CDR.
GGSCI (rac01.localdomain as c##oggadmin@cdb2_1/PDB2) 11> add trandata demo.test_cdr
2019-02-08 14:51:54 INFO OGG-15132 Logging of supplemental redo data enabled for table PDB2.DEMO.TEST_CDR.
2019-02-08 14:51:54 INFO OGG-15133 TRANDATA for scheduling columns has been added on table PDB2.DEMO.TEST_CDR.
2019-02-08 14:51:56 INFO OGG-15135 TRANDATA for instantiation CSN has been added on table PDB2.DEMO.TEST_CDR.
2019-02-08 14:51:58 INFO OGG-10471 ***** Oracle Goldengate support information on table DEMO.TEST_CDR *****
Oracle Goldengate support native capture on table DEMO.TEST_CDR.
Oracle Goldengate marked following column as key columns on table DEMO.TEST_CDR: PROD_ID.
GGSCI (rac01.localdomain as c##oggadmin@cdb2_1/PDB2) 12>
GoldenGate Environment (OGG1)
Add the Conflict Detection and Resolution parameters (ignore changes originating from PDB2 database).
12. 12
Oracle GoldenGate 18c and Oracle GoldenGate Cloud Services Workshop Lab Exercise 16
GGSCI (rac01.localdomain as c##oggadmin@cdb2_1/PDB2) 12> stop rep1
Sending STOP request to REPLICAT REP1 ...
Request processed.
GGSCI (rac01.localdomain as c##oggadmin@cdb2_1/PDB2) 13> edit params rep1
REPLICAT rep1
SETENV (ORACLE_HOME='/acfs_oh/product/12.2.0/dbhome_1')
USERIDALIAS oggadmin_pdb1
SOURCECATALOG pdb1
MAP pdb2.demo.test_cdr, TARGET pdb1.demo.test_cdr,&
COMPARECOLS ( ON UPDATE ALL, ON DELETE ALL ),&
RESOLVECONFLICT (INSERTROWEXISTS,(DEFAULT,DISCARD));
MAP PDB2.DEMO.*, TARGET PDB1.DEMO.*;
GGSCI (rac01.localdomain as c##oggadmin@cdb2_1/PDB2) 14> start rep1
Sending START request to MANAGER ...
REPLICAT REP1 starting
OGG2 GoldenGate Environment
13. 13
Oracle GoldenGate 18c and Oracle GoldenGate Cloud Services Workshop Lab Exercise 16
Add the Conflict Detection and Resolution parameters (apply changes originating from PDB1 database).
GGSCI (rac01.localdomain as oggadmin@orcl_1) 5> stop rep2
Sending STOP request to REPLICAT REP1 ...
Request processed.
GGSCI (rac01.localdomain as oggadmin@orcl_1) 6> edit params rep2
REPLICAT rep2
SETENV (ORACLE_HOME='/acfs_oh/product/12.2.0/dbhome_1')
USERIDALIAS oggadmin_pdb2
SOURCECATALOG pdb2
MAP pdb1.demo.test_cdr, TARGET pdb2.demo.test_cdr,&
COMPARECOLS (ON UPDATE ALL, ON DELETE ALL ),&
RESOLVECONFLICT (INSERTROWEXISTS,(DEFAULT,OVERWRITE));
MAP PDB1.DEMO.*, TARGET PDB2.DEMO.*;
GGSCI (rac01.localdomain as c##oggadmin@cdb2_1/PDB2) 19> start rep2
Sending START request to MANAGER ...
REPLICAT REP2 starting
Create the shell scripts to insert data into the TEST_CDR table in PDB1 and PDb2 databases
[oracle@rac01 ~]$ vi dml_PDB1.sh
14. 14
Oracle GoldenGate 18c and Oracle GoldenGate Cloud Services Workshop Lab Exercise 16
#!/bin/bash
export ORACLE_HOME=/acfs_oh/product/12.2.0/dbhome_1
export ORACLE_SID=cdb1_2
PATH=$PATH:$ORACLE_HOME/bin
sqlplus -s demo/oracle@PDB1 <<EOF
insert into test_cdr (prod_id,qty_in_stock,dml_site) values (1001,10,'PDB1');
commit;
EOF
[oracle@rac01 ~]$ vi dml_PDB2.sh
#!/bin/bash
export ORACLE_HOME=/acfs_oh/product/12.2.0/dbhome_1
export ORACLE_SID=cdb2_1
PATH=$PATH:$ORACLE_HOME/bin
sqlplus -s demo/oracle@PDB2 <<EOF
insert into test_cdr (prod_id,qty_in_stock,dml_site) values (1001,9,'PDB2');
commit;
EOF
[oracle@rac01 ~]$ chmod +x dml*
Schedule both the scripts via crontab to execute at the same time to create an INSERT Conflict.
[oracle@rac01 ~]$ crontab -e
15. 15
Oracle GoldenGate 18c and Oracle GoldenGate Cloud Services Workshop Lab Exercise 16
no crontab for oracle - using an empty one
crontab: installing new crontab
45 15 * * * /home/oracle/dml_PDB1.sh
45 15 * * * /home/oracle/dml_PDB2.sh
As soon as scripts are executed at the scheduled, note that the INSERT operation on both databases has been captured by the extract
processes running in each OGG environment.
GGSCI (rac01.localdomain) 4> stats ext1 latest table pdb1.demo.test_cdr
Sending STATS request to EXTRACT EXT1 ...
Start of Statistics at 2019-02-08 15:50:58.
Output to ./dirdat/ogg1/lt:
Extracting from PDB1.DEMO.TEST_CDR to PDB1.DEMO.TEST_CDR:
*** Latest statistics since 2019-02-08 12:53:19 ***
Total inserts 1.00
Total updates 0.00
Total deletes 0.00
Total discards 0.00
Total operations 1.00
End of Statistics.
16. 16
Oracle GoldenGate 18c and Oracle GoldenGate Cloud Services Workshop Lab Exercise 16
GGSCI (rac01.localdomain) 5> stats ext2 latest table pdb2.demo.test_cdr
Sending STATS request to EXTRACT EXT2 ...
Start of Statistics at 2019-02-08 15:51:18.
Output to ./dirdat/ogg2/lt:
Extracting from PDB2.DEMO.TEST_CDR to PDB2.DEMO.TEST_CDR:
*** Latest statistics since 2019-02-08 13:50:20 ***
Total inserts 1.00
Total updates 0.00
Total deletes 0.00
Total discards 0.00
Total operations 1.00
End of Statistics.
Check the data in the TEST_CDR table in both PDB1 and PDB2 databases. Note the data in the PDB2 database has been overwritten with the
change made in the PDB1 database (to resolve the INSERT conflict).
[oracle@rac01 goldengate]$ sqlplus demo/oracle@pdb1
SQL> select * from test_cdr;
17. 17
Oracle GoldenGate 18c and Oracle GoldenGate Cloud Services Workshop Lab Exercise 16
PROD_ID QTY_IN_STOCK DML_
---------- ------------ ----
1001 10 PDB1
SQL> conn demo/oracle@pdb2
Connected.
SQL> /
PROD_ID QTY_IN_STOCK DML_
---------- ------------ ----
1001 10 PDB1
SQL>
View Conflict Detection and Resolution (CDR) Statistics.
GGSCI (rac01.localdomain) 3> stats rep1 table pdb1.demo.test_cdr reportcdr
Sending STATS request to REPLICAT REP1 ...
Start of Statistics at 2019-02-08 16:07:41.
Replicating from PDB2.DEMO.TEST_CDR to PDB1.DEMO.TEST_CDR:
*** Total statistics since 2019-02-08 15:09:56 ***
Total inserts 1.00
Total updates 0.00
Total deletes 0.00
Total discards 0.00
18. 18
Oracle GoldenGate 18c and Oracle GoldenGate Cloud Services Workshop Lab Exercise 16
Total operations 1.00
Total CDR conflicts 1.00
CDR resolutions succeeded 1.00
CDR INSERTROWEXISTS conflicts 1.00
*** Daily statistics since 2019-02-08 15:09:56 ***
Total inserts 1.00
Total updates 0.00
Total deletes 0.00
Total discards 0.00
Total operations 1.00
Total CDR conflicts 1.00
CDR resolutions succeeded 1.00
CDR INSERTROWEXISTS conflicts 1.00
*** Hourly statistics since 2019-02-08 16:00:00 ***
No database operations have been performed.
*** Latest statistics since 2019-02-08 15:09:56 ***
Total inserts 1.00
Total updates 0.00
Total deletes 0.00
Total discards 0.00
Total operations 1.00
Total CDR conflicts 1.00
CDR resolutions succeeded 1.00
CDR INSERTROWEXISTS conflicts 1.00
End of Statistics.
19. 19
Oracle GoldenGate 18c and Oracle GoldenGate Cloud Services Workshop Lab Exercise 16
GGSCI (rac01.localdomain) 4>
View the data which was received from the OGG2 GoldenGate environment and was discarded.
[oracle@rac01 dirrpt]$ cd /acfs_oh/app/goldengate/dirrpt
[oracle@rac01 dirrpt]$ vi REP1.dsc
Oracle GoldenGate Delivery for Oracle process started, group REP1 discard file opened: 2019-02-08 15:05:04.651684
Current time: 2019-02-08 15:49:48
Operation: 5 Error: 1
Operation failed at seqno 4 rba 1174756
Discarding record on CDR DISCARD resolution
Aborted insert from PDB2.DEMO.TEST_CDR to PDB1.DEMO.TEST_CDR (target format) SCN:1246018950.7.3.1359...
*
PROD_ID = 1001
000000: 31 30 30 31 |1001 |
QTY_IN_STOCK = 9
000000: 39 |9 |
DML_SITE = PDB2
000000: 50 44 42 32 |PDB2 |
*