Replicação bi-direcional com Pluggable Database (PDB) utilizando Oracle GoldenGate 12c

Por Yenugula Venkata RaviKumar Oracle ACE e David Siqueira Oracle ACE
Postado em Março 2016

Revisado por Marcelo Pivovar - Solution Architect

Introdução:

A funcionalidade e a metodologia do Oracle Golden Gate em um multitenant container database (cdb) funciona tanto para single instances, como instancias de baco de dados em cluster. As funções irão mudar quando você estiver trabalhando em processos de extração, processos de replicação em um pluggable database (pdb) dentro de ambientes em container database (cdb).
Em um multitenant, o container database irá ter domínio sobre os redo/archived logs, desta mesma forma o fluxo de redo será compartilhado por todos os pluggable databases (pdb) dentro do container database (cdb).
Alguns pontos cruciais para se ter em mente quando se lida com OGG e arquitetura 12c Multitenant.

  • Um processo de extração pode ser configurado para capturar alterações de múltiplos PDBs em um container Database (cdb).
  • Nós temos que usar um modo de captura integrada, onde um servidor de mineração de logs esta envolvido e isto somente está acessível através de um container (CDB$ROOT).
  • Temos que nos conectar com um usuário comum para anexarmos ao servidor de mineração de logs.
  • Um SOURCECATALOG será utilizado nos permitindo fazer uso de uma convenção de nomenclatura previamente do tipo Schema.Table.
  • O processo de Replicat somente poderá se conectar e ser aplicado à um pluggable database (pdb).

Este artigo explica como configurar o software Oracle GoldenGate (OGG) para realizar uma replicação bidirecional entre a Oracle Database 12c (banco de dados db1 com Pluggable (db1pdb)) e Oracle Database 12c (DB2) com banco de dados Pluggable (db2pdb). Para este exercício, os detalhes estão apresentados abaixo:


 Origem Container Database (db1)


 Destino Container Database (db2)

 1. Oracle Enterprise Linux 5.8 (x86-64)
 2. Oracle 12c R1 Database (12.1.0.1.0)         ORACLE_HOME=/u01/app/oracle/product/12.1.0/db_1
 3. Oracle GoldenGate 12c (12.1.2.0.0)
GOLDENGATE_HOME=/u01/app/ogg/12g
 4. Container Database Name: db1
 5. Schema Name: scott
 6. Hostname: ggnode1
 7. IPAddress: 192.168.56.105
 8. Pluggable Database: db1pdb
 9. Listener: 1521

 1. Oracle Enterprise Linux 5.8 (x86-64)
 2. Oracle 12c R1 Database (12.1.0.1.0)    ORACLE_HOME=/u01/app/oracle/product/12.1.0/db_1
 3. Oracle GoldenGate 12c (12.1.2.0.0)
GOLDENGATE_HOME=/u01/app/ogg/12g
 4. Container Database Name: db2
 5. Schema Name: scott
 6. Hostname: ggnode2
 7. IPAddress: 192.168.56.106
 8. Pluggable Database: db2pdb
 9. Listener: 1521


Arquitetura do Bi-Direcional entre pluggable databases em Container Database:

Oracle GoldenGate 12c - processos nas bases de dados de origem e destino.

Oracle GoldenGate Processos na Base de dados de Origem

Oracle GoldenGate Processos na Base de Dados
Destino

  • Base Directory: /u01/app/ogg/12g
  • Manager: Listening port 7809
  • Extract Process-1: ESCOTT
  • Extract Process-2: PSCOTT
  • Replicat Process: RS01
  • Base Directory: /u01/app/ogg/12g
  • Manager: Listening port 7810
  • Extract Process-1: ES01
  • Extract Prcoess-2: PS01
  • Replicat Process: RSCOTT


Série de passos para a Base de dados de Origem (db1):

  • Instalar o Oracle 12c R1 database software com o usuário ‘oracle’ no seguinte diretório

ORACLE_HOME=/u01/app/oracle/product/12.1.0/db_1

  • Instalar o Oracle GoldenGate 12c software com o usuário ‘oracle’ no seguinte diretório GOLDENGATE_HOME=/u01/app/ogg/12g
  • Configurando, criando subdiretórios para o Oracle GoldenGate 12c na base de dados de origem (db1)
  • Criar e configurar os processos de Gerência, Extração, replicação para o Bi-directional entre Oracle 12c database (db1pdb) e Oracle 12c database (db2pdb)
  • Criar um container database db1 com um pluggable database db1pdb com opções avançadas usando o DBCA com sample schemas.

  • Use o NETMGR para criar serviços de banco de dados no LISTENER para db1,db1pdb,db2 & db2pdb
  • Utilize as opções de criação do serviço de  NETMGR para db1, db1pdb, db2 & db2pdb

