Arquitetura e funcionamento do Oracle GoldenGate
Atualizado: 25 de jun.
Bem-vindo(a) ao dehandson, um espaço dedicado a compartilhar experiências, especialmente para DBAs e Engenheiros de Dados. Aqui, apresento uma ferramenta (que também estou aprendendo a utilizar) poderosa e essencial: o Oracle GoldenGate. Se você busca eficiência na transferência de dados em tempo real entre bancos de dados o OGG pode ser a ferramenta ideal.
Neste texto irei explorar os benefícios e as possibilidades oferecidas pelo Oracle GoldenGate, ele é capaz de transformar a forma como lidamos com a replicação de dados e a integração de sistemas heterogêneos. - Ao final dessa leitura, você será capaz de entender os prós e contras em utilizar o Oracle GoldenGate além de ter uma visão geral sobre a sua arquitetura e terá a oportunidade de colocar a mão na massa e ver o seu funcionamento na prática.
Com o volume de dados cada dia maior, como DBA ou Engenheiro de Dados, aprender a tecnologia OGG pode trazer uma série de benefícios e vantagens para sua carreira e para a organização em que você trabalha.

O que é o GoldenGate?
O Oracle GoldenGate é uma solução avançada de replicação de dados em tempo real que permite a transferência de dados entre diferentes bancos de dados de forma contínua e confiável. Ele atua como uma ponte que conecta bancos de dados heterogêneos, garantindo que as informações sejam replicadas de maneira consistente e segura.
Com o GoldenGate, é possível capturar e replicar dados em tempo real de várias fontes de dados, como bancos de dados Oracle, bancos de dados não Oracle e até mesmo sistemas de arquivos. Ele oferece suporte a diferentes métodos de captura, incluindo a leitura de redo logs e logs de transação, garantindo a sincronização eficiente dos dados.
Replicação de Dados em Tempo Real
A capacidade de replicar dados em tempo real entre diferentes bancos de dados é essencial para muitas empresas que desejam garantir a consistência e a integridade de suas informações. É nesse contexto que o Oracle GoldenGate se destaca como uma solução robusta de replicação de dados oferecida pela Oracle.
Benefícios do GoldenGate
A utilização do Oracle GoldenGate traz diversos benefícios para as empresas que precisam replicar dados de forma confiável e em tempo real. Alguns dos principais benefícios incluem:
Minimização do tempo de inatividade durante as migrações do banco de dados: Com o GoldenGate, é possível migrar dados entre bancos de dados sem interromper as operações em andamento. Isso reduz o tempo de inatividade e garante a continuidade dos negócios durante o processo de migração.
Integração de dados em tempo real para suportar análises em tempo real: O GoldenGate permite que as empresas obtenham insights valiosos por meio de análises em tempo real. Com a replicação contínua de dados, é possível tomar decisões baseadas em informações atualizadas e relevantes.
Facilitação da replicação de dados entre bancos de dados heterogêneos: O GoldenGate é capaz de lidar com bancos de dados heterogêneos, permitindo que as empresas integrem diferentes sistemas de forma eficiente. Isso é especialmente útil quando há a necessidade de consolidar dados de várias fontes em um único banco de dados centralizado.
Oferecimento de alta disponibilidade e recuperação de desastres: Com o GoldenGate, é possível criar soluções de alta disponibilidade e recuperação de desastres robustas. A replicação contínua de dados garante que haja cópias atualizadas dos dados em sistemas secundários, prontos para assumir em caso de falha do sistema primário.
Componentes principais do GoldenGate
O Oracle GoldenGate é composto por diferentes componentes, cada um desempenhando um papel específico no processo de replicação confiável de dados. Esses componentes são divididos em processos, arquivos e dados. Vamos explorar cada um deles:
Processos
Manager: O Manager é responsável por gerenciar e controlar todos os processos do Oracle GoldenGate. Ele fornece uma interface centralizada para monitorar e administrar a replicação de dados.
Extract: O Extract é responsável por extrair os dados das fontes de dados, como bancos de dados transacionais, logs de transações ou arquivos de registro. Ele captura as transações em tempo real e as envia para processamento adicional.
Data pump: O Data pump é responsável por receber os dados capturados pelo Extract e convertê-los em um formato adequado para o transporte. Ele compacta e criptografa os dados antes de enviá-los para o destino.
Collector: O Collector recebe os dados do Data pump e os envia para o destino de replicação. Ele garante a entrega confiável dos dados, tratando possíveis interrupções na comunicação.
Replicat: O Replicat é responsável por aplicar as transações recebidas pelo Collector no banco de dados de destino. Ele reconstrói as transações em tempo real, mantendo a consistência dos dados replicados.
Arquivos
Extract files: São arquivos de configuração do Oracle GoldenGate para o processo de Extract. Eles definem as fontes de dados, como tabelas específicas ou logs de transações, que serão capturados e replicados.
Wallet: O Wallet é um arquivo de segurança que armazena informações de autenticação e criptografia usadas pelo Oracle GoldenGate para garantir a segurança dos dados durante o transporte.
Dados
Checkpoints: Os checkpoints são marcos que registram o progresso da replicação de dados. Eles são usados para rastrear o ponto em que a replicação foi interrompida, permitindo a retomada a partir desse ponto em caso de falhas ou reinicializações.
Nota: Data Pump, Wallet e Checkpoints são opcionais porém altamente recomendados.
Parameter files controlam a funcionalidade dos processos do GoldenGate. Os tipos de parameter files são Global Files ou Run-time parameter e por default são salvos no dirprm directory.
Commit sequence number (CSN) é um identificador que o Oracle GG constrói ao identificar uma transação na origem.
Trails, apenas um processo extract pode gravar em um trail. O trail pode ser lido por um Data pump ou um replicat, por default são armazenados em ./dirdat.
Configuração do GoldenGate
A configuração do Oracle GoldenGate é realizada por meio de arquivos de parâmetros e comandos do GGSCI (GoldenGate Software Command Interface). Os arquivos de parâmetros definem as configurações para os processos do GoldenGate, incluindo informações sobre a origem dos dados, o destino da replicação, filtros e transformações necessárias.
Os comandos do GGSCI são usados para gerenciar e monitorar os processos do GoldenGate. Eles permitem que os administradores iniciem, parem, pausem e verifiquem o status da replicação em tempo real. Podem ser digitados linha a linha ou bloco de script. O script aceita comandos shell de sistema operacional.
Principais conceitos do GoldenGate
Além dos componentes e da configuração, existem alguns conceitos-chave que são importantes para entender o funcionamento do Oracle GoldenGate:
Trail files: Os trail files são arquivos onde os dados capturados e transformados são armazenados. Eles servem para fins de recuperação de desastres, auditoria e também como fonte de dados para análises posteriores.
Checkpoints: Os checkpoints são marcadores usados para rastrear o progresso da replicação. Eles garantem a consistência dos dados durante a recuperação após falhas, permitindo que o processo de replicação seja retomado a partir de onde parou.
DDL replication: O GoldenGate possui a capacidade de replicar alterações de estrutura do banco de dados (DDL), como criação de tabelas, alterações de colunas, entre outros. Isso permite manter a consistência entre os bancos de dados de origem e destino, garantindo que a estrutura dos dados seja mantida durante a replicação.
Conflict detection and resolution: Durante a replicação de dados, é possível que ocorram conflitos de dados entre as fontes e os destinos. O GoldenGate oferece recursos avançados de detecção e resolução de conflitos, permitindo a configuração de regras personalizadas para lidar com essas situações e garantir a integridade dos dados replicados.
Processo Inicial de Carga
Antes de iniciar a replicação em tempo real, é necessário realizar o processo inicial de carga para garantir que os dados iniciais sejam replicados para o destino. O processo inicial de carga envolve as seguintes etapas:
Exportação dos dados
Inicialmente, os dados da fonte de dados são exportados para um formato adequado, como um arquivo de despejo (dump file). Esse arquivo contém os dados completos que serão replicados.
Importação dos dados
Em seguida, os dados exportados são importados para o banco de dados de destino usando um mecanismo de carga apropriado, como o Oracle Data Pump.
Essa etapa garante que o banco de dados de destino seja preenchido com os dados iniciais antes de iniciar a replicação em tempo real.
Configuração do GoldenGate
Após a importação dos dados, o Oracle GoldenGate é configurado para iniciar o processo de replicação em tempo real. Isso envolve a definição dos parâmetros de configuração, como as fontes de dados, o destino da replicação, os filtros e as transformações necessárias.
Captura inicial dos dados
Após a configuração, o Oracle GoldenGate inicia a captura dos dados iniciais da fonte de dados. Isso é feito por meio do componente Extract, que lê os dados do banco de dados de origem e os armazena em um arquivo de trail (trail file) temporário.
Aplicação dos dados
O componente Replicat é acionado para aplicar os dados capturados na área de staging do banco de dados de destino. Nessa etapa, os dados são inseridos, atualizados ou excluídos no banco de dados de destino, garantindo a consistência entre a fonte e o destino.
Sincronização inicial
Após a aplicação dos dados iniciais, o Oracle GoldenGate estabelece um ponto de sincronização inicial. Isso é feito por meio de checkpoints, que marcam o progresso da replicação. O ponto de sincronização inicial indica que a carga inicial foi concluída e que a replicação em tempo real pode ser iniciada.

