GETUPDATEBEFORES | IGNOREUPDATEBEFORES

Válido Para

Extract e Replicat

Descrição

Use os parâmetros GETUPDATEBEFORES e IGNOREUPDATEBEFORES para controlar se as imagens anteriores das colunas nas operações UPDATE serão ou não incluídas nos registros processados pelo Oracle GoldenGate. Antes de as imagens conterem os detalhes da coluna que existia antes de uma linha ser atualizada.

(Somente Oracle) O Oracle GoldenGate captura os valores pré-alteração e pós-alteração para operações de atualização em um único registro de atualização unificado por padrão. Para outros bancos de dados, somente os valores pré-alteração são gravados no arquivo de trilha. Em versões anteriores, o padrão era capturar apenas o valor pós-alteração. A partir desta release, as instruções SQL personalizadas (SQLEXEC) agora só são executadas uma vez por operação de atualização com o novo formato de atualização padrão. Antes desta versão, as instruções SQL personalizadas seriam executadas duas vezes, uma ao encontrar o valor pré-alteração e outra ao encontrar o valor pós-alteração. Se você estiver usando o Oracle GoldenGate com o formato de atualização unificada, poderá informar explicitamente o valor anterior ou posterior à instrução SQL personalizada usando as funções @BEFORE, @AFTER e @BEFOREAFTER. Embora o Oracle GoldenGate possa usar esse formato de atualização por padrão, a câmera de formato antigo será preservada se houver parâmetros conflitantes que teriam gerado anteriormente dois registros de pré e pós-alteração separados. Nesses casos, uma mensagem informativa é registrada no arquivo de relatório.

Use o parâmetro GETUPDATEBEFORES da seguinte forma:

Você pode comparar imagens anteriores com imagens posteriores para identificar os resultados líquidos de uma transação ou executar outros cálculos delta. Por exemplo, se um campo BALANCE for $100 antes de uma atualização e $120 depois, uma comparação mostrará a diferença de $20. Você pode usar as funções de conversão de colunas do Oracle GoldenGate para executar as comparações e os cálculos.

Para fazer referência a imagens anteriores no arquivo de parâmetros, use a função de conversão @BEFORE. Por exemplo:

COLMAP (previous = @BEFORE (balance))

O GETUPDATEBEFORES é necessário ao usar o recurso CDR (Conflict Detection and Resolution). Consulte Detecção e Resolução Manuais de Conflitos para obter mais informações sobre CDR.

Os parâmetros GETUPDATEBEFORES e IGNOREUPDATEBEFORES são específicos da tabela. Um parâmetro permanece em vigor para todas as instruções TABLE ou MAP subsequentes, até que o outro parâmetro seja encontrado.

Como você pode ativar ou desativar seletivamente esses parâmetros entre instruções MAP, poderá ativá-los ou desativá-los para diferentes threads de um Replicat coordenado. Especifique os threads GETUPDATEBEFORES em um conjunto de instruções MAP e especifique os threads IGNOREUPDATEBEFORES em outro conjunto de instruções MAP.

Limitações para GETUPDATESBEFORES:

Padrão

IGNOREUPDATEBEFORES

Sintaxe

GETUPDATEBEFORES | IGNOREUPDATEBEFORES

Exemplo

Este exemplo mostra como você pode aplicar GETUPDATEBEFORES e IGNOREUPDATEBEFORES seletivamente a diferentes instruções MAP, cada uma representando um thread diferente de um Replicat coordenado.

GETUPDATEBEFORES
MAP sales.cust, TARGET sales.cust, THREAD (1);
MAP sales.ord, TARGET sales.ord, THREAD (2);
IGNOREUPDATEBEFORES
MAP sales.loc, TARGET sales.loc, THREAD (3);