Instalando o Oracle GoldenGate 12c como ‘oracle’ no banco de dados de origem (db1)

Escolha a opção “Oracle GoldenGate for Oracle Database 12c (506.0 MB)”

Defina o caminho para o Oracle GoldenGate: /u01/app/ogg/12g

Instalação realizada com sucesso dos binários do Oracle GoldenGate 12c para o banco de dados Oracle 12c na origem (db1).

Configurando o Oracle GoldenGate 12c no banco de dados do container de origem (db1)

Execute o comando ggsci para logar na interface de linha de comando do GoldenGate (GGSCI)

[oracle@ggnode1 ~]$ source 12c.env
[oracle@ggnode1 ~]$ cd $GG
[oracle@ggnode1 12g]$ pwd
/u01/app/ogg/12g
 [oracle@ggnode1  12g]$ ./ggsci

Oracle GoldenGate Command Interpreter for  Oracle
Version 12.1.2.0.0 17185003  OGGCORE_12.1.2.0.0_PLATFORMS_130924.1316_FBO
Linux, x64, 64bit (optimized), Oracle 12c  on Sep 25 2013 02:33:54
Operating system character set identified  as UTF-8.

Copyright (C) 1995, 2013, Oracle and/or its  affiliates. All rights reserved.

O seguinte comando a seguir irá criar os subdiretórios requeridos para o ambiente Oracle GoldenGate

GGSCI (ggnode1.oracle.com) 2> CREATE SUBDIRS

Creating subdirectories under current directory /u01/app/ogg/12g

Parameter files                      /u01/app/ogg/12g/dirprm: created
Report files                         /u01/app/ogg/12g/dirrpt: created
Checkpoint files                     /u01/app/ogg/12g/dirchk: created
Process status files                 /u01/app/ogg/12g/dirpcs: created
SQL script files                     /u01/app/ogg/12g/dirsql: created
Database definitions files           /u01/app/ogg/12g/dirdef: created
Extract data files                   /u01/app/ogg/12g/dirdat: created
Temporary files                      /u01/app/ogg/12g/dirtmp: created
Credential store files               /u01/app/ogg/12g/dircrd: created
Masterkey wallet files               /u01/app/ogg/12g/dirwlt: created
Dump files                           /u01/app/ogg/12g/dirdmp: created
GGSCI (ggnode1.oracle.com) 2> exit

Conecte-se no banco de dados do container de origem (db1) como ‘sysdba’

  • Verifique se o banco de dados está em archivelog mode.
  • Crie os Tablespaces para GoldenGate
  • Crie o usuário para o GoldenGate ‘c##ogguser’
  • Conceda os privilégios para o usuário ‘c##ogguser’
  • Adicione os logs suplementares no banco de dados
  • Conecte-se no pluggable database (db1pdb) e conceda os privilégios para o usuário scott
[oracle@ggnode1 12g]$ sqlplus /nolog

SQL*Plus: Release 12.1.0.1.0 Production on  Tue Jun 9 14:18:27 2015
Copyright (c) 1982, 2013, Oracle.  All rights reserved.

SQL> connect sys/oracle@192.168.56.105:1521/db1 as sysdba
Connected.

SQL> CREATE TABLESPACE GOLDENGATE DATAFILE '/u01/app/oracle/oradata/db1/goldengate01.dbf' SIZE 100M AUTOEXTEND ON;
Tablespace created.

SQL> CREATE USER c##ogguser IDENTIFIED BY oracle container=all;
User created.

SQL> GRANT CONNECT TO c##ogguser  container=all;
Grant succeeded.

SQL> GRANT DBA TO c##ogguser container=all;
Grant succeeded.

SQL> GRANT UNLIMITED TABLESPACE TO  c##ogguser container=all;
Grant succeeded.

SQL> grant create session to c##ogguser;
Grant succeeded.

SQL> GRANT SELECT ANY DICTIONARY TO  c##ogguser container=all;
Grant succeeded.

SQL> grant create session to c##ogguser  container=all;
Grant succeeded.

