Você está na página 1de 30

Menu Fazer Login País Ligar

Oracle Technology Network / Artigos / Desempenho e Disponibilidade de Banco de dados

Replicação de múltiplos Pluggable Databases em um Banco de Dados Multitenant utilizando


Oracle GoldenGate 12c
Por Yenugula Venkata RaviKumar e Alex Zaballa
Postado em Março 2016

Revisado por Marcelo Pivovar - Solution Architect

Introdução
O Oracle GoldenGate funciona em um banco de dados Container Database (CDB) da mesma forma que em uma base de dados NON-
CDB (arquitetura que era conhecida até a versão 11G), porém, vamos examinar algumas das principais diferenças quando se trata de
configurar os processos de extração e replicação para um banco de dados pluggable database (PDB).
Abaixo estão alguns pontos que devemos ter em mente quando lidamos com o Oracle GoldenGate e a arquitetura Multitenant do 12c:

Está disponível apenas no modo de captura integrado mas não no modo de captura clássico;
Um processo extract pode ser configurado para capturar as alterações de vários bancos de dados pluggable database (PDBs);

Devemos usar o modo de captura integrado e um log mining server, que só é acessível a partir do container root (CDB$ROOT);
Devemos utilizar um usuário comum para conectar ao log mining server. Em nossos exemplos, será utilizado o usuário
C##OGGUSER;
O processo Replicat só pode se conectar e aplicar em um único banco de dados pluggable database.

Este artigo irá explicar como configurar o Oracle GoldenGate (OGG) para realizar a replicação unidirecional entre um banco de dados
12c, CDB1 com as Pluggable Databases cdb1pdb1+cdb1pdb2 e um banco de dados 12c CDB2, com as Pluggable Databases
cdb2pdb1+cdb2pdb2.

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Neste artigo iremos utilizar o seguinte ambiente:

Banco de dados de origem (cdb1) Banco de dados de destino (cdb2)

1. Oracle Enterprise Linux 5.8 (x86-64) 1. Oracle Enterprise Linux 5.8 (x86-64)
2. Oracle 12c R1 Database (12.1.0.1.0) 2. Oracle 12c R1 Database (12.1.0.1.0)
ORACLE_HOME=/u01/app/oracle/product/12.1.0/db_1 ORACLE_HOME=/u01/app/oracle/product/12.1.0/db_1
3. Oracle GoldenGate 12c (12.1.2.0.0) 3. Oracle GoldenGate 12c (12.1.2.0.0)
GOLDENGATE_HOME=/u01/app/ogg/12g GOLDENGATE_HOME=/u01/app/ogg/12g
4. Database Name: cdb1 4. Database Name: cdb2
5. Schema Name: pdb1user 5. Schema Name: pdb1user
6. Hostname: ggnode1 6. Hostname: ggnode2
7. IPAddress: 192.168.56.105 7. IPAddress: 192.168.56.106
8. Pluggable Databases: cdb1pdb1, cdb1pdb2 8. Pluggable Databases: cdb2pdb1, cdb2pdb2

Processos do Oracle GoldenGate 12c:

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Banco de dados de origem (cdb1) Banco de dados de destino (cdb2)

Manager: Listening port 7809 Manager: Listening port 7810


Extract Process-1: ES01 Replicat Process-1: RS01
Extract Process-2: PS01 Replicat Process-2: RS02

Extract Process-3: PS02

Processos do Oracle GoldenGate no banco de dados de origem (CDB1 com as Pluggable Databases – cdb1pdb1 e cdb1pdb2):

Processo Extract (ES01): Este processo irá capturar as transações do log de transações do Oracle com ajuda do log mining server.

Processo Extract (PS01 e PS02): Este processo lê um trail file e não o log de transações do banco de dados.

Processos do Oracle GoldenGate no banco de dados de destino (CDB2 com as Pluggable Databases – cdb2pdb1 e cdb2pdb2):

Processo Replicat (RS01 e RS02): Este processo também é conhecido como Integrated Replicat Process.

Instalação do Oracle Database 12c com a opção Multitenant e com múltiplos Pluggable Databases no banco de dados de origem

Passos a serem executados no banco de dados de origem (cdb1):

Instalação software do banco de dados 12c do Oracle R1 com o usuário “oracle” no seguinte diretório -
ORACLE_HOME=/u01/app/oracle/product/12.1.0/db_1;
Instalação software do Oracle GoldenGate 12c com o usuário “oracle” no seguinte diretório -
GOLDENGATE_HOME=/u01/app/ogg/12g;

