Carreira Dev

7 ago, 2014

As 50 principais perguntas para a entrevista sobre o Goldengate – Parte 03: Perfomance

Publicidade

Dando continuidade à série de perguntas para a entrevista do Godengate, neste vamos abordar a performance.

***

Liste alguns parâmetros que podem ajudar a melhorar o desempenho da replicação.

Os parâmetros a seguir podem ser utilizados para melhorar o desempenho da replicação:

  • BATCHSQL
  • GROUPTRANSOPS
  • INSERTAPPEND

Quais são as áreas de monitoramento em replicação do Goldengate?

O lag e a latência do checkpoint dos processos Extract, pump e replicação normalmente são monitorados.

Para que o modo PASSTHRU é utilizado?

No modo pass-through, o processo Extract não procura as definições da tabela a partir do banco de dados ou de um arquivo de definições de dados. Isso aumenta o rendimento do data pump, uma vez que o objeto de definição de look-up é ignorado.

Quais são as razões mais comuns para um processo de extração demorar?

Algumas das possíveis razões são:

  • Transações em lote de longa duração em uma tabela.
  • Memória insuficiente no lado do Extract. As transações não comitadas de longas execução podem provocar a escrita de uma transação para uma área temporária (dirtmp) no disco. Uma vez que confirmada, ela é comitada a partir do local temporário no sistema de arquivos e convertido para fazer um trail nos arquivos.
  • Rede lenta ou sobrecarregada.

Quais são as razões mais comuns para o processo de replicação demorar?

Algumas das possíveis razões são:

  • Grande quantidade de transações em uma tabela específica.
  • Bloqueio de sessões no banco de dados de destino,no qual transações não-Goldengate também estão acontecendo na mesma tabela que o processamento de replicação.
  • Se estiver usando DBFS, a escrita e a leitura de arquivos trail podem ser lentas caso os parâmetros SGA não estejam sintonizados.
  • Para a replicação lenta, a latência pode ser devido à falta de índices no alvo.
  • A replicação ter que processar Update, excluir de linhas em tabelas muito grandes.

Meu processo de extração estava rodando bem durante um bom tempo. De repente ele caiu. Comecei os processos de extrato após uma hora. O que acontecerá com minhas transações comitadas ocorridas no banco de dados durante a última hora?

O checkpoint do OGG fornece a tolerância a falhas e se certifica de que a operação marcada para comitada é capturada apenas uma vez. Mesmo que o extrato tenha diminuído de forma anormal, quando você iniciar o processo novamente, ele vai ler o arquivo de ckeckpoint para fornecer a consistência de leitura e a recuperação de transações.

Configurei o processo de captura integrada do Oracle GoldenGate usando os valores padrão. Conforme a carga de dados aumenta, vejo que o extrato começa atrasado por uma hora (ou mais) e degrada o desempenho do banco de dados. Como você vai resolver esse problema de desempenho?

Quando estiver operando no modo de captura integrado, você deve se certificar de que atribuiu memória suficiente para STREAMS_POOL_SIZE. Um STREAMS_POOL_SIZE menor que o normal ou limitando o streams pool para usar uma quantidade específica de memória pode causar problemas.

A melhor prática é alocar STREAMS_POOL_SIZE no nível da instância e alocar o MAX. SGA no nível do processo GG como abaixo:

SQL> alter system set STREAMS_POOL_SIZE=3G

TRANLOGOPTIONS INTEGRATEDPARAMS (MAX_SGA_SIZE 2048, PARALLELISM 4)

Por que você separaria as tabelas em uma configuração de replicação? Como você faria isso?

No OGG, você pode configurar a replicação para os dados no nível de esquema ou no nível de tabela usando o parâmetro TABLE de extrato e o parâmetro MAP  da replicação.

Para replicar todo o banco de dados, você pode listar todos os esquemas do mesmo no arquivo de parâmetro extrato/replicação.

Dependendo da quantidade de geração de redo, você pode dividir as tabelas em um esquema de extratos e replicações múltiplas para melhorar o desempenho da replicação de dados. Você pode, também, como uma forma alternativa, agrupar um conjunto de tabelas na configuração pela funcionalidade do aplicativo.

Alternativamente, pode ser necessário que você remova as tabelas que tenham operações de longa execução em um processo de extrato separado para eliminar o lag nas outras tabelas.

Vamos dizer que você tenha um esquema chamado SCOTT e que ele tenha 100 cem tabelas.

Dessas cem tabelas, 50 estão sendo intensamente utilizadas pelo aplicativo.

Para melhorar o desempenho geral da replicação, você cria 3 extratos e 3 replicações da seguinte forma:

Ext_1/Rep_1 -> 25 tabelas
Ext_2/Rep_2 -> 25 tabelas
Ext_3/Rep_3 -> 50 tabelas
Ext_1/Rep_1 e Ext_2/Rep_2 contêm 25 tabelas cada uma, que são fortemente utilizadas ou geram mais redo.
Ext_3/Rep_3 contém todas as outras 50 tabelas que estão sendo menos usadas.

***

Artigo traduzido pela Redação iMasters com autorização do autor. Publicado originalmente em http://www.vitalsofttech.com/careers/goldengate-interview-questions/#whistle-goldengate-interview-questions-12856-443734854