SQL> grant alter session to c##ogguser  container=all;
Grant succeeded.

SQL> alter user c##ogguser default  tablespace users container=all;
User altered.

SQL> alter user c##ogguser quota unlimited  on users container=all;
User altered.

SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG  DATA;
Database altered.

SQL> ALTER SYSTEM SWITCH LOGFILE;
System altered.

SQL> ALTER DATABASE FORCE LOGGING;
Database altered.

SQL> ALTER SYSTEM SWITCH LOGFILE;
System altered.

SQL> SELECT SUPPLEMENTAL_LOG_DATA_MIN,  LOG_MODE,FORCE_LOGGING FROM v$database;

SUPPLEME  LOG_MODE      FORCE_LOGGING
--------  ------------  ---------------------------------------
YES       ARCHIVELOG    YES

Conceda os privilégios para o usuário ‘C##OGGUSER’ no container do banco de dados de origem

SQL> exec  dbms_goldengate_auth.grant_admin_privilege('C##OGGUSER',container=> 'all')
PL/SQL procedure successfully completed.

SQL> connect  sys/oracle@192.168.56.105:1521/db1pdb as sysdba
Connected.

SQL> alter user scott identified by  oracle account unlock;
User altered.

SQL> connect  scott/oracle@192.168.56.105:1521/db1pdb
Connected.
SQL> create table inventory (
prod_id number,
prod_category varchar2(20),
qty_in_stock number,
last_dml timestamp default systimestamp);
Table created.

SQL> alter table inventory add  constraint pk_inventory primary key (prod_id);
Table altered.

SQL> grant all on inventory to  c##ogguser;
Grant succeeded.

Conecte-se no Oracle GoldenGate 12c no banco de dados do container de origem (db1)

[oracle@ggnode1 ~]$ source 12c.env
[oracle@ggnode1 ~]$ cd $GG
[oracle@ggnode1 12g]$ pwd
/u01/app/ogg/12g

GGSCI (ggnode1.oracle.com) 4> dblogin userid  c##ogguser@db1pdb, password oracle
Successfully logged into database DB1PDB.

GGSCI (ggnode1.oracle.com) 5> ADD  SCHEMATRANDATA SCOTT ALLCOLS

2015-05-28 15:43:13  INFO     OGG-01788  SCHEMATRANDATA has been  added on schema SCOTT.
2015-05-28 15:43:13  INFO     OGG-01976  SCHEMATRANDATA for  scheduling columns has been added on schema SCOTT.
2015-05-28 15:43:13  INFO     OGG-01977  SCHEMATRANDATA for all  columns has been added on schema SCOTT.

GGSCI (ggnode1.oracle.com) 6> dblogin userid  c##ogguser@db1, password oracle
Successfully logged into database CDB$ROOT.

GGSCI (ggnode1.oracle.com) 8> register  extract escott database container (db1pdb)
Extract ESCOTT successfully registered with  database at SCN 1754059.

GGSCI (ggnode1.oracle.com) 9> ADD EXTRACT  escott INTEGRATED TRANLOG, BEGIN NOW
EXTRACT added.

GGSCI (ggnode1.oracle.com) 10> ADD EXTTRAIL  ./dirdat/lt EXTRACT escott
EXTTRAIL added.

GGSCI (ggnode1.oracle.com) 11> ADD EXTRACT  pscott EXTTRAILSOURCE ./dirdat/lt BEGIN NOW
EXTRACT added.

GGSCI (ggnode1.oracle.com) 12> ADD RMTTRAIL  ./dirdat/rt EXTRACT pscott
RMTTRAIL added.

GGSCI (ggnode1.oracle.com) 13> edit param  mgr
GGSCI  (ggnode1.oracle.com) 14> view param mgr
PORT  7809

Veja o uso do parâmetro de SOURCECATALOG no arquivo de parâmetros de extração..

SOURCECATALOG especifica um container padrão no Oracle multitenant container database para instruções subsequentes de TABELAS ou SEQUENCIAS. Permite o uso de um legado de duas partes de convenções de nomenclatura (schema.object) onde os nomes de três partes de outra forma seriam necessários para esses bancos de dados.

GGSCI  (ggnode1.oracle.com) 10> view param escott
EXTRACT escott
USERID C##OGGUSER@db1, PASSWORD oracle
LOGALLSUPCOLS
UPDATERECORDFORMAT COMPACT
EXTTRAIL ./dirdat/lt
SOURCECATALOG db1pdb
TABLE scott.*;