Processo de sincronização contínua dos dados
Após o processo inicial de carga, o Oracle GoldenGate garante a sincronização contínua dos dados em tempo real por meio dos seguintes componentes e processos:
Extract
O componente Extract continua a capturar os dados em tempo real da fonte de origem. Ele monitora as transações, como os redo logs ou logs de transação, para obter as alterações de dados mais recentes. Essas transações são capturadas e enviadas para processamento adicional.
Data pump
Os dados capturados pelo Extract são encaminhados para a área de staging por meio do componente Data pump. Aqui, os dados podem ser filtrados ou transformados conforme necessário, garantindo que apenas as informações relevantes sejam replicadas. O Data pump também compacta e criptografa os dados para o transporte seguro.
Collector
O componente Collector recebe os dados transformados do Data pump e os envia para o destino de replicação. Ele garante a entrega confiável dos dados, gerenciando possíveis interrupções na comunicação e garantindo que os dados cheguem ao destino de maneira consistente.
Replicat
O componente Replicat é responsável por aplicar as transações recebidas pelo Collector no banco de dados de destino. Ele reconstrói as transações em tempo real, inserindo, atualizando ou excluindo os dados no destino. Dessa forma, a consistência entre a fonte e o destino é mantida continuamente.
Manager
O componente Manager desempenha um papel central no processo de sincronização contínua dos dados. Ele controla e monitora todos os processos do Oracle GoldenGate, fornecendo uma interface centralizada para gerenciar a replicação. Com o Manager, é possível iniciar, parar, pausar e verificar o status da replicação de forma fácil e conveniente.

