top of page

Instanciando o Oracle GoldenGate com Direct-Load

Aqui iremos implementar o método de carregamento inicial de direct-load para instanciar os dados de origem.


Nesse método, a tarefa Extract lê os dados linha por linha e os envia diretamente para a tarefa Replicat, que insere os dados online. As tarefas são encerradas automaticamente após a conclusão da operação.


Instanciando Oracle GoldeGate - Direct-Load

Confira também:


Os dois artigos anteriores lhe ajudarão a montar um ambiente para executar este tipo de replicação, inclusive há duas maquinas virtuais para baixar já com sistema operacional e banco de dados instalado.


Configure e execute o direct-load no Oracle GoldenGate


No ambiente de origem ggsrv1, adicione o serviço de extract para a carga inicial.

Add Extract: Adiciona um serviço de extract

edlinit: Nome do processo extract (definido pelo administrador)

SourceTable: Indica que a fonte de dados será uma ou mais tabelas

Add Extract edlinit, SourceIsTable
Add Extract edlinit, SourceIsTable

Crie e edite o arquivo de parametro para a carga inicial.

edit param edlinit
edit param edlinit

Adicione os parametros, salve e feche o arquivo conforme abaixo:

Extract edlinit: Indica a configuração do extract que configuramos criamos anteriormente "edlinit". Este processo será responsável por extrair dados do banco de dados de origem.


USERID, PASSWORD : Especifica as credenciais necessárias para acessar o banco de dados de origem. Nesse caso, o nome de usuário é "ogg" e a senha é "oracle". Essas credenciais serão usadas para autenticar junto ao banco de dados de origem.


RmtHost, MgrPort: Indica o host remoto (ggsrv2) e a porta do gerenciador (7810) do Oracle GoldenGate no qual os dados extraídos serão enviados. Essa configuração define para onde os dados serão replicados.


RmtTask, Group: Especifica a tarefa remota (Replicat) e o grupo (rdlinit) aos quais os dados extraídos serão enviados. Essa configuração define o destino dos dados extraídos.


Table HR...: Especifica as tabelas que serão incluídas na extração. Somente os dados dessas tabelas serão replicados pelo Extract.

Extract edlinit
USERID ogg, PASSWORD oracle
RmtHost ggsrv2, MgrPort 7810
RmtTask Replicat, Group rdlinit
Table HR.JOB_HISTORY;
Table HR.EMPLOYEES;
Table HR.JOBS;
Table HR.DEPARTMENTS;
Table HR.LOCATIONS;
Table HR.REGIONS;
Extract edlinit

No ambiente de destino ggsrv2, adicione a regra de acesso no arquivo de parametro do manager para permitir a comunicação com o ambiente de origem, salve e feche o arquivo.

edit param mgr
edit param mgr

ACCESSRULE: define as regras de acesso e controle de segurança para o manager.


PROG: Indica o nome do programa ao qual a regra se aplica. Neste caso, o caractere * indica que a regra se aplica a todos os programas ou processos que estão sendo executados.


IPADDR: Especifica o endereço IP permitido para acesso ao gerenciador.


ALLOW: Indica que o acesso com o endereço IP especificado é permitido. Outra opção é "DENY" ára negar o acesso.


