Escolar Documentos
Profissional Documentos
Cultura Documentos
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:
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
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)
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
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).
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”
Exemplo:
dbms_goldengate_auth.grant_admin_privilege(‘C##OGGUSER’,container=>all)
SQL> create tablespace goldengate datafile '/u01/app/oracle/oradata/cdb1/goldengate01.dbf' size 100M autoextend on;
Tablespace created.
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
SQL> grant alter session to c##ogguser container=all;
Grant succeeded.
SUPPLEME
---------------
YES
Conexão à Pluggable Database cdb1pdb1 como SYS para criar o usuário pdb1user e atribuir as permissões necessárias:
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
SQL> alter user pdb1user quota unlimited on users;
User altered.
Table created.
SQL> alter table inventory add constraint pk_inventory primary key (prod_id) ;
Table altered.
TNAME
--------------------------------------------------------------------------------
INVENTORY
SQL> commit;
Commit complete.
Conexão à Pluggable Database cdb1pdb2 como SYS para criar o usuário pdb1user e atribuir as permissões necessárias:
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
SQL> create user pdb1user identified by oracle;
User created.
Table created.
SQL> alter table inventory add constraint pk_inventory primary key (prod_id);
Table altered.
TNAME
--------------------------------------------------------------------------------
INVENTORY
SQL> commit;
Commit complete.
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
SQL> select * from inventory;
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):
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.
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.
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.
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) 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) 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.
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.
extract es01
userid c##ogguser@cdb1,password oracle
LOGALLSUPCOLS
UPDATERECORDFORMAT COMPACT
exttrail ./dirdat/lt
SOURCECATALOG cdb1pdb1
table pdb1user.*;
SOURCECATALOG cdb1pdb2
table pdb1user.*;
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
SOURCECATALOG cdb1pdb2
table pdb1user.*;
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
Instalação do Oracle Database 12c com a opção Multitenant e com múltiplos Pluggable Databases no banco de dados de destino
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).
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
Exemplo:
dbms_goldengate_auth.grant_admin_privilege(‘C##OGGUSER’,container=>all)
SQL> create tablespace goldengate datafile '/u01/app/oracle/oradata/cdb2/goldengate01.dbf' size 100M autoextend on;
Tablespace created.
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Grant succeeded.
SUPPLEME FORCE_LOGGING
------------- ---------------------------------------
YES YES
Conexão à Pluggable Database cdb2pdb1 como SYS para criar o usuário pdb1user e atribuir as permissões necessárias:
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.
Conexão à Pluggable Database cdb2pdb2 como SYS para criar o usuário pdb1user e atribuir as permissões necessárias:
SQL> alter table inventory add constraint pk_inventory primary key (prod_id);
Table altered.
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
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
replicat rs01
USERID c##ogguser@cdb2pdb1,password oracle
assumetargetdefs
map cdb1pdb1.pdb1user.*,target cdb2pdb1.pdb1user.*;
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)
Verificando o estado dos processos Manager e Replicat (RS01 & RS02) no banco de dados de destino
MANAGER RUNNING
REPLICAT RUNNING RS01 00:00:00 00:00:01
REPLICAT RUNNING RS02 00:00:00 00:00:00
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)
Verificando o estado dos processos Manager e Extract (ES01 & ES02) no banco de dados de origem
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.
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