Nesta série de posts, irei abordar um assunto que as vezes ainda é polêmico para muitos profissionais que trabalham com o Oracle GoldenGate, as ferramentas gráficas.
Será que vale a pena investir tempo e dinheiro para adquirir esses conhecimentos? Quais são os prós e contras destas ferramentas, quais as principais vantagens e desvantagens? E qual a tendência para os próximos anos?
E no último capítulo irei falar sobre o tão “misterioso” mundo dos microserviços, isso mesmo, o GoldenGate agora tem uma nova arquitetura chamada de OGG MA (Oracle GoldenGate MicrosServices Architecture), aliás, já faz um tempo que existe, entretanto, por experiência (única e exclusivamente minha..rs), tenho notado que o assunto começou a chegar no Brasil na metade do ano passado, mas muitos profissionais ainda tem dúvidas ou não entendem muito bem os detalhes, como ela funciona e porque ela foi criada.
A seguir está a lista das ferramentas e a ordem dos próximos posts:
Capítulo 3 – OGG Plug-in for Oracle Enterprise Manager
Capítulo 4 – OGG Veridata
Capítulo 5 – OGG MA (Oracle GoldenGate Microservices Architecture) – PARTE I
OGG MA (Oracle GoldenGate Microservices Architecture) – PARTE II
Capítulo 4 – OGG Veridata
Neste capítulo, iremos falar sobre a ferramenta utilizada para garantir a consistência e integridade dos dados replicados pelo GoldenGate. O Oracle GoldenGate Veridata é uma solução de comparação e reparo de dados de alta performance que identifica, reporta e corrige discrepâncias de dados entre bancos de dados heterogêneos, ou seja, quando existem dados sem sincronismo (out-of-sync), sem interromper os processos de negócios em andamento.
O OGG Veridata consiste dos seguintes componentes:
OGG Veridata Server: É o principal componente do Veridata sendo responsável por atividades como: coordenação das atividades do Veridata Server com os agentes, comparação dos dados, confirmar que os dados não estão sincronizados, ordenação das linhas (o padrão é a ordenação no banco de dados onde está o agente), gerar um report para revisão dos dados.
OGG Veridata Web User Interface: É a interface de interação baseada na Web, utilizada para a configuração da maioria das funcionalidades do Veridata, como: configurar os objetos e regras de comparação, iniciar as comparações, revisar os status e resultados das comparações, reparar e revisar os dados fora de sincronismo (out-of-sync data).
OGG Veridata Repository: É o banco de dados utilizado como repositório do OGG Veridata Server para armazenar seus objetos, informações e preferências dos ambientes que os usuários criam ao usar a interface da Web do OGG Veridata. Mas, um detalhe importante, é que os dados fora de sincronismo não são armazenados neste repositório, e sim em arquivos no file system do OGG Veridata Server. Os seguintes bancos de dados são suportados como repositório:
- Oracle
- MySQL
- Microsoft SQL Server
OGG Veridata Command Line Utilities: São os utilitários que podem ser utilizados para executar tarefas, sendo eles:
- vericom: Permite que você execute comparações usando programas automatizados.
- veridata_scripting: Mapeia objetos de comparação e regras em um arquivo XML e carrega no repositório.
- reportutil: Oferece suporte à exibição de arquivos de relatórios criptografados e dados fora de sincronia.
OGG Veridata Agent: É o processo que fica no lado dos ambientes onde o OGG Veridata irá monitorar os dados, sendo responsável por executar as seguintes funções de coleta no banco de dados onde está configurado: comparação de registros utilizando hash (initial comparison), buscar e atualizar registros para reparar dados fora de sincronia (out-of-sync), retorna detalhes em nível de coluna para linhas fora de sincronia (out-of-sync).
Como o OGG Veridata realiza a comparação dos dados?
As comparações são dividas nas seguintes etapas:
- Comparação inicial (initial comparison/row hash): as linhas são retornadas das tabelas de origem e destino com uma query, caso os bancos tiverem tipos de dados diferentes, as colunas serão convertidas em um formato padronizado para comparação. O OGG Veridata compara os registros através da comparação de todas as colunas de uma chave primária (PK), literalmente, valor por valor, e usando um valor hash para todas as colunas que não tem uma chave. Com esse mecanismo de hash, o dado fica mais robusto e menor para ser transferido pela rede e posteriormente utilizado para determinar se as linhas da origem e destino são iguais ou não.
- Linhas talvez fora de sincronismo (Maybe out-of-sync – MOOS): nesta etapa é realizado uma avaliação para verificar se existe alguma divergência, as linhas que não correspondem são colocadas na fila do MOOS. Há chances de que essas linhas não correspondam na origem e no destino devido a transações em trail que ainda não foram aplicadas no destino.
- Confirmar linhas fora de sicronismo (Confirm out-of-sync COOS): é verificado de forma mais precisa e confirmado os casos onde existem divergência de dados entre os ambientes. Esta etapa envolve consultas predicadas na origem ou no destino usando as linhas extraídas da fila MOOS, e o status é avaliado como um dos seguintes:
– Em andamento: (In-flight): o Veridata não pôde confirmar se as linhas não estão sincronizadas devido a uma atualização na mesma linha após a etapa de comparação inicial.
– Sincronizado (In-sync): as duas linhas estão sincronizadas.
– fora de sincronia: (out-of–sync): as duas linhas estão fora de sincronia
Além de tudo isso, ainda existe uma feature bem interessante chamada de “Delta processing“, onde o OGG Veridata detecta quais blocos de dados no banco de dados foram alteradas desde a última comparação, e só compara as linhas desses blocos. As linhas que estão em blocos onde não houve alteração, ignoradas. O default é comparar todas as linhas, independentemente de terem sido alteradas ou não.
O OGG Veridata também possui os mesmos pré-requisitos do GoldenGate com relação a unicidade dos dados, ou seja, depende de um identificador único do registro para comparação. Desta forma as tabelas precisam ter pelo menos uma das opções abaixo:
- Primary key (PK)
- Unique key (UK)
- User-defined key (Pseudo key)
Quais bancos de dados são suportados?
O Oracle GoldenGate Veridata oferece suporte aos seguintes bancos de dados para comparações:
- DB2 for i, DB2 LUW, and DB2 z/OS
- Enscribe
- Informix
- NonStop SQL/MP
- Oracle
- SQL Server
- Sybase Adaptive Server Enterprise (ASE)
- Teradata
- Big Data Hive
Oracle Fusion Middleware Infrastructure
Para realizar a instalação/deploy do OGG Veridata é necessário ter um ambiente com o “Oracle Fusion Middleware Infrastructure“, porque ele precisa do Oracle WebLogic Server para funcionar. Abaixo podemos verificar um exemplo de uma configuração para esta finalidade:
Na próxima, imagem temos a tela inicial para login do OGG Veridata, note que além do IP existe a porta default que é a 8830:
Ao se logar no OGG Veridata, podemos verificar a tela apresentada abaixo, onde no centro encontramos um gráfico informando o status da monitoração e validação dos ambientes, caso exista algum problema, já é possível identificar nesta tela. No canto esquerdo, é onde encontramos as opções para gerenciamento dos recursos e criação das comparação que serão monitoradas pela ferramenta.
- Running Jobs
- Finished Jobs
- Repair Jobs
- Configuration
- Run Execute Job
- Reports
Quando uma divergência é identificada, o gráfico na tela principal é atualizado e assim podemos verificar facilmente que existe algum problema no ambiente ou se existe algum job de comparação sendo executado naquele momento:
Etapas de Configuração
Basicamente as principais etapas para configuração/criação de comparações que serão utilizados no OGG Veridata, são:
- Criar as conexões dos ambientes que serão verificados (origem e destino)
- Criar grupos de comparação com mapeamento de schemas e tabelas
- Criar perfis mais específicos de configurações (se necessário)
- Criar um job para executar a comparação
- Executar o job de comparação
- Revisar os resultados gerados pelo job (logs e reports)
- Executar a reparação dos dados
A seguir, vou mostrar alguns detalhes dessas etapas de configurações.
Antes de qualquer coisa é necessário configurar o OGG Veridata Server para se comunicar com o OGG Veridata Agent, onde informamos os dados do servidor e qual o banco em que queremos fazer a configuração, e note que é neste momento que podemos confirmar que é possível configurar para ambiente heterogêneos.
Após a configuração da conexão, podemos verificá-las utilizando a opção no canto esquerdo, “Configuration –> Connection Configuration”, onde visualizamos todos os ambientes que temos configurado:
A próxima etapa é criar os grupos de comparação, informar o schema e as tabelas que serão monitoradas, criar um mapeamento entre tabela de origem e destino, para que esse fluxo seja monitorado e analisado se existem problemas de divergência de dados. Isso é chamado de configuração de pares de comparação (Compare Pair Configuration). Abaixo podemos ver um exemplo de um par de comparação (tabelas de origem x tabelas de destino).
Podem ser configurados vários “Compare Pair” na mesma solução:
Caso qualquer problema nos dados sejam identificados, além de ser enviado uma notificação pela ferramenta, também podemos verificar no painel os detalhes do que está divergente, tabelas, registros. E podemos escolher a opção de gerar o SQL para correção e executarmos manualmente (clicando na opção “Generate SQL”), ou deixar que a própria ferramenta faça a correção automaticamente (clicando na opção “Run Repair”)
Performance e Histórico
Outra opção bem legal dessa ferramenta é que podemos verificar o histórico das execuções dos jobs de comparação e analisar as métricas de performance, como está na figura abaixo, além dos números podemos ter a informação graficamente:
Então é isso, chegamos no fim deste artigo, mas isso não é o fim dos recursos que essa ferramenta possuí, na verdade é só o começo e uma pequena introdução.
Viu como não é tão complicado assim essa ferramenta? E isso foi só o começo, uma pequena introdução e podemos ver que O OGG Veridata possui recursos e um mecanismo de validação muito interessantes e eficiente, mas ainda é pouco utilizado no mercado, talvez por conta dos custos de licenciamento (que não é barato, diga-se de passagem), além disso, algumas empresas se arriscam em criar soluções caseiras, mesmo não sendo tão performático na maioria dos casos.
Para saber mais sobre o licenciamento destas ferramentas gráficas, verifique no Oracle Technology Global Price List (Setembro/2020):
https://www.oracle.com/assets/technology-price-list-070617.pdf
Documentação:
https://docs.oracle.com/goldengate/1213/gg-veridata/GVDAD/about_ogg_veridata.htm#GVDAD129
https://docs.oracle.com/goldengate/1213/gg-veridata/index.html
https://www.oracle.com/a/ocom/docs/middleware/veridata-datasheet.pdf
Gostou do Post?
Quer saber mais? Acesse nossos outros posts clicando aqui ou acesse e se inscreva em nosso canal!
Obrigado Pessoal e até a próxima!
Abs,
Gilson Martins.