Ao longo desse processo, os dados são capturados em tempo real, transformados, se necessário, e replicados para o banco de dados de destino. O Oracle GoldenGate utiliza trail files para armazenar as transações replicadas, permitindo a recuperação de desastres, auditoria e análises posteriores. Esse ciclo contínuo de sincronização garante que os dados estejam sempre atualizados e consistentes entre a fonte e o destino, garantindo alta disponibilidade e integridade dos dados em todo o processo.
É importante observar que existem outros métodos de carga inicial e sincronização dos dados, optei por estes que são mais comuns para entendimento geral. E em outras postagens eu posso abordar outros métodos.
Exemplos de casos de uso
O Oracle GoldenGate é amplamente utilizado em uma variedade de casos de uso, incluindo:
Integração de dados em tempo real para análise de negócios
As empresas podem utilizar o GoldenGate para integrar dados de diferentes fontes em tempo real, permitindo análises mais precisas e atualizadas para suportar decisões estratégicas.
Replicação de dados para alta disponibilidade e recuperação de desastres
O GoldenGate é uma solução confiável para criar ambientes de alta disponibilidade e recuperação de desastres, garantindo que os dados estejam sempre disponíveis mesmo em situações de falhas ou interrupções.
Consolidação de dados de várias fontes para relatórios centralizados
O GoldenGate permite a consolidação de dados de várias fontes em um único banco de dados centralizado, facilitando a geração de relatórios e a análise abrangente das informações.
Pontos-chave para lembrar
Ao considerar a replicação de dados em tempo real, é importante lembrar dos seguintes pontos-chave sobre o Oracle GoldenGate:
O Oracle GoldenGate é uma solução de replicação de dados em tempo real da Oracle, projetada para garantir a consistência e a integridade dos dados replicados.
Os principais componentes do GoldenGate são o Extract, Pump, Replicat e Manager, que trabalham em conjunto para capturar, transformar e aplicar os dados replicados.
A configuração do GoldenGate é realizada por meio de arquivos de parâmetros e comandos do GGSCI, permitindo personalizar e controlar o processo de replicação.
O Oracle GoldenGate oferece uma solução robusta e flexível para a replicação de dados em tempo real, atendendo às necessidades das empresas que buscam alta disponibilidade, recuperação de desastres e integração de dados eficiente. Sua capacidade de trabalhar com bancos de dados heterogêneos e fornecer análises em tempo real o tornam uma escolha poderosa para empresas que dependem de dados atualizados e confiáveis.
Agora que entendemos o funcionamento e arquitetura do Oracle GoldenGate, no próximo post, vamos colocar a mão na massa, irei abordar a sua instalação e configuração. Vamos nessa?!
Referência:
https://docs.oracle.com/goldengate/c1230/gg-winux/GGCON/getting-started-oracle-goldengate.htm#GGCON-GUID-04C49EF5-4260-4437-9E8C-8F7D4483C5C6