GGSCI (ggnode1.oracle.com) 11> view param  pscott

EXTRACT pscott
USERID C##OGGUSER@db1, PASSWORD oracle
RMTHOST ggnode2, MGRPORT 7810
RMTTRAIL ./dirdat/rt
SOURCECATALOG db1pdb
TABLE scott.*;

GGSCI (ggnode1.oracle.com) 9> info all

Program       Status           Group         Lag  at Chkpt      Time Since Chkpt
MANAGER       RUNNING
EXTRACT       STARTING         ESCOTT        00:00:00           00:26:21
EXTRACT       RUNNING          PSCOTT        00:00:00           00:00:03

GGSCI (ggnode1.oracle.com) 10> info all

Program        Status           Group        Lag  at Chkpt      Time Since Chkpt
MANAGER        RUNNING
EXTRACT        RUNNING          ESCOTT       00:13:01           00:00:00
EXTRACT        RUNNING          PSCOTT       00:00:00           00:00:03

Instalando o Oracle GoldenGate 12c com o usuário ‘oracle’ no banco de dados do container de destino (db2)

Série de passos para Base de dados de Destino (db2):

  • Instalar o Oracle 12c R1 database software como ‘oracle’ no seguinte diretório:
ORACLE_HOME=/u01/app/oracle/product/12.1.0/db_1

  • Instalar o Oracle GoldenGate 12c software como ‘oracle’ no seguinte diretório: GOLDENGATE_HOME=/u01/app/ogg/12g
  • Configurar, criar subdiretórios para o Oracle GoldenGate 12c no banco de dados de destino (db2)
  • Criar e configurar os processos de Gerência, Extração, Replicação para o Bi-directional entre Oracle 12c database (db1pdb) e Oracle 12c database (db2pdb)
  • Criar o container do banco de dados db2 com o pluggable database db2pdb com opções avançadas utilizando o DBCA com sample schemas.

  • Utilize o NETMGR para criar os serviços de banco de dados no LISTENER para db2, db2pdb, db1 & db1pdb.
  • Utilize as opções de criação do serviço de NETMGR para db2, db2pdb, db1 & db1pdb.

Escolha a opção “Oracle GoldenGate para Oracle Database 12c”

Escolha a localização do Software u01/app/ogg/12g

Instalação realizada com sucesso dos Binários do Oracle GoldenGate 12c para o banco de dados Oracle 12c no container do banco de dados de destino (db2).

[oracle@ggnode2 ~]$ source 12c.env
[oracle@ggnode2 ~]$ cd $GG
[oracle@ggnode2 12g]$ pwd
/u01/app/ogg/12g

Execute o comando ggsci para logar na interface de linha de comando do  GoldenGate (GGSCI)

[oracle@ggnode2 12g]$ ./ggsci                                                                                                                                                 

Oracle GoldenGate Command Interpreter for  Oracle
Version 12.1.2.0.0 17185003  OGGCORE_12.1.2.0.0_PLATFORMS_130924.1316_FBO
Linux, x64, 64bit (optimized), Oracle 12c  on Sep 25 2013 02:33:54
Operating system character set identified  as UTF-8.
Copyright (C) 1995, 2013, Oracle and/or its  affiliates. All rights reserved.

O seguinte comando irá criar os subdiretórios requeridos para o ambiente de  Oracle GoldenGate

GGSCI (ggnode2.oracle.com) 1> create subdirs

Creating subdirectories under current directory /u01/app/ogg/12g

Parameter files                       /u01/app/ogg/12g/dirprm: already  exists
Report files                          /u01/app/ogg/12g/dirrpt: created
Checkpoint files                      /u01/app/ogg/12g/dirchk: created
Process status files                  /u01/app/ogg/12g/dirpcs: created
SQL script files                      /u01/app/ogg/12g/dirsql: created
Database definitions files            /u01/app/ogg/12g/dirdef: created
Extract data files                    /u01/app/ogg/12g/dirdat: created
Temporary files                       /u01/app/ogg/12g/dirtmp: created
Credential store files                /u01/app/ogg/12g/dircrd: created
Masterkey wallet files                /u01/app/ogg/12g/dirwlt: created
Dump files                            /u01/app/ogg/12g/dirdmp: created
GGSCI (ggnode2.oracle.com) 2> exit

