Número de secuencia de confirmación (CSN)
Al trabajar con Oracle GoldenGate, puede que necesite hacer referencia a un número de secuencia de confirmación (CSN). Un CSN es un identificador que construye Oracle GoldenGate para identificar una transacción con el fin de mantener la consistencia transaccional y la integridad de los datos. Identifica de forma única un punto en el tiempo en el que una transacción se confirma en la base de datos.
El CSN puede ser necesario para posicionar Extract en el registro de transacciones, para cambiar la posición de Replicat en la pista o para otros fines. Se devuelve mediante algunas funciones de conversión y se incluye en informes y cierta salida de comando.
Un CSN es un identificador que aumenta de forma monótona generado por Oracle GoldenGate que identifica de forma única un punto en el tiempo en el que una transacción se confirma en la base de datos. Su objetivo es garantizar la consistencia transaccional y la integridad de los datos a medida que las transacciones se replican de un origen a otro. Cada tipo de sistema de gestión de bases de datos genera algún tipo de número de serie único propio al finalizar cada transacción, que identifica de forma única la confirmación de esa transacción. Por ejemplo, Oracle RDBMS genera un número de cambio del sistema, que es un número de secuencia que aumenta de forma monótona asignado a cada evento por Oracle RDBMS. El CSN captura esta misma información de identificación y la representa internamente como una serie de bytes, pero el CSN se procesa de manera independiente de la plataforma. Una comparación de dos números CSN cualesquiera, cada uno de los cuales está vinculado a un registro de confirmación de transacción en el mismo flujo de log, indica de manera fiable el orden en que se completaron las dos transacciones.
Se realiza una comprobación cruzada del CSN con el ID de transacción (que se muestra como XID en la salida informativa de Oracle GoldenGate). La combinación de XID-CSN identifica de forma única una transacción incluso en casos en los que hay varias transacciones que se confirman al mismo tiempo y, por lo tanto, tienen el mismo CSN. Por ejemplo, esto puede ocurrir en un entorno de Oracle RAC, donde hay paralelismo y alta simultaneidad de transacciones.
El valor de CSN se almacena como un token en cualquier registro de pista que identifique la confirmación de una transacción. Este valor se puede recuperar con la función de conversión de columna @GETENV y se puede ver con la utilidad Logdump.