Criar o banco de dados CDB1 com as pluggable databases cdb1pdb1 e cdb1pdb2 com os sample schemas;
Criar os serviços de banco de dados para o CDB1, CDB1PDB1 e CDB1PDB2;
Criar os subdiretórios para Oracle GoldenGate 12c no banco de dados de origem (cdb1);

Criar e configurar os processos Manager, Extract e Pump para replicação unidirecional entre o banco de dados Oracle 12c CDB1
(pluggable databases cdb1pdb1 e cdb1pdb2) e o banco de dados Oracle 12c CDB2 (pluggable databases cdb2pdb1 e cdb2pdb2);

Criação do container database (cdb1) com dois pluggable databases (cdb1pdb1 e cdb1pdb2)

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Instalação do Oracle GolgenGate 12c com o usuário oracle no banco de dados de origem

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

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Ao clicar em “Install“ você terá os binários do software do Oracle GoldenGate 12c para Oracle Database 12c instalados no servidor do
banco de dados de origem (cdb1).

Conexão ao banco de dados de origem cdb1 como “sysdba”

Logar no banco de origem (cdb1) como “sysdba”


Criar uma tablespace para o GoldenGate

Criar um usuário para o GoldenGate chamado “c##ogguser”

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Atribuir os privilégios necessários para o usuário “c##ogguser”

Adicionar o supplemental logging

A package dbms_goldengate_auth.grant_admin_privilege package concede os privilégios adequados para a captura e aplicação

Incluir o parâmetro container, que deve ser setado para ALL:

Exemplo:

