Commit Sequence Number (CSN)

Oracle GoldenGate로 작업할 때는 CSD(커밋 시퀀스 번호)를 참조해야 할 수 있습니다. CSN은 트랜잭션 일관성 및 데이터 무결성을 유지 관리할 목적으로 트랜잭션을 식별하기 위해 Oracle GoldenGate에서 구성하는 식별자입니다. 트랜잭션이 데이터베이스에 커밋되는 Point-in-time을 고유하게 식별합니다.

CSN은 트랜잭션 로그에 Extract를 배치하거나, 추적에서 Replicat를 재배치하거나, 다른 용도로 사용될 수 있습니다. 일부 변환 함수에서 반환되며 보고서 및 특정 명령 출력에 포함됩니다.

CSN은 트랜잭션이 데이터베이스에 커밋될 때 특정 시점을 고유하게 식별하는 Oracle GoldenGate에서 생성되는 단조롭게 증가하는 식별자입니다. 트랜잭션이 소스에서 대상으로 복제됨에 따라 트랜잭션 일관성과 데이터 무결성을 보장하는 것이 목적입니다. 각 종류의 데이터베이스 관리 시스템은 각 트랜잭션 완료 시 고유한 일련 번호를 생성하여 해당 트랜잭션의 커밋을 고유하게 식별합니다. 예를 들어, Oracle RDBMS는 Oracle RDBMS에 의해 모든 이벤트에 할당되는 단조롭게 증가하는 시퀀스 번호인 시스템 변경 번호를 생성합니다. CSN은 이와 동일한 식별 정보를 캡처하여 내부적으로 일련의 바이트로 나타내지만 CSN은 플랫폼 독립적인 방식으로 처리됩니다. 두 개의 CSN 번호를 비교한 결과, 각각 동일한 로그 스트림의 트랜잭션 커밋 레코드에 바인딩되어 두 트랜잭션이 완료된 순서를 안정적으로 나타냅니다.

CSN은 트랜잭션 ID(Oracle GoldenGate 정보 출력에 XID로 표시됨)와 상호 확인됩니다. XID-CSN 조합은 동시에 여러 트랜잭션이 커밋되어 동일한 CSN이 있는 경우에도 트랜잭션을 고유하게 식별합니다. 예를 들어, 병렬화 및 높은 트랜잭션 동시성이 있는 Oracle RAC 환경에서 이 문제가 발생할 수 있습니다.

CSN 값은 트랜잭션 커밋을 식별하는 추적 레코드에 토큰으로 저장됩니다. 이 값은 @GETENV 열 변환 함수를 사용하여 검색할 수 있으며 Logdump 유틸리티를 사용하여 볼 수 있습니다.