top of page

Implementando replicação unidirecional no Oracle GoldenGate - Parte 1

Atualizado: 25 de jun. de 2023

Se você está aqui, entendo que já concluiu as etapas anteriores, conhece a arquitetura do GoldenGate, seu funcionamento, e a instalação já está completa nos dois servidores.


Caso a resposta seja negativa para a questão acima sugiro a leitura dos dois últimos artigos.


Configurar o Oracle GoldenGate é uma jornada essencial para a replicação eficiente de dados. Neste artigo, fornecerei um roadmap claro e conciso para guiá-lo em cada etapa do processo, desde a configuração do ambiente até a criação de extratores e replicadores. Ao dominar essa ferramenta, você agregará um valor significativo tanto para as empresas, garantindo a disponibilidade e a consistência dos dados, quanto para você mesmo, expandindo seus conhecimentos e habilidades.

replicação unidirecional oracle goldengate

A configuração do ambiente é essencial para o sucesso do Oracle GoldenGate. Definir as variáveis de ambiente e verificar os pré-requisitos são passos cruciais. Em seguida, você configurará a replicação, definindo parâmetros importantes, como informações dos bancos de dados fonte e de destino, tabelas replicadas, filtros de dados e configurações de segurança. Além disso, estabelecer a conectividade entre os sistemas é fundamental, incluindo configurações de rede, portas, protocolos e autenticação. Por fim, criará extratores e replicadores para capturar e replicar as transações entre os bancos de dados, garantindo uma transferência eficiente e confiável dos dados.


Ao concluir o roadmap, você estará pronto para colher os benefícios do Oracle GoldenGate. Essa ferramenta possibilita a replicação em tempo real, mantendo a integridade e a precisão dos dados entre os sistemas. Ela agrega valor às empresas, garantindo a disponibilidade dos dados e impulsionando a tomada de decisões baseada em informações atualizadas. Além disso, dominar o Oracle GoldenGate amplia suas habilidades profissionais, abrindo portas para o crescimento e o desenvolvimento de carreira.

 

Configuração Oracle GoldenGate

  1. Planejamento

  2. Instalação

  3. Configuração de ambiente

  4. Configuração de replicação

  5. Configuração de conectividade

  6. Configuração de extract e replicate

  7. Teste e validação

  8. Monitoração e ajuste

  9. Manutenção e suporte

Agora iremos definir os parâmetros de replicação do GG, incluindo as informações sobre os bancos de dados fonte e destino, tabelas a serem replicadas. Como este tipo de configuração requer muitas etapas e vou tentar passar com o máximo de detalhes possível, este artigo será dividido em duas partes.


1. Verificar se primary key estão implementadas


Para garantir a replicação adequada de tabelas, é essencial que o Oracle GoldenGate possua uma forma de distinguir os registros. A maneira mais eficiente de alcançar isso é mantendo restrições de chave primária ou índices exclusivos em todas as tabelas envolvidas na replicação.


No banco de dados de origem, verifique se todas as tabelas que serão incluídas na replicação possuem uma pk.


Caso o select encontre alguma tabela no schema HR que não tenha uma constraint do tipo PK, ele deve retornar o nome da tabela.


-- verificar se as tabelas possuem uma pk
set pages 2000
set lines 200
col owner for a20
col table_name for a30
select t.OWNER,
	   t.TABLE_NAME
from DBA_TABLES t
where not exists (select *
				  from DBA_CONSTRAINTS c
				  where c.OWNER = t.OWNER 
				  and c.TABLE_NAME = t.TABLE_NAME
				  and c.CONSTRAINT_TYPE = 'P')
and t.OWNER='HR';
tela do sqlplus com a saída do comando select mostrando que não existe nenhuma tabela sem a constraint do tipo PK

2. Validar se o banco de dados está no modo archivelog


Certifique-se de que o banco de dados está com o modo archivelog mode ativado.


Eu deixei o archive desativado propositalmente nas máquinas que criei para que a gente pudesse concluir juntos essa etapa. Em ambos bancos de dados (db1 e db2) faça login com o usuário sys e habilite o archivelog utilizando os comandos abaixo.


conn / as sysdba
select log_mode from v$database ;
alter system set log_archive_dest_1 = 'LOCATION=USE_DB_RECOVERY_FILE_DEST' scope=BOTH;
shut immediate
startup mount
alter database archivelog;
alter database open;
alter system switch logfile;
select name from v$archived_log;
tela do prompt do sqlplus habilitando o modo archivelog do oracle

3. Criar e configurar o schema para o GoldenGate


Para configurar o Oracle GoldenGate, é necessário criar um usuário de banco de dados tanto no banco de dados de origem quanto no banco de dados de destino. No banco de dados de origem, o usuário do GoldenGate será responsável pela leitura dos dados e transações das tabelas de origem. Já no banco de dados de destino, o usuário do GoldenGate aplicará os dados das transações. É importante conceder ao usuário GoldenGate os privilégios necessários para realizar essas tarefas com sucesso.


-- no banco de dados DB1
-- create tablespace dedicated to OGG
create tablespace ogg_tbs
datafile '/u02/oradata/DB1/oggtbs01.dbf' size 100m
autoextend on next 10m maxsize 1g
extent management local
segment space management auto;
-- create OGG user
create user ogg identified by oracle default tablespace ogg_tbs;
criando tablespace e schema goldengate

Repita o procedimento no banco db2.


-- no banco de dados DB2
-- create tablespace dedicated to OGG
create tablespace ogg_tbs
datafile '/u02/oradata/DB2/oggtbs01.dbf' size 100m
autoextend on next 10m maxsize 1g
extent management local
segment space management auto;
-- create OGG user
create user ogg identified by oracle default tablespace ogg_tbs;
criando tablespace e schema goldengate