Conecte-se no banco de dados de destino, verifique o archivelog mode e crie o usuário ‘c##ogguser’ com os requeridos privilégios como ‘sysdba’

  • Conecte-se no banco de dados do container de destino (db2) como ‘sysdba’
  • Verifique se o banco de dados está em archivelog mode.
  • Crie os Tablespaces para o  GoldenGate
  • Crie o usuário para o  GoldenGate ‘c##ogguser’
  • Conceda os privilégios para o usuário ‘c##ogguser’
  • Adicione os logs suplementares ao banco de dados
  • Conecte-se no pluggable database (db2pdb) e conceda os privilégios para o usuário scott
[oracle@ggnode2 12g]$ sqlplus /nolog

SQL*Plus: Release 12.1.0.1.0 Production on  Tue Jun 9 14:34:18 2015
Copyright (c) 1982, 2013, Oracle.  All rights reserved.
SQL> connect sys/oracle@192.168.56.106:1521/db2 as sysdba
Connected.

SQL> CREATE TABLESPACE GOLDENGATE  DATAFILE '/u01/app/oracle/oradata/db2/goldengate01.dbf' SIZE 100M AUTOEXTEND ON;
Tablespace created.

SQL> CREATE USER c##ogguser IDENTIFIED  BY oracle container=all;
User created.

SQL> GRANT CONNECT TO c##ogguser  container=all;
Grant succeeded.

SQL> GRANT DBA TO c##ogguser  container=all;
Grant succeeded.

SQL> GRANT UNLIMITED TABLESPACE TO  c##ogguser container=all;
Grant succeeded.

SQL> GRANT SELECT ANY DICTIONARY TO  c##ogguser container=all;
Grant succeeded.

SQL> grant create session to c##ogguser  container=all;
Grant succeeded.

SQL> grant alter session to c##ogguser  container=all;
Grant succeeded.

SQL> alter user c##ogguser default  tablespace users container=all;
User altered.

SQL> alter user c##ogguser quota  unlimited on users container=all;
User altered.

SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG  DATA;
Database altered.

SQL> ALTER SYSTEM SWITCH LOGFILE;
System altered.

SQL> ALTER DATABASE FORCE LOGGING;
Database altered.

SQL> ALTER SYSTEM SWITCH LOGFILE;
System altered.

SQL> SELECT SUPPLEMENTAL_LOG_DATA_MIN,  LOG_MODE,FORCE_LOGGING FROM v$database;

SUPPLEME LOG_MODE     FORCE_LOGGING
-------- ------------ ---------------------------------------
YES      ARCHIVELOG   YES

Conceda os privilégios para o usuário ‘C##OGGUSER’ no container do banco de dados de destino

SQL> exec  dbms_goldengate_auth.grant_admin_privilege('C##OGGUSER',container=> 'all');
PL/SQL procedure successfully completed.

SQL> connect  sys/oracle@192.168.56.106:1521/db2pdb as sysdba
Connected.

SQL> alter user scott identified by  oracle account unlock;
User altered.

SQL> connect  scott/oracle@192.168.56.106:1521/db2pdb
Connected.
SQL> create table inventory (
prod_id number,
prod_category varchar2(20),
qty_in_stock number,
last_dml timestamp default systimestamp);
Table created.

SQL> alter table inventory add  constraint pk_inventory primary key (prod_id);
Table altered.

SQL> grant all on inventory to  c##ogguser;
Grant succeeded.

Conecte-se no Oracle GoldenGate 12c no Banco de dados do servidor de Destino

[oracle@ggnode2 ~]$ source 12c.env
[oracle@ggnode2 ~]$ cd $GG
[oracle@ggnode2 12g]$ pwd
/u01/app/ogg/12g

GGSCI (ggnode2.oracle.com) 3> dblogin userid  c##ogguser@db2pdb, password oracle
Successfully logged into database DB2PDB.

GGSCI (ggnode2.oracle.com) 4> ADD  SCHEMATRANDATA SCOTT ALLCOLS

2015-05-28 15:43:18  INFO     OGG-01788  SCHEMATRANDATA has been  added on schema SCOTT.
2015-05-28 15:43:18  INFO     OGG-01976  SCHEMATRANDATA for  scheduling columns has been added on schema SCOTT.
2015-05-28 15:43:18  INFO     OGG-01977  SCHEMATRANDATA for all  columns has been added on schema SCOTT.