Port 7810
PurgeOldExtracts ./dirdat/*, UseCheckpoints, MinKeepDays 5
ACCESSRULE, PROG *, IPADDR 192.168.18.84, ALLOW
PurgeOldExtracts ./dirdat/*, UseCheckpoints, MinKeepDays 5

Reinicie o processo manager para que carregue os parametros.

stop mgr
start mgr
info mgr
info mgr

Ainda no ambiente de destino ggsrv2, adicione o replicat.

Add Replicat rdlinit, SpecialRun
Add Replicat rdlinit, SpecialRun

Crie o arquivo de parametro do replicat para a carga inicial.

edit param rdlinit
edit param rdlinit

Adicione os parametros abaixo, salve e feche o arquivo.

Replicat: Indica a configuração do processo de replicação que criamos chamada rdlinit. Essa definição de replicação será responsável por aplicar os dados replicados no banco de dados de destino.


USERID, PASSWORD: Especifica as credenciais necessárias para acessar o banco de dados de destino. Nesse caso, o nome de usuário é "ogg" e a senha é "oracle". Essas credenciais serão usadas para autenticar o replicat junto ao banco de dados de destino.


DiscardFile, Purge: Define o arquivo de descarte (discard file) para a definição de replicação "rdlinit". O arquivo de descarte é usado para registrar registros descartados durante a replicação. Nesse caso, o arquivo de descarte é "rdlinit.dsc" localizado no diretório "./dirrpt". A opção "Purge" indica que o arquivo de descarte deve ser expurgado (excluído) automaticamente quando o replicat é iniciado.


Map, Target: Define o mapeamento das tabelas entre o banco de dados de origem (HR) e o banco de dados de destino (HRTRG). O caractere "*" é usado como curinga para indicar que todas as tabelas do schema HR devem ser mapeadas para o schema HRTRG no banco de dados de destino. Isso significa que todas as tabelas do schema HR serão replicadas e aplicadas no schema HRTRG do banco de dados de destino.

Replicat rdlinit
USERID ogg, PASSWORD oracle
DiscardFile ./dirrpt/rdlinit.dsc, Purge
Map HR.*, Target HRTRG.*;
Replicat rdlinit

No ambiente de origem ggsrv1, inicie o extract para a carga inicial.

start extract edlinit
start extract edlinit

Quando o status aparece como STOPPED, significa que foi concluído.

info extract edlinit
view report edlinit
sh tail ggserr.log
info extract edlinit

Repare no fim do log que os dados foram extraidos.

info extract edlinit
info extract edlinit

No ambiente de destino, verifique o log do replicat (repare que os dados foram carrgados) e analise o ggserr.log para verificar se houve qualquer erro.

view report rdlinit
sh tail ggserr.log
sh tail ggserr.log
sh tail ggserr.log
sh tail ggserr.log
 

Considerações finais


Nos dois últimos artigos aprendemos dois métodos diferentes de executar uma carga inicial, o file-to-replicat e o direct-load, ambas maneiras são muito boas dependendo do seu objetivo. No método file-to-replicat, executamos a carga inicial por meio de um arquivo chamado "extract trail file". Esse arquivo continha as alterações de dados capturadas pelo processo extract do GoldenGate. Durante a carga inicial o replicat lê esse arquivo trail e aplica as alterações de dados no nosso banco de destino. No método direct-load, a carga inicial de dados foi realizada diretamente no banco de destino sem a necessidade de um arquivo de extração intermediário. O replicat se conectou diretamente no banco de destino e carregou os dados necessários.


Prós

O file-to-replicat nos permite maior flexibilidade pois o arquivo trail pode ser criado a partir de diferentes fontes de dados permitindo extratir dados de várias fontes para carregar no banco de destino. Ele também nos permite um controle de versão pois o mesmo pode ser armazenado e usado para fins de backup, recuperação e auditoria permitindo manter um histórico das alterações de dados aplicadas no banco de destino.


O direct-load possui maior desempenho por não necessitar de criar e ler um arquivo de extração intermediário, ele carrega os dados diretamente no banco de destino, reduzindo a latência. Como não há necessidade de armazenar o arquivo trail intermediário, ele também reduz o consumo de espaço em disco.


Contras

O file-to-replicat pode ocupar espaço significativo no sistema de arquivos, especialmente se houver uma grande quantidade de dados sendo replicados a letência também pode ser um problema pois haverá um atraso entre a captura das alterações de dados e sua aplicação no banco de destino.


O método directo-load requer acesso direto ao banco de dados de origem para realizar a carga inicial. Isso pode limitar a capacidade de replicar dados de fontes que não estão diretamente conectadas ao replicat, por este motivo ele também tem menor flexibilidade caso você prpecise replicar dados de várias fontes.


A escolha entre esses métodos depende dos requisitos específicos do projeto, como fontes de dados, desempenho desejado e necessidades de flexibilidade e controle de versão.


Esta foi mais uma forma de fazer a replicação de dados via GoldenGate, espero que ajude!

Post: Blog2_Post
bottom of page