Em ambos bancos de dados (db1 e db2), conceda o privilégio para o usuário do OGG.


exec dbms_goldengate_auth.grant_admin_privilege('OGG');
concedendo privilégios administrativos para o usuário OGG

O objeto "dbms_goldengate_auth.grant_admin_privilege" concede privilégios administrativos para o Oracle GoldenGate. Ela permite que os usuários designados tenham autorização para executar tarefas administrativas relacionadas ao GoldenGate, como configurar, gerenciar e monitorar a replicação de dados.


Utilize o select abaixo e analise os privilégios concedidos para o usuário OGG:

select privilege from dba_sys_privs where grantee='OGG'
union all
select granted_role from dba_role_privs where grantee='OGG'
union all
select privilege||' on '|| table_name from dba_tab_privs where grantee='OGG';


Conceda os privilégios adicionais para o usuário OGG.


-- (db1 e db2) conceda os privilegios ao usuario OGG:
grant create session to ogg;
grant alter system to ogg;
grant resource to ogg;
grant connect to ogg;
grant dba to ogg;
grant select any dictionary to ogg;
grant execute on dbms_flashback to ogg;
grant lock any table to ogg;
-- (db1):
grant select any transaction to ogg;
concedendo privilégios adicionais ao usuário OGG

-- (db2):
grant insert any table to ogg;
grant update any table to ogg;
grant delete any table to ogg;
grant create table to ogg;
concedendo privilégios adicionais ao usuário OGG

Habilite o supplemental logging

Para replicar os dados adequadamente, é necessário configurar corretamente o supplemental logging mínimo no banco de dados. Além disso, é recomendado habilitar o supplemental logging em nível de tabela ou esquema.


O supplemental logging mínimo garante que as informações básicas das operações DML sejam capturadas, incluindo os valores antigos e novos dos registros modificados. Essas informações são essenciais para garantir a precisão da replicação de dados.


Além disso, habilitar o supplemental logging em nível de tabela ou esquema oferece uma visão mais abrangente das alterações realizadas nas tabelas selecionadas ou em todo o esquema. Isso permite que o sistema de replicação, capture todas as operações DML e as replique com precisão no banco de dados de destino.


-- (db1 e db2)
select supplemental_log_data_min, force_logging from v$database;
alter database add supplemental log data;
alter database force logging;
alter system switch logfile;
habilitando o supplemental logging no db1
habilitando o supplemental logging no db2

Habilite a replicação em ambos databases (db1 e db2)


-- (db1 e db2) habilitar a replicação em ambos bancos de dados
alter system set enable_goldengate_replication=true scope=both;
habilitando a replicação em ambos databases db1 e db2

No banco de origem (db1), habilite o supplemental logging no nível de schema para o usuário HR.


-- (db1)
cd $GG_HOME
./ggsci
DBLogin UserID ogg, Password oracle
ADD SCHEMATRANDATA hr
habilitando schema-level supplemental logging para schema HR

Configure e inicie o Manager Process

Este processo é um componente essencial do Oracle GoldenGate. Ele é criado e configurado através do arquivo de parâmetros e sua função é controlar e administrar os processos do GoldenGate em execução. Assim como outros processos, é necessário configurar o arquivo de parâmetros antes de iniciar o Manager Process.


Usando o prompt de comando GGSCI, crie o arquivo de parametro usando o comando a seguir.

-- (db1)
cd $GG_HOME
./ggsci
edit Param mgr

-- adicione os valores ao arquivo de parametro, grave e feche o arquivo
Port 7809
DynamicPortList 9500-9520
PurgeOldExtracts ./dirdat/*, UseCheckpoints, MinKeepDays 5

-- inicie o manager
start mgr
-- verifique o status do manager
Info mgr
configurando o manager process db1

-- (db2)
cd $GG_HOME
./ggsci
edit Param mgr

-- adicione os valores ao arquivo de parametro, grave e feche o arquivo
Port 7810
PurgeOldExtracts ./dirdat/*, UseCheckpoints, MinKeepDays 5

-- inicie o manager
start mgr
-- verifique o status do manager
Info mgr
configurando o manager process db2

Para visualizar o parametro digite o comando "view params".

visualização parametro manager do goldengate view params mgr

Configurar o parâmetro GLOBALS

O parâmetro GLOBALS é configurado no arquivo de parâmetros do Oracle GoldenGate e afeta todos os processos na instância. É usado para definir configurações globais e comuns a todos os processos. Ao criar o arquivo de parâmetros, podemos adicionar parâmetros específicos no GLOBALS para controlar o comportamento geral do GoldenGate.


Este parâmetro irá informar ao GoldenGate qual schema do banco de dados ele deve usar para armazenar seus objetos.


-- (db1 e db2) crie o arquivo GLOBALS
cd $GG_HOME
./ggsci
edit params ./GLOBALS

-- adicione o parametro abaixo
GGSCHEMA OGG
visualização parametro GLOBALS oracle goldengate view params ./GLOBALS

Finalizamos por aqui, agora já temos nossas máquinas preparadas para receber a carga inicial e começar a sincronizar dados.


Neste artigo, implementamos as etapas de preparação dos bancos de dados para configurar o Oracle GoldenGate. Criamos os usuários de banco de dados do GoldenGate e configuramos alguns parâmetros. No próximo artigo, executarei o método initial load para transferir o esquema HR do banco de origem para o banco de destino. Espero que este artigo tenha sido muito útil para você, assim como está sendo para mim aprender essa ferramenta. Em caso de dúvidas, não hesite em entrar em contato. Ficarei feliz em responder e aprender juntos.


Um abraço e Hands on!

Comments


Post: Blog2_Post
bottom of page