After release of goldengate 12c we hear two terms in GG replication integrated and classic replication .In short Integrated replication is applicable for the version 12c database and classic is for the older database versions like 11.2.0.4.I have configured a simple setup to test the replication.
Integrated replicat is tightly integrated to oracle database.Some of the features of oracle streams are also taken into consideration that's why we see the apply process in the integrated replicat which is coming from the streams.
Environment:
Container database:cdbfs
Pluggable database:pdb1
Replication between schema src to schema tgt on the same pluggable database pdb1
1) First we need to configure a golden-gate capture user and assign it the necessary privileges.This user has to be on the root or container database.
CREATE USER c##ggadm IDENTIFIED BY oracle container= ALL;
exec dbms_goldengate_auth.grant_admin_privileges('c##ggadm','capture', grant_optional_privilege=>'*')
2) Log in to SQL*Plus as a user with ALTER SYSTEM privilege.
Issue the following command to determine whether the database is in supplemental logging mode and in forced logging mode. If the result is YES for both queries, the database meets the Oracle GoldenGate requirement.
SELECT supplemental_log_data_min, force_logging FROM v$database;
If the result is NO for either or both properties, continue with these steps to enable them as needed:
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
SQL> ALTER DATABASE FORCE LOGGING;
Issue the following command to verify that these properties are now enabled.
SELECT supplemental_log_data_min, force_logging FROM v$database;
The output of the query must be YES for both properties.
Switch the log files.
SQL> ALTER SYSTEM SWITCH LOGFILE;
SQL> commit;
Integrated replicat is tightly integrated to oracle database.Some of the features of oracle streams are also taken into consideration that's why we see the apply process in the integrated replicat which is coming from the streams.
Environment:
Container database:cdbfs
Pluggable database:pdb1
Replication between schema src to schema tgt on the same pluggable database pdb1
1) First we need to configure a golden-gate capture user and assign it the necessary privileges.This user has to be on the root or container database.
CREATE USER c##ggadm IDENTIFIED BY oracle container= ALL;
grant dba to c##ggadm container=all;
exec dbms_goldengate_auth.grant_admin_privileges('c##ggadm','capture', grant_optional_privilege=>'*')
2) Log in to SQL*Plus as a user with ALTER SYSTEM privilege.
Issue the following command to determine whether the database is in supplemental logging mode and in forced logging mode. If the result is YES for both queries, the database meets the Oracle GoldenGate requirement.
SELECT supplemental_log_data_min, force_logging FROM v$database;
If the result is NO for either or both properties, continue with these steps to enable them as needed:
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
SQL> ALTER DATABASE FORCE LOGGING;
Issue the following command to verify that these properties are now enabled.
SELECT supplemental_log_data_min, force_logging FROM v$database;
The output of the query must be YES for both properties.
Switch the log files.
SQL> ALTER SYSTEM SWITCH LOGFILE;
3)Adjust the streams pool size as per the requirement.
alter system set
streams_pool_size=25m;
4)Create the extract process.One extract process can capture the changes from multiple pluggable databases so you can specify the multiple PDBs with the help of "sourcecatalog" parameter in the param file.I have specified pdb1.
GGSCI (localhost.localdomain) 4> add extract ext1,tranlog,begin now
EXTRACT added.
- Register the extract with the pluggable database.This is new in 12c and you will have to login first to the container database to do that
dblogin userid c##ggadm password oracle
GGSCI
(localhost.localdomain) 16> REGISTER EXTRACT ext1 database CONTAINER (pdb1)
Extract EXT1
successfully registered with database at SCN 2170346.
5)Add extract trail and modify the parameter file.
GGSCI
(localhost.localdomain) 7> add exttrail /home/oracle/gg/dirdat/ex,extract
ext1
EXTTRAIL added.
GGSCI
(localhost.localdomain) 9> edit param ext1
extract EXT1
USERID C##ggadm@cdb_fs, PASSWORD oracle
LOGALLSUPCOLS
UPDATERECORDFORMAT COMPACT
DDL INCLUDE MAPPED SOURCECATALOG pdb1
exttrail /home/oracle/gg/dirdat/ex
SOURCECATALOG pdb1
TABLE SRC.*;
6)Add the pump process and modify the parameter file
ADD EXTRACT EPUMP, EXTTRAILSOURCE /home/oracle/gg/dirdat/ex, begin now
ADD RMTTRAIL /home/oracle/gg/dirdat/rt, EXTRACT EPUMP
EXTRACT EPUMP
PASSTHRU
RMTHOST localhost,MGRPORT 7809
RMTTRAIL /home/oracle/gg/dirdat/rt
SOURCECATALOG pdb1
TABLE SRC.*;
7)Add the replicat process
add checkpointtable
pdb1.c##ggadm.ctable
dblogin userid c##ggadm password oracle
ADD REPLICAT REP1, EXTTRAIL /home/oracle/gg/dirdat/ex, CHECKPOINTTABLE c##ggadm.ctable
register replicat
rep1 database
edit param rep1
REPLICAT REP1
USERID C##ggadm@pdb1, PASSWORD oracle
ASSUMETARGETDEFS
DISCARDFILE /home/oracle/gg/dirrpt/rep1.dsc,APPEND
DDLOPTIONS REPORT
HANDLECOLLISIONS
APPLYNOOPUPDATES
DDL
SOURCECATALOG pdb1
MAP SRC.*, TARGET TGT.*;
USERID C##ggadm@pdb1, PASSWORD oracle
ASSUMETARGETDEFS
DISCARDFILE /home/oracle/gg/dirrpt/rep1.dsc,APPEND
DDLOPTIONS REPORT
HANDLECOLLISIONS
APPLYNOOPUPDATES
DDL
SOURCECATALOG pdb1
MAP SRC.*, TARGET TGT.*;
GGSCI (localhost.localdomain) 10> start *
GGSCI (localhost.localdomain) 11> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
EXTRACT RUNNING EPUMP 00:00:00 00:00:09
EXTRACT RUNNING EXT1 00:00:06 00:00:05
REPLICAT RUNNING REP1 00:00:00 00:00:09
8)Testing
I am creating a table t1 in the src schema and populating it with some values.
[oracle@localhost
gg]$ sqlplus src/oracle@pdb1
SQL*Plus: Release
12.1.0.1.0 Production on Tue Dec 10 09:10:57 2013
Copyright (c) 1982,
2013, Oracle. All rights reserved.
Last Successful
login time: Wed Dec 04 2013 15:26:51 -07:00
Connected to:
Oracle Database 12c
Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the
Partitioning, OLAP, Advanced Analytics and Real Application Testing options
SQL> create table
t1(c1 number);
Table created.
SQL> insert into
t1 values('&val');
Enter value for val:
2
old 1: insert into t1 values('&val')
new 1: insert into t1 values('2')
1 row created.
SQL> /
Enter value for val:
3
old 1: insert into t1 values('&val')
new 1: insert into t1 values('3')
1 row created.
SQL> /
Enter value for val:
4
old 1: insert into t1 values('&val')
new 1: insert into t1 values('4')
1 row created.
The same table gets populated into the tgt schema as shown below.
[oracle@localhost
~]$ sqlplus tgt/oracle@pdb1
SQL*Plus: Release
12.1.0.1.0 Production on Tue Dec 10 09:12:12 2013
Copyright (c) 1982,
2013, Oracle. All rights reserved.
Connected to:
Oracle Database 12c
Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the
Partitioning, OLAP, Advanced Analytics and Real Application Testing options
SQL> select
table_name from user_tables;
TABLE_NAME
--------------------------------------------------------------------------------
T1
SQL> select *
from t1;
C1
----------
2
3
4
No comments:
Post a Comment