GGSCI (ggnode2.oracle.com) 5> dblogin  userid c##ogguser@db2, password oracle
Successfully logged into database CDB$ROOT.

GGSCI (ggnode2.oracle.com) 6> ADD  REPLICAT rscott INTEGRATED EXTTRAIL ./dirdat/rt
REPLICAT (Integrated) added.

GGSCI (ggnode2.oracle.com) 7> edit param  rscott
GGSCI (ggnode2.oracle.com) 8> view param  rscott

REPLICAT rscott
DBOPTIONS INTEGRATEDPARAMS(parallelism 6)
USERID C##OGGUSER@db2pdb, PASSWORD oracle
ASSUMETARGETDEFS
MAP db1pdb.scott.*, TARGET db2pdb.scott.*;

GGSCI (ggnode2.oracle.com) 7> edit param  mgr
GGSCI (ggnode2.oracle.com) 15> view param  mgr
PORT 7810

GGSCI (ggnode2.oracle.com) 8> start mgr
Manager started.

GGSCI (ggnode2.oracle.com) 9> start  replicat rscott
Sending START request to MANAGER ...
REPLICAT RSCOTT starting

GGSCI (ggnode2.oracle.com) 10> info all

Program        Status            Group        Lag  at Chkpt      Time Since Chkpt
MANAGER        RUNNING
REPLICAT       STARTING          RSCOTT       00:00:00           00:01:08

GGSCI (ggnode2.oracle.com) 11> info all

Program        Status           Group         Lag  at Chkpt      Time Since Chkpt
MANAGER        RUNNING
REPLICAT       RUNNING          RSCOTT        00:00:00           00:00:07

Conecte-se no servidor do bando de dados de origem (Pluggable Database- db1pdb) como scott e execute algumas transações e verifique se o pluggable database de destino (db2pdb) receberam ou não essas transações.

Convertendo de Uni-Directional para Bi-Directional em Pluggable Databases entre db1pdb e db2pdb no ambiente Multitenant

Conecte-se no ambiente Oracle GoldenGate no servidor de destino (db2) e extraia o processo para o Bi-directional

GGSCI (ggnode2.oracle.com) 4> dblogin  userid c##ogguser@db2, password oracle
Successfully logged into database CDB$ROOT.

GGSCI (ggnode2.oracle.com) 14> register  extract es01 database container(db2pdb)
Extract ES01 successfully registered with  database at SCN 1751950.

GGSCI (ggnode2.oracle.com) 15> add  extract es01 integrated tranlog, begin now
EXTRACT added.

GGSCI (ggnode2.oracle.com) 16> add  exttrail ./dirdat/ea extract es01
EXTTRAIL added.

GGSCI (ggnode2.oracle.com) 17> add  extract ps01 exttrailsource ./dirdat/ea begin now
EXTRACT added.

GGSCI (ggnode2.oracle.com) 18> add  rmttrail ./dirdat/pa extract ps01
RMTTRAIL added.

GGSCI (ggnode2.oracle.com) 19> edit  param es01
GGSCI (ggnode2.oracle.com) 20> view  param es01

extract es01
userid c##ogguser@db2, password oracle
LOGALLSUPCOLS
UPDATERECORDFORMAT COMPACT
EXTTRAIL ./dirdat/ea
SOURCECATALOG db2pdb
TABLE scott.*;

GGSCI (ggnode2.oracle.com) 21> edit  param ps01
GGSCI (ggnode2.oracle.com) 22> view  param ps01

EXTRACT ps01
userid c##ogguser@db2, password oracle
rmthost ggnode1, mgrport 7809
rmttrail ./dirdat/pa
SOURCECATALOG db2pdb
TABLE scott.*;

GGSCI (ggnode2.oracle.com) 23> info all

Program        Status           Group         Lag  at Chkpt      Time Since Chkpt
MANAGER        RUNNING
EXTRACT        STOPPED          ES01          00:00:00           00:01:55
EXTRACT        STOPPED          PS01          00:00:00           00:01:28
REPLICAT       RUNNING          RSCOTT        00:00:00           00:00:05

GGSCI (ggnode2.oracle.com) 24> start  es01
Sending START request to MANAGER ...
EXTRACT ES01 starting

GGSCI (ggnode2.oracle.com) 25> start  ps01
Sending START request to MANAGER ...
EXTRACT PS01 starting

GGSCI (ggnode2.oracle.com) 26> info all

