Setup Golden Gate replicate on oracle DB 19c (which already has TDE & Database Vault enabled) with source db version of 12.2
Replicate to : 19.3.0
Direction: Uni (from source to target)
Assumption:
1.Extract is already running
2.Instantiation is completed
3.A cold backup of the db as needed
4.droping the ggadmin user & GG_DATA tablespace from source (in case we used rman to restore the source db)
5.drop SUPPLEMENTAL log in target (since it is a unidirectional replication and application will point to it at sometime)
22:08:38 SQL> select name,open_mode,log_mode,force_logging,SUPPLEMENTAL_LOG_DATA_MIN,CURRENT_SCN from v$database;
NAME ,OPEN_MODE ,LOG_MODE ,FORCE_LOGGING ,SUPPLEME,CURRENT_SCN
---------,--------------------,------------,---------------------------------------,--------,-----------
GGTGT04T ,READ WRITE ,ARCHIVELOG ,YES ,NO , 1028106
Elapsed: 00:00:00.00
6.reset ENABLE_GOLDENGATE_REPLICATION /*+ wrong - we need this parameter - so no reset */
NAME ,TYPE ,VALUE
------------------------------------,-----------,------------------------------
enable_goldengate_replication ,boolean ,FALSE
7.If you have DataGuard, leave force_logging asis
Steps:
2. Add credential for GG extract using cURL or admin client web UI (BUI)
3. Setup the GG replicat using admin client
4. Start the GG replicat
Reference url: oracle document
1. Prepare the target db for replicat:
From the doc:
CREATE USER ggadmin IDENTIFIED BY PASSWORD CONTAINER=CURRENT; -- standalone
CREATE USER ggadmin IDENTIFIED BY PASSWORD
GRANT ALTER SYSTEM TO ggadmin CONTAINER=CURRENT;
GRANT CREATE SESSION TO ggadmin CONTAINER=CURRENT;
GRANT ALTER ANY TABLE TO ggadmin CONTAINER=CURRENT;
GRANT RESOURCE TO ggadmin CONTAINER=CURRENT;
GRANT DBA TO ggadmin CONTAINER=CURRENT;
GRANT DV_GOLDENGATE_ADMIN, DV_GOLDENGATE_REDO_ACCESS TO GGADMIN CONTAINER=CURRENT;
EXEC DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE('ggadmin');
1.a) actual setup commands
CREATE USER ggadmin_tgt IDENTIFIED BY "ggadmin_tgt" DEFAULT TABLESPACE GG_DATA_TGT TEMPORARY TABLESPACE TEMP;
grant connect to ggadmin_tgt;
alter user ggadmin_tgt quota unlimited on GG_DATA_TGT;
GRANT DV_GOLDENGATE_ADMIN, DV_GOLDENGATE_REDO_ACCESS TO ggadmin_tgt;
GRANT ALTER SYSTEM TO ggadmin_tgt;
GRANT CREATE SESSION TO ggadmin_tgt;
GRANT ALTER ANY TABLE TO ggadmin_tgt;
GRANT RESOURCE TO ggadmin_tgt;
GRANT DBA TO ggadmin_tgt;
EXEC DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE('ggadmin_tgt');
Actual output:
NAME OPEN_MODE
--------- --------------------
GGTGT04T MOUNTED
SQL> alter database open;
Database altered.
SQL> select name,open_mode from v$database;
NAME OPEN_MODE
--------- --------------------
GGTGT04T READ WRITE
SQL> CREATE TABLESPACE GG_DATA_TGT DATAFILE '/oradata/GGTGT04T/gg_data_tgt_01.dbf' SIZE 100M AUTOEXTEND ON NEXT 100M;
Tablespace created.
Connected.
SQL> CREATE USER ggadmin_tgt IDENTIFIED BY "ggadmin_tgt" DEFAULT TABLESPACE GG_DATA_TGT TEMPORARY TABLESPACE TEMP;
User created.
SQL> grant connect to ggadmin_tgt;
Grant succeeded.
SQL> alter user ggadmin_tgt quota unlimited on GG_DATA_TGT;
User altered.
SQL> GRANT DV_GOLDENGATE_ADMIN, DV_GOLDENGATE_REDO_ACCESS TO ggadmin_tgt;
Grant succeeded.
SQL> conn / as sysdba
Connected.
SQL> GRANT ALTER SYSTEM TO ggadmin_tgt;
Grant succeeded.
SQL> GRANT CREATE SESSION TO ggadmin_tgt;
Grant succeeded.
SQL> GRANT ALTER ANY TABLE TO ggadmin_tgt;
Grant succeeded.
SQL> GRANT RESOURCE TO ggadmin_tgt;
Grant succeeded.
SQL> GRANT DBA TO ggadmin_tgt;
Grant succeeded.
SQL> EXEC DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE('ggadmin_tgt');
PL/SQL procedure successfully completed.
SQL>
1.b) DB Setup verify
set pages 3000
set colsep ,
col username for a15
col account_status for a15
set time on
set timing on
alter session set nls_date_format='DD/MON/YYYY HH24:MI:SS';
select name,open_mode,log_mode,force_logging,SUPPLEMENTAL_LOG_DATA_MIN,CURRENT_SCN from v$database;
select instance_name,status from v$instance;
show parameter ENABLE_GOLDENGATE_REPLICATION;
select username,account_status,DEFAULT_TABLESPACE,TEMPORARY_TABLESPACE,created from dba_users where username='GGADMIN_TGT';
select tablespace_name,sum(bytes)/1024/1024,sum(maxbytes)/1024/1024 from dba_data_files where tablespace_name='GG_DATA_TGT' group by tablespace_name;
Actual output:
set pages 3000
set colsep ,
col username for a15
col account_status for a15
set time on
set timing on
Session altered.
Elapsed: 00:00:00.00
NAME ,OPEN_MODE ,LOG_MODE ,FORCE_LOGGING ,SUPPLEME,CURRENT_SCN
---------,--------------------,------------,---------------------------------------,--------,-----------
GGTGT04T ,READ WRITE ,ARCHIVELOG ,YES ,NO , 1032053
Elapsed: 00:00:00.00
----------------,------------
GGTGT04T ,OPEN
Elapsed: 00:00:00.00
NAME ,TYPE ,VALUE
------------------------------------,-----------,------------------------------
enable_goldengate_replication ,boolean ,FALSE
USERNAME ,ACCOUNT_STATUS ,DEFAULT_TABLESPACE ,TEMPORARY_TABLESPACE ,CREATED
---------------,---------------,------------------------------,------------------------------,--------------------
GGADMIN_TGT ,OPEN ,GG_DATA_TGT ,TEMP ,26/AUG/2023 22:29:18
Elapsed: 00:00:00.02
TABLESPACE_NAME ,SUM(BYTES)/1024/1024,SUM(MAXBYTES)/1024/1024
------------------------------,--------------------,-----------------------
GG_DATA_TGT , 100, 32767.9844
Elapsed: 00:00:00.01
22:31:32 SQL>
1.c) create a guarnteed restore point
create restore point PRE_GGREPLICAT guarantee flashback database;
If at all we need to replicate the steps, we can resume from here.
2. Add credential for GG extract using cURL or admin client web UI (BUI)
Verify in adminclient:
INFO CREDENTIALSTORE
Actual output:
OGG (not connected) 1> connect http://127.0.0.1:9011 deployment oggdep01 user ggsca password ggsca
Default domain: OracleGoldenGate
Alias: ggsrc04t
Userid: ggadmin@192.168.194.10:1521/ggsrc04t
Userid: GGADMIN@192.168.194.10:1521/ggsrc01t
Userid: ggadmin@127.0.0.1:1521/OPDB1
Userid: c##ggadmin@127.0.0.1:1521/ORA19C
Userid: ggadmin@192.168.194.6:1521/DBCASLNT
Userid: ggadmin@192.168.194.10:1521/ggsrc03t
Userid: ggadmin_tgt@192.168.194.11:1521/ggtgt04t
OGG (http://127.0.0.1:9011 oggdep01) 3>
3. Setup the GG replicat using admin client
export PATH=$PATH:$OGG_HOME/bin
adminclient
connect http://127.0.0.1:9011 deployment oggdep01 user ggsca password ggsca
Actual output:
Successfully logged into database.
OGG (http://127.0.0.1:9011 oggdep01 as ggtgt04t@GGTGT04T) 4> ADD HEARTBEATTABLE
2023-08-26T21:39:28Z INFO OGG-14101 Successfully added heartbeat table.
OGG (http://127.0.0.1:9011 oggdep01 as ggtgt04t@GGTGT04T) 6>
22:40:22 SQL> select owner,object_name,objecT_type,created from dba_objects where owner='GGADMIN_TGT' order by created;
OWNER ,OBJECT_NAME ,OBJECT_TYPE ,CREATED
---------------,--------------------,--------------------,--------------------
GGADMIN_TGT ,GG_HEARTBEAT_SEED ,TABLE ,26/AUG/2023 22:39:25
GGADMIN_TGT ,GG_HEARTBEAT ,TABLE ,26/AUG/2023 22:39:25
GGADMIN_TGT ,GG_HEARTBEAT_HISTORY,TABLE ,26/AUG/2023 22:39:25
GGADMIN_TGT ,GG_LAG ,VIEW ,26/AUG/2023 22:39:25
GGADMIN_TGT ,GG_LAG_HISTORY ,VIEW ,26/AUG/2023 22:39:25
GGADMIN_TGT ,GG_UPDATE_HB_TAB ,PROCEDURE ,26/AUG/2023 22:39:27
GGADMIN_TGT ,GG_PURGE_HB_TAB ,PROCEDURE ,26/AUG/2023 22:39:27
GGADMIN_TGT ,GG_UPDATE_HEARTBEATS,JOB ,26/AUG/2023 22:39:28
GGADMIN_TGT ,GG_PURGE_HEARTBEATS ,JOB ,26/AUG/2023 22:39:28
GGADMIN_TGT ,GGS_CHECKPOINT ,TABLE ,26/AUG/2023 22:39:36
GGADMIN_TGT ,SYS_C006989 ,INDEX ,26/AUG/2023 22:39:36
GGADMIN_TGT ,GGS_CHECKPOINT_LOX ,TABLE ,26/AUG/2023 22:39:36
GGADMIN_TGT ,SYS_C006995 ,INDEX ,26/AUG/2023 22:39:36
13 rows selected.
Elapsed: 00:00:00.04
22:40:37 SQL>
3.b) Add replicat process:
Param file: /oggdata/oggdep01/etc/conf/ogg/RPT2.prm
REPLICAT rpt2
USERIDALIAS ggtgt04t DOMAIN OracleGoldenGate
--DDL EXCLUDE ALL
DDLERROR default discard
REPERROR (default,discard)
DDLOPTIONS REPORT
MAP encvault_test.*, target encvault_test.*, FILTER ( @GETENV('TRANSACTION', 'CSN') > 459732);
info replicat rpt2
Actual output:
OGG (http://127.0.0.1:9011 oggdep01 as ggtgt04t@GGTGT04T) 6> ADD REPLICAT rpt2, PARALLEL, EXTTRAIL src/r3, checkpointtable ggadmin_tgt.ggs_checkpoint
Replicat RPT2 Initialized 2023-08-26 22:41 Status STOPPED
Parallel
Checkpoint Lag 00:00:00 (updated 00:00:07 ago)
Log Read Checkpoint File src/r3000000000
First Record RBA 0
Encryption Profile LocalWallet
Replicat RPT2 Initialized 2023-08-26 22:41 Status STOPPED
Parallel
Checkpoint Lag 00:00:00 (updated 00:00:12 ago)
Log Read Checkpoint File src/r3000000000
First Record RBA 0
Encryption Profile LocalWallet
Current Log BSN value: (no data)
Low Watermark CSN value: (no data)
High Watermark CSN value: (no data)
Current directory /
Report file /oggdata/oggdep01/var/lib/report/RPT2.rpt (does not yet exist)
Parameter file /oggdata/oggdep01/etc/conf/ogg/rpt2.prm (does not yet exist)
Checkpoint file /oggdata/oggdep01/var/lib/checkpt/RPT2.cpr
Checkpoint table ggadmin_tgt.ggs_checkpoint
Process file /oggdata/oggdep01/var/run/RPT2.pcr
Error log /oggdata/oggdep01/var/log/ggserr.log
OGG (http://127.0.0.1:9011 oggdep01 as ggtgt04t@GGTGT04T) 9>
REPLICAT rpt2
USERIDALIAS ggtgt04t DOMAIN OracleGoldenGate
--DDL EXCLUDE ALL
DDLERROR default discard
REPERROR (default,discard)
DDLOPTIONS REPORT
MAP encvault_test.*, target encvault_test.*, FILTER ( @GETENV('TRANSACTION', 'CSN') > 459732);
[oracle@vcentos79-oracle-sa1 ~]$
4. Start the GG replicat
start replicat rpt2 < we have mentioned the csn number to start the replication in param file.
info replicat rpt2
status replicat rpt2
No comments:
Post a Comment