dbms_goldengate_auth.grant_admin_privilege(‘C##OGGUSER’,container=>all)

[oracle@ggnode1 ~]$ source 12c.env


[oracle@ggnode1 ~]$ echo $ORACLE_SID
cdb1

[oracle@ggnode1 ~]$ sqlplus /nolog


SQL*Plus: Release 12.1.0.1.0 Production on Sun Jun 7 00:13:12 2015
Copyright (c) 1982, 2013, Oracle. All rights reserved.

SQL> connect sys/oracle@192.168.56.105:1521/cdb1 as sysdba


Connected.

SQL> select con_id,name,open_mode from v$pdbs;

CON_ID NAME OPEN_MODE


---------- --------------------- ----------
2 PDB$SEED READ ONLY
3 CDB1PDB1 READ WRITE
4 CDB1PDB2 READ WRITE

SQL> create tablespace goldengate datafile '/u01/app/oracle/oradata/cdb1/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 container=all;


Grant succeeded.

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
SQL> grant alter session to c##ogguser container=all;
Grant succeeded.

SQL> grant select any dictionary to c##ogguser container=all;


Grant succeeded.

SQL> alter database add supplemental log data;


Database altered.

SQL> alter database force logging;


Database altered.

SQL> alter pluggable database all open;


Pluggable database altered.

SQL> select con_id,name,open_mode from v$pdbs;

CON_ID NAME OPEN_MODE


---------- ------------------------- ----------
2 PDB$SEED READ ONLY
3 CDB1PDB1 READ WRITE
4 CDB1PDB2 READ WRITE

SQL> select supplemental_log_data_min from v$database;

SUPPLEME
---------------
YES

SQL> alter system switch logfile;


System altered.

Conexão à Pluggable Database cdb1pdb1 como SYS para criar o usuário pdb1user e atribuir as permissões necessárias:

SQL> connect sys/oracle@192.168.56.105:1521/cdb1pdb1 as sysdba


Connected.

SQL> create user pdb1user identified by oracle;


User created.

SQL> grant connect,resource to pdb1user;


Grant succeeded.

SQL> grant create session to pdb1user;


Grant succeeded.

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
SQL> alter user pdb1user quota unlimited on users;
User altered.

Conexão à Pluggable Database cdb1pdb1 como pdb1user para criar os objetos:

SQL> connect pdb1user/oracle@192.168.56.105:1521/cdb1pdb1


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.

SQL> select tname from tab;

TNAME
--------------------------------------------------------------------------------
INVENTORY

SQL> insert into inventory values(101,'BOOSTER',100,sysdate);


1 row created.

SQL> commit;
Commit complete.

SQL> set lines 200 pages 2000


SQL> select * from inventory;

PROD_ID PROD_CATEGORY QTY_IN_STOCK LAST_DML


---------- -------------------- ------------ ----------------------------------
101 BOOSTER 100 07-JUN-15 01.17.36.000000 AM

Conexão à Pluggable Database cdb1pdb2 como SYS para criar o usuário pdb1user e atribuir as permissões necessárias:

SQL> connect sys/oracle@192.168.56.105:1521/cdb1pdb2 as sysdba


Connected.

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
SQL> create user pdb1user identified by oracle;
User created.

SQL> grant connect, resource to pdb1user;


Grant succeeded.

SQL> grant create session to pdb1user;


Grant succeeded.

SQL> alter user pdb1user quota unlimited on users;


User altered.

Conexão à Pluggable Database cdb1pdb2 como pdb1user para criar os objetos:

SQL> connect pdb1user/oracle@192.168.56.105:1521/cdb1pdb2


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.

SQL> select tname from tab;

TNAME
--------------------------------------------------------------------------------
INVENTORY

SQL> insert into inventory values(101,'BOOSTER',100,sysdate);


1 row created.

SQL> commit;
Commit complete.

SQL> set lines 200 pages 2000

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
SQL> select * from inventory;

PROD_ID PROD_CATEGORY QTY_IN_STOCK LAST_DML


---------- -------------------- ------------ ---------------------------------
101 BOOSTER 100 07-JUN-15 01.17.36.000000 AM

Configurando o Oracle GoldenGate 12c no banco de dados de origem (Container Database cdb1)

Execute o comando ggsci para entrar na interface de linha de comando do Oracle 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 irá criar os subdiretórios necessários para o Oracle GoldenGate:

GGSCI (ggnode1.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

O comando abaixo irá logar no banco de dados como usuário “ogguser“:

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
GGSCI (ggnode1.oracle.com) 2> dblogin userid c##ogguser@cdb1pdb1,password oracle
Successfully logged into database CDB1PDB1.

GGSCI (ggnode1.oracle.com) 3> add schematrandata pdb1user allcols

2015-06-07 00:36:16 INFO OGG-01788 SCHEMATRANDATA has been added on schema pdb1user.

2015-06-07 00:36:16 INFO OGG-01976 SCHEMATRANDATA for scheduling columns has been added on schema pdb1user.

2015-06-07 00:36:16 INFO OGG-01977 SCHEMATRANDATA for all columns has been added on schema pdb1user.

GGSCI (ggnode1.oracle.com) 4> dblogin userid c##ogguser@cdb1pdb2,password oracle


Successfully logged into database CDB1PDB2.

GGSCI (ggnode1.oracle.com) 5> add schematrandata pdb1user allcols

2015-06-07 00:36:42 INFO OGG-01788 SCHEMATRANDATA has been added on schema pdb1user.
2015-06-07 00:36:42 INFO OGG-01976 SCHEMATRANDATA for scheduling columns has been added on schema pdb1user.
2015-06-07 00:36:42 INFO OGG-01977 SCHEMATRANDATA for all columns has been added on schema pdb1user.

Conexão ao container root do banco de dados de origem (cdb1)

GGSCI (ggnode1.oracle.com) 6> dblogin userid c##ogguser@cdb1,password oracle


Successfully logged into database CDB$ROOT.

O comando a seguir irá registrar o processo extract (ES01) no banco de dados. Este processo é chamado de Integrated Capture Mode.
Neste modo o processo extract (ES01) interage diretamente com o log mining server para receber alterações de dados sob a forma de
registros de alterações lógicas (LCR).

GGSCI (ggnode1.oracle.com) 7> register extract es01 DATABASE CONTAINER (cdb1pdb1)


Extract ES01 successfully registered with database at SCN 1751521.
O comando a seguir irá registrar o processo extract (ES01) no banco de dados. Ele irá adicionar o segundo banco de dados pluggable
database cdb1pdb2 do container cdb1.

GGSCI (ggnode1.oracle.com) 8> register extract es01 DATABASE ADD CONTAINER (cdb1pdb2)
Extract ES01 successfully registered containers with database at SCN 1782819.

Adição dos processos Extract (ES01) e Data Pump (PS01 & PS02)

GGSCI (ggnode1.oracle.com) 9> add extract es01 integrated tranlog,begin now


EXTRACT added.

GGSCI (ggnode1.oracle.com) 10> add exttrail ./dirdat/lt, extract es01 ,megabytes 10


EXTTRAIL added.

GGSCI (ggnode1.oracle.com) 11> add extract ps01 ,exttrailsource ./dirdat/lt begin now
EXTRACT added.

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
GGSCI (ggnode1.oracle.com) 12> add extract ps02,exttrailsource ./dirdat/lt begin now
EXTRACT added.

GGSCI (ggnode1.oracle.com) 13> add rmttrail ./dirdat/rt,extract ps01


RMTTRAIL added.

GGSCI (ggnode1.oracle.com) 14> add rmttrail ./dirdat/pt,extract ps02


RMTTRAIL added.

GGSCI (ggnode1.oracle.com) 15> edit param mgr

GGSCI (ggnode1.oracle.com) 16> view param mgr


PORT 7809
O parâmetro SOURCECATALOG nos permite utilizar a convenção de nomenclatura schema.table.

Os seguintes comandos irão criar e configurar os processos extract (ES01) e pump (PS01 e PS02) com as opções de replicação
multitenant.

GGSCI (ggnode1.oracle.com) 17> edit param es01


GGSCI (ggnode1.oracle.com) 40> view param es01

extract es01
userid c##ogguser@cdb1,password oracle
LOGALLSUPCOLS
UPDATERECORDFORMAT COMPACT
exttrail ./dirdat/lt
SOURCECATALOG cdb1pdb1
table pdb1user.*;
SOURCECATALOG cdb1pdb2
table pdb1user.*;

GGSCI (ggnode1.oracle.com) 19> edit param ps01


GGSCI (ggnode1.oracle.com) 41> view param ps01
extract ps01
userid c##ogguser,password oracle
RMTHOST ggnode2,mgrport 7810
rmttrail ./dirdat/rt
SOURCECATALOG cdb1pdb1
table pdb1user.*;

GGSCI (ggnode1.oracle.com) 21> edit param ps01


extract ps02
userid c##ogguser,password oracle
RMTHOST ggnode2,mgrport 7810
rmttrail ./dirdat/pt

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
SOURCECATALOG cdb1pdb2
table pdb1user.*;

Inicialização do processo Manager no banco de dados de origem (cdb1)

GGSCI (ggnode1.oracle.com) 24> start mgr


Manager started.

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

Program Status Group Lag at Chkpt Time Since Chkpt

MANAGER RUNNING
EXTRACT STOPPED ES01 00:00:00 00:05:34
EXTRACT STOPPED PS01 00:00:00 00:04:54
EXTRACT STOPPED PS02 00:00:00 00:04:26

GGSCI (ggnode1.oracle.com) 2> exit

Instalação do Oracle Database 12c com a opção Multitenant e com múltiplos Pluggable Databases no banco de dados de destino

Passos a serem executados no banco de dados de destino (cdb2):

Instalação software do banco de dados 12c do Oracle R1 com o usuário “oracle” no seguinte diretório -
ORACLE_HOME=/u01/app/oracle/product/12.1.0/db_1;
Instalação software do Oracle GoldenGate 12c com o usuário “oracle” no seguinte diretório -
GOLDENGATE_HOME=/u01/app/ogg/12g;
Criar o banco de dados CDB2 com as pluggable databases cdb2pdb1 e cdb2pdb2 com os sample schemas;
Criar os serviços de banco de dados para o CDB2, CDB2PDB1 e CDB2PDB2;

Criar os subdiretórios para Oracle GoldenGate 12c na base de dados de destino (cdb2);

Criação do container database (cdb2) com dois pluggable databases (cdb2pdb1 e cdb2pdb2)

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Instalação do Oracle GolgenGate 12c com o usuário oracle no banco de dados de destino

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

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Ao clicar em “Install“ você terá os binários do software do Oracle GoldenGate 12c para Oracle Database 12c instalados no servidor do
banco de dados de destino (cdb2).

Conexão ao banco de dados de destino cdb2 como “sysdba”

Logar no banco de destino (cdb2) como “sysdba”


Criar uma tablespace para o GoldenGate

Criar um usuário para o GoldenGate chamado “c##ogguser”

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Atribuir os privilégios necessários para o usuário “c##ogguser”
Adicionar o supplemental logging
A package dbms_goldengate_auth.grant_admin_privilege package concede os privilégios adequados para a captura e aplicação

Incluir o parâmetro container, que deve ser setado para ALL:

Exemplo:

dbms_goldengate_auth.grant_admin_privilege(‘C##OGGUSER’,container=>all)

[oracle@ggnode2 ~]$ source 12c.env


[oracle@ggnode2 ~]$ sqlplus /nolog

SQL*Plus: Release 12.1.0.1.0 Production on Sun Jun 7 00:46:15 2015


Copyright (c) 1982, 2013, Oracle. All rights reserved.

SQL> connect sys/oracle@192.168.56.106:1521/cdb2 as sysdba


Connected.

SQL> select con_id,name,open_mode from v$pdbs;

CON_ID NAME OPEN_MODE


---------- ----------------------- ------------------
2 PDB$SEED READ ONLY
3 CDB2PDB1 READ WRITE
4 CDB2PDB2 READ WRITE

SQL> create tablespace goldengate datafile '/u01/app/oracle/oradata/cdb2/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 container=all;


Grant succeeded.

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

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Grant succeeded.

SQL> grant select any dictionary to c##ogguser container=all;


Grant succeeded.

SQL> alter database add supplemental log data;


Database altered.

SQL> alter database force logging;


Database altered.

SQL> alter system switch logfile;


System altered.

SQL> select supplemental_log_data_min,force_logging from v$database;

SUPPLEME FORCE_LOGGING
------------- ---------------------------------------
YES YES

SQL> exec dbms_goldengate_auth.grant_admin_privilege('C##OGGUSER',container=>'all');


PL/SQL procedure successfully completed.

Conexão à Pluggable Database cdb2pdb1 como SYS para criar o usuário pdb1user e atribuir as permissões necessárias:

SQL> connect sys/oracle@192.168.56.106:1521/cdb2pdb1 as sysdba


Connected.

SQL> create user pdb1user identified by oracle;


User created.

SQL> grant connect,resource to pdb1user;


Grant succeeded.

SQL> grant create session to pdb1user;


Grant succeeded.

SQL> alter user pdb1user quota unlimited on users;


User altered.

Conexão à Pluggable Database cdb2pdb1 como pdb1user para criar os objetos:

SQL> connect pdb1user/oracle@192.168.56.106:1521/cdb2pdb1


Connected.

SQL> create table inventory (


prod_id number,

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
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.

Conexão à Pluggable Database cdb2pdb2 como SYS para criar o usuário pdb1user e atribuir as permissões necessárias:

SQL> connect sys/oracle@192.168.56.106:1521/cdb2pdb2 as sysdba


Connected.

SQL> create user pdb1user identified by oracle;


User created.

SQL> grant connect,resource to pdb1user;


Grant succeeded.

SQL> grant create session to pdb1user;


Grant succeeded.

SQL> alter user pdb1user quota unlimited on users;


User altered.

Conexão à Pluggable Database cdb2pdb2 como pdb1user para criar os objetos:

SQL> connect pdb1user/oracle@192.168.56.106:1521/cdb2pdb2


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.

Configurando o Oracle GoldenGate 12c no banco de dados de destino (Container Database cdb2)

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
[oracle@ggnode2 ~]$ source 12c.env
[oracle@ggnode2 ~]$ cd $GG
[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.

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

Conexão à Pluggable Database cdb2pdb1 como “c##ogguser”

GGSCI (ggnode2.oracle.com) 1> dblogin userid c##ogguser@cdb2pdb1,password oracle


Successfully logged into database CDB2PDB1.
 
O seguinte comando irá adicionar processo replicat (RS01) para a pluggable database pdb1 do cdb2

GGSCI (ggnode2.oracle.com) 2> add replicat rs01 integrated exttrail ./dirdat/rt


REPLICAT (Integrated) added.

Conexão à Pluggable Database cdb2pdb2 como “c##ogguser”

GGSCI (ggnode2.oracle.com) 3> dblogin userid c##ogguser@cdb2pdb2,password oracle


Successfully logged into database CDB2PDB2.
 
O seguinte comando irá adicionar processo replicat (RS01) para a pluggable database cdb2pdb2 do cdb2.

GGSCI (ggnode2.oracle.com) 4> add replicat rs02 integrated exttrail ./dirdat/pt


REPLICAT (Integrated) added.

GGSCI (ggnode2.oracle.com) 5> edit param mgr

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
GGSCI (ggnode2.oracle.com) 6> view param mgr
PORT 7810
Criação e configuração de dois processos replicat para duas pluggable databases cdb2pdb1 e cdb2pdb2

GGSCI (ggnode2.oracle.com) 7> edit param rs01


GGSCI (ggnode2.oracle.com) 8> view param rs01

replicat rs01
USERID c##ogguser@cdb2pdb1,password oracle
assumetargetdefs
map cdb1pdb1.pdb1user.*,target cdb2pdb1.pdb1user.*;

GGSCI (ggnode2.oracle.com) 10> edit param rs02


GGSCI (ggnode2.oracle.com) 9> view param rs02

replicat rs02
USERID c##ogguser@cdb2pdb2,password oracle
assumetargetdefs
map cdb1pdb2.pdb1user.*,target cdb2pdb2.pdb1user.*;
Inicialização dos processos Manager e Replicat no banco de dados de destino (cdb2)

GGSCI (ggnode2.oracle.com) 12> start mgr


Manager started.

GGSCI (ggnode2.oracle.com) 13> start replicat rs01

Sending START request to MANAGER ...


REPLICAT RS01 starting

GGSCI (ggnode2.oracle.com) 14> start replicat rs02

Sending START request to MANAGER ...


REPLICAT RS02 starting

Verificando o estado dos processos Manager e Replicat (RS01 & RS02) no banco de dados de destino

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

Program Status Group Lag at Chkpt Time Since Chkpt

MANAGER RUNNING
REPLICAT RUNNING RS01 00:00:00 00:00:01
REPLICAT RUNNING RS02 00:00:00 00:00:00

GGSCI (ggnode2.oracle.com) 21>


Conexão ao Oracle GoldenGate para o banco de dados de origem (ggnode1)

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Inicialização dos processos Manager e Extract (ES01 & ES02) no banco de dados de origem (cdb1)

GGSCI (ggnode1.oracle.com) 26> start er *

Sending START request to MANAGER ...


EXTRACT ES01 starting

Sending START request to MANAGER ...


EXTRACT PS01 starting

Sending START request to MANAGER ...


EXTRACT PS02 starting

Verificando o estado dos processos Manager e Extract (ES01 & ES02) no banco de dados de origem

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

Program Status Group Lag at Chkpt Time Since Chkpt

MANAGER RUNNING
EXTRACT STARTING ES01 00:00:00 00:30:41
EXTRACT RUNNING PS01 00:00:00 00:30:01
EXTRACT RUNNING PS02 00:00:00 00:29:33

Nota: O processo Extract (ES01) ainda relata o status “STARTING” após a execução do comando info all. O processo Extract (ES01)
está rodando em Integrated Capture Mode que requer um tempo de inicialização maior.

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

Program Status Group Lag at Chkpt Time Since Chkpt

MANAGER RUNNING
EXTRACT RUNNING ES01 00:31:39 00:00:00
EXTRACT RUNNING PS01 00:00:00 00:00:03
EXTRACT RUNNING PS02 00:00:00 00:00:03
Conexão ao banco de dados de origem cdb1 na pluggable databasecdb1pdb1 para fazer algumas alterações na tabela Inventory

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Conexão ao banco de dados de origem cdb1 na pluggable databasecdb1pdb2 para fazer algumas alterações na tabela Inventory

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Conexão a interface de linha de comandos do GoldenGate no banco de origem para verificar as estatísticas do processo extract
(ES01) e verificar o total de operações

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Conexão a interface de linha de comandos do GoldenGate no banco de origem para verificar as estatísticas do processo pump
(PS01 e PS02) e verificar o total de operações

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Conexão a interface de linha de comandos do GoldenGate no banco de destino para verificar as estatísticas do processo
replicat (RS01) e verificar o total de operações

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Conexão a interface de linha de comandos do GoldenGate no banco de destino para verificar as estatísticas do processo
replicat (RS02) e verificar o total de operações

Todas as Pluggable Databases (PDBs) que pertencem ao mesmo Container Database (CDB) compartilham o mesmo redo stream. Com
isso, o Oracle GoldenGate precisa filtrar os redo records para as PDBs que não são necessários. Ao mesmo tempo que cada Pluggable
Database (PDB) tem o seu próprio dicionário de dados, o GoldenGate precisa controlar cada um deles.

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
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.

Alex Zaballa, formado em Análise de Sistemas, é especialista em Banco de Dados Oracle com sólidos conhecimentos em Servidores de
Aplicação e Sistemas Operacionais; trabalha com Oracle há 15 anos, é Oracle ACE Director, certificado OCM Database 11G/Cloud e
conta com mais de 190 outras certificações em produtos da Oracle. Alex também é fundador do Grupo de Usuários Oracle de Angola
(GUOA) e membro do time OraWorld.

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.

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD

Você também pode gostar