Program         Status           Group        Lag  at Chkpt      Time Since Chkpt
MANAGER         RUNNING
EXTRACT         STARTING         ES01         00:00:00           00:02:08
EXTRACT         RUNNING          PS01         00:00:00           00:01:41
REPLICAT        RUNNING          RSCOTT       00:00:00           00:00:08

GGSCI (ggnode2.oracle.com) 27> info all

Program        Status           Group         Lag  at Chkpt      Time Since Chkpt
MANAGER        RUNNING
EXTRACT        RUNNING          ES01          00:00:06           00:00:08
EXTRACT        RUNNING          PS01          00:00:00           00:00:03
REPLICAT       RUNNING          RSCOTT        00:00:00           00:00:05

Conecte-se no ambiente de Oracle GoldenGate no servidor de banco de dados de origem (db1) e replique o processo para o Bi-directional

GGSCI (ggnode1.oracle.com) 22> dblogin  userid c##ogguser@db1, password oracle
Successfully logged into database CDB$ROOT.

GGSCI (ggnode1.oracle.com) 23> ADD  REPLICAT rs01 INTEGRATED EXTTRAIL ./dirdat/pa
REPLICAT (Integrated) added.

GGSCI (ggnode1.oracle.com) 24> edit  param rs01
GGSCI (ggnode1.oracle.com) 25> view  param rs01

replicat rs01
DBOPTIONS INTEGRATEDPARAMS(parallelism 6)
userid c##ogguser@db1pdb, password oracle
ASSUMETARGETDEFS
map db2pdb.scott.*, target db1pdb.scott.*;

GGSCI (ggnode1.oracle.com) 26> start  rs01
Sending START request to MANAGER ...
REPLICAT RS01 starting

GGSCI (ggnode1.oracle.com) 27> info all
Program                       Status           Group         Lag  at Chkpt      Time Since Chkpt
MANAGER                       RUNNING
EXTRACT                       RUNNING          ESCOTT        00:00:06           00:00:03
EXTRACT                       RUNNING          PSCOTT        00:00:00           00:00:04
REPLICAT                      RUNNING          RS01          00:00:00           00:00:46

Conecte-se no Servidor de Banco de Dados do Destino (Pluggable Database- db2pdb) com usuário scott e execute algumas transações e verifique se as transações foram recebidas no pluggable database de origem (db1pdb) ou não.

Verifique as estatísticas para todos os processos nos Servidores de bancos de dados de Origem e Destino

GGSCI (ggnode1.oracle.com) 31> stats escott, total
GGSCI (ggnode1.oracle.com) 32> stats pscott, total
GGSCI (ggnode1.oracle.com) 33> stats rs01, total

GGSCI (ggnode2.oracle.com) 31> stats es01, total
GGSCI (ggnode2.oracle.com) 32> stats ps01, total
GGSCI (ggnode2.oracle.com) 33> stats rscott, total

Resumo: Oracle GoldenGate funciona de maneira similar em ambientes Multitenant, single instance & cluster instances contanto que sejam adicionados os processos de extração e replicação baseados no tipo de replicação, sejam eles uni-direcional ou bi-direcional.  


Yenugula Venkata Ravikumar é um DBA com mais de 15 anos de experiencia com Oracle e em ambientes de alta disponibilidade (RAC, Data Guard, dentre outros), tuning e desempenho, migrações, backup e recover, Oracle Exadata X2 e X3, é Expert em sistemas operacionais tais como como AIX, HP-UX e Linux. Já participou como conferencista de Oracle pela India, onde mora atualmente. Obteve o título de "Oracle Certified Master (OCM 10g)" em 2009.

David Siqueira é DBA desde 2001, atuante no mercado de São Paulo Brasil, trabalhou nas principais consultorias sempre buscando melhorar conhecimentos e agregar valor aos ambientes por onde passou, é OCP 10 e 11g, OCE SQL Expert, OCE RAC 10g, OCE Exadata Essentials e foi nomeado Oracle ACE em Dezembro de 2011. Atua com ambientes de Alta Disponibilidade Oracel RAC 11g, Exadata X2-2 e Administração de Banco de Dados em Geral. Também possui conhecimentos em sistemas operacionais Oracle VM server e Oracle Businnes Intelligence.

Este artigo foi revisto pela equipe de produtos Oracle e está em conformidade com as normas e práticas para o uso de produtos Oracle.