Numero sequenza di commit (CSN)

Quando si utilizza Oracle GoldenGate, potrebbe essere necessario fare riferimento a un CSN (Commit Sequence Number). Un CSN è un identificativo che Oracle GoldenGate crea per identificare una transazione allo scopo di mantenere la coerenza delle transazioni e l'integrità dei dati. Identifica in modo univoco un point-in-time in cui una transazione esegue il commit nel database.

Il CSN può essere richiesto per posizionare Extract nel log delle transazioni, riposizionare Replicat nel trail o per altri scopi. Viene restituito da alcune funzioni di conversione ed è incluso nei report e nell'output di alcuni comandi.

Un CSN è un identificativo in aumento monotono generato da Oracle GoldenGate che identifica in modo univoco un point-in-time in cui una transazione esegue il commit nel database. Lo scopo è quello di garantire la coerenza transazionale e l'integrità dei dati man mano che le transazioni vengono replicate dall'origine al target. Ogni tipo di sistema di gestione del database genera un tipo di numero di serie univoco al completamento di ogni transazione, che identifica in modo univoco il commit di tale transazione. Ad esempio, Oracle RDBMS genera un numero di modifica del sistema, che è un numero di sequenza in aumento monotono assegnato a ogni evento da Oracle RDBMS. Il CSN acquisisce le stesse informazioni identificative e le rappresenta internamente come una serie di byte, ma il CSN viene elaborato in modo indipendente dalla piattaforma. Un confronto di due numeri CSN, ciascuno dei quali è vincolato a un record di commit delle transazioni nello stesso flusso di log, indica in modo affidabile l'ordine in cui le due transazioni sono state completate.

Il CSN viene controllato in modo incrociato con l'ID transazione (visualizzato come XID nell'output informativo di Oracle GoldenGate). La combinazione XID-CSN identifica in modo univoco una transazione anche nei casi in cui sono presenti più transazioni che eseguono il commit contemporaneamente e quindi hanno lo stesso CSN. Ad esempio, ciò può verificarsi in un ambiente Oracle RAC, in cui esiste parallelismo e concorrenza di transazioni elevate.

Il valore CSN viene memorizzato come token in qualsiasi record trail che identifica il commit di una transazione. Questo valore può essere recuperato con la funzione di conversione della colonna @GETENV e visualizzato con l'utility Logdump.