Número de Sequência de Commit (CSN)
Ao trabalhar com o Oracle GoldenGate, talvez você precise consultar um CSN (Commit Sequence Number). CSN é um identificador construído pelo Oracle GoldenGate para identificar uma transação e ter a finalidade de manter a consistência transacional e a integridade dos dados. Ele identifica exclusivamente um ponto no tempo em que uma transação é submetida a commit no banco de dados.
O CSN pode ser necessário para posicionar o processo Extract no log de transações, para reposicionar o processo Replicat na trilha ou para outras finalidades. É retornado por algumas funções de conversão e é incluído em relatórios e em determinada saída de comando.
Um CSN é um identificador monotonicamente crescente gerado pelo Oracle GoldenGate que identifica exclusivamente um ponto no tempo em que uma transação é submetida a commit no banco de dados. O objetivo é garantir a consistência transacional e a integridade dos dados à medida que as transações são replicadas da origem para o destino. Cada tipo de sistema de gerenciamento de banco de dados gera algum tipo de número de série exclusivo próprio na conclusão de cada transação, que identifica exclusivamente o commit dessa transação. Por exemplo, o Oracle RDBMS gera um Número de Alteração do Sistema, que é um número de sequência monotonicamente crescente atribuído a cada evento pelo Oracle RDBMS. O CSN captura essa mesma informação de identificação e a representa internamente como uma série de bytes, mas o CSN é processado de maneira independente da plataforma. Uma comparação de quaisquer dois números de CSN, cada um dos quais está vinculado a um registro de confirmação de transação no mesmo fluxo de log, indica de forma confiável a ordem em que as duas transações foram concluídas.
O CSN é verificado cruzadamente com o ID da transação (exibido como XID na saída informativa do Oracle GoldenGate). A combinação XID-CSN identifica exclusivamente uma transação mesmo nos casos em que há várias transações que são confirmadas ao mesmo tempo e, portanto, têm o mesmo CSN. Por exemplo, isso pode acontecer em um ambiente Oracle RAC, onde há paralelismo e alta simultaneidade de transações.
O valor do CSN é armazenado como um token em qualquer registro de trilha que identifique o commit de uma transação. Esse valor pode ser recuperado com a função de conversão de coluna @GETENV e visualizado com o utilitário Logdump.