Utilizando Vários Grupos de Processos
Normalmente, apenas um grupo Extract é necessário para capturar com eficiência de um banco de dados. No entanto, dependendo dos valores de redo (transacional), ou dos dados e tipos de operação, você pode achar que é necessário adicionar um ou mais grupos Extract à configuração.
Da mesma forma, apenas um grupo Replicat normalmente é necessário para aplicar dados a um banco de dados de destino se estiver usando o Replicat no modo coordenado. No entanto, mesmo que em alguns casos você esteja usando o Replicat no modo coordenado, poderá ser necessário usar vários grupos Replicat. Se você estiver usando o Replicat no modo clássico e seus aplicativos gerarem um alto volume de transações, provavelmente precisará usar grupos Replicat paralelos.
Cada componente do Oracle GoldenGate, Extract, trail, DISTPATH e Replicat, é um módulo independente para que você possa combiná-los de maneiras que atendam às suas necessidades. Você pode usar várias trilhas e processos paralelos Extract e Replicat para lidar com um grande volume de transações, melhorar o desempenho, eliminar gargalos, reduzir a latência ou isolar o processamento de dados específicos.
O diagrama a seguir mostra algumas das maneiras pelas quais você pode configurar o Oracle GoldenGate para melhorar a velocidade de throughput e superar problemas de largura de banda da rede.

Os rótulos de imagem implicam o seguinte:
-
A: As Extrações Paralelas dividem a carga. Por exemplo, por esquema ou para isolar tabelas que geram extrações.
-
B: Um processo Extract com trilha local pode ser usado para filtragem, conversão e tolerância falsa de rede.
-
C: Vários DISTPATHS contornam as limitações de largura de banda de rede por processo para ativar o throughput de TCP/IP. Divida as instruções do parâmetro
TABLEentre elas. -
D: Os Replicats Paralelos aumentam o throughput para o banco de dados. Qualquer trilha pode ser lida por um ou mais Replicats. Divida as instruções
MAPentre elas.
Diretrizes para o Uso de Vários Grupos de Processos
Antes de configurar vários grupos de processamento, revise as diretrizes a seguir para garantir que a configuração produza os resultados esperados e mantenha a integridade dos dados.
Mantendo a Integridade dos Dados
Nem todas as cargas de trabalho podem ser particionadas em vários grupos e ainda preservar a atomicidade da transação original. Você deve determinar se os objetos em um grupo terão dependências de objetos em qualquer outro grupo, transacional ou não. Por exemplo, as tabelas para as quais a carga de trabalho atualiza rotineiramente a chave primária não podem ser facilmente particionadas dessa maneira. A replicação de DDL (se suportada para o banco de dados) não é viável nesse modo, nem o uso de alguns recursos SQLEXEC ou EVENTACTIONS que baseiam suas ações em um registro específico.
Se as tabelas não tiverem dependências de chave estrangeira ou atualizações para chaves primárias, talvez seja possível usar vários processos. Mantenha a DML relacionada no mesmo fluxo de processo para garantir a integridade dos dados.
Número de Grupos
O número de grupos de processos Extract e Replicat simultâneos que podem ser executados em um sistema depende da quantidade de memória do sistema disponível. Cada processo Extract e Replicat clássico precisa de aproximadamente 25 a 55 MB de memória ou mais, dependendo do tamanho das transações e do número de transações simultâneas. A interface de comando do Oracle GoldenGate suporta totalmente até 5.000 grupos simultâneos de Extract e Replicat (combinados) por instância do Oracle GoldenGate. No nível suportado, todos os grupos podem ser controlados e exibidos na íntegra com comandos como os comandos INFO e STATUS.
Além do nível suportado, as informações do grupo não são exibidas e podem ocorrer erros. O Oracle GoldenGate recomenda manter o número de grupos Extract e Replicat (combinados) em um nível mais gerenciável, como 100 ou menos, para gerenciar o ambiente com eficiência. O número máximo de grupos é controlado pelo parâmetro MAXGROUPS, que tem um valor padrão de 1000.
Para ambientes do Windows Server, o número de grupos de processos que podem ser executados é fortemente acoplado às configurações de memória de heap de desktop do Windows 'não interativas'. As configurações padrão para o heap da área de trabalho do Windows podem ser suficientes para executar um número muito pequeno de grupos de processos, mas à medida que você se aproxima de quantidades maiores de grupos de processos, mais de 60 ou mais, você precisará ajustar o ' valor não interativo do campo SharedSection no registro, com base nessas informações da Microsoft (memória de heap da área de trabalho do Windows), ou aumentar o número de homes do Oracle GoldenGate e distribuir o número total de grupos de processos desejados por esses homes. Observação: Para obter mais informações sobre como modificar a memória do Windows Desktop Heap, revise o seguinte documento da Base de Conhecimento da Oracle (ID de Documento 2056225.1).
Memória
O sistema deve ter espaço de permuta suficiente para cada processo Extract e Replicat do Oracle GoldenGate que estará em execução. Para determinar o espaço de permuta necessário:
-
Inicializar um Extract ou Replicat.
-
Execute o Admin Client.
-
Exiba o arquivo de relatório e localize a linha
PROCESS VM AVAIL FROM OS (min). -
Arredonde o valor para o próximo gigabyte completo, se necessário. Por exemplo, arredonde 1.76GB para 2 GB.
-
Multiplique esse valor pelo número de processos Extract e Replicat que estarão em execução. O resultado é a quantidade máxima de espaço de permuta que pode ser necessária
Consulte o parâmetro CACHEMGR na Referência de Parâmetros e Funções do Oracle GoldenGate para obter mais informações sobre como a memória é gerenciada.
Isolando Tabelas de Processamento Intensivo
É possível usar vários grupos de processos para suportar determinados tipos de tabelas que tendem a interferir no processamento normal e causar latência no destino. Por exemplo:
-
Pode ser que o processo Extract precise executar uma extração do banco de dados em decorrência do tipo de dados da coluna em decorrência de especificações de parâmetro ou para executar procedimentos SQL. Quando os dados devem ser extraídos do banco de dados, isso afeta o desempenho do processo Extract. Você poderá obter estatísticas de extração do comando
STATS EXTRACTse incluir o parâmetroSTATOPTIONS REPORTFETCHno arquivo de parâmetros do Extract. Em seguida, você pode isolar essas tabelas em seus próprios grupos Extract, supondo que a integridade transacional possa ser mantida. -
Em seu modo clássico, o processo Replicat pode ser uma origem de gargalos de desempenho porque é um processo de um único thread que aplica operações uma de cada vez usando SQL regular. Mesmo com a opção
BATCHSQLativada (consulte Referência de Parâmetros e Funções do Oracle GoldenGate) O Replicat pode levar mais tempo para processar tabelas que tenham transações grandes ou de longa execução, volume pesado, um número muito grande de colunas que são alteradas e dados LOB. Você pode então isolar essas tabelas em seus próprios grupos Replicat, supondo que a integridade transacional possa ser mantida.