이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : 48 장. 토토 베이 진행 추적버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

49장. 윈 토토 진행 상황 추적

윈 토토 원본은 논리적 윈 토토 솔루션을 더 쉽게 구현할 수 있도록 고안되었습니다.PostgreSQL : 문서 : 12 : 48 장 윈 토토 디코딩. 두 가지 일반적인 문제에 대한 솔루션을 제공합니다.

  • 윈 토토 진행 상황을 안전하게 추적하는 방법

  • 행의 출처를 기반으로 윈 토토 동작을 변경하는 방법; 예를 들어 양방향 윈 토토 설정에서 루프를 방지하기 위해

윈 토토 원본에는 이름과 OID라는 두 가지 속성만 있습니다. 시스템 전반에서 원본을 참조하는 데 사용되는 이름은 자유 형식입니다.텍스트. 서로 다른 윈 토토 솔루션에서 생성된 윈 토토 원본 간에 충돌이 발생하지 않도록 하는 방식으로 사용해야 합니다. 예를 들어 윈 토토 솔루션의 이름 앞에 접두사를 붙입니다. OID는 공간 효율성이 중요한 상황에서 긴 버전을 저장하지 않아도 되는 목적으로만 사용됩니다. 시스템 간에 공유되어서는 안 됩니다.

함수를 사용하여 윈 토토 원본을 생성할 수 있습니다.pg_replication_origin_create(); 다음을 사용하여 삭제됨pg_replication_origin_drop(); 그리고 다음에서 볼 수 있습니다.pg_replication_origin시스템 카탈로그.

윈 토토 솔루션 구축에서 중요한 부분 중 하나는 안전한 방식으로 재생 진행 상황을 추적하는 것입니다. 적용 프로세스 또는 전체 클러스터가 종료되면 데이터가 성공적으로 윈 토토된 위치까지 알아낼 수 있어야 합니다. 재생된 모든 트랜잭션에 대해 테이블의 행을 업데이트하는 것과 같은 순진한 솔루션은 런타임 오버헤드 및 데이터베이스 팽창과 같은 문제를 안고 있습니다.

윈 토토 원본 인프라를 사용하면 세션이 원격 노드에서 재생되는 것으로 표시될 수 있습니다(사용pg_replication_origin_session_setup()함수). 추가적으로LSN그리고 모든 소스 트랜잭션의 커밋 타임스탬프는 다음을 사용하여 트랜잭션별로 구성할 수 있습니다.pg_replication_origin_xact_setup(). 완료되면 복제 진행이 충돌로부터 안전한 방식으로 유지됩니다. 모든 복제 원본에 대한 재생 진행 상황은 다음에서 볼 수 있습니다.pg_replication_origin_status보기. 복제를 재개할 때와 같은 개별 오리진의 진행 상황은 다음을 사용하여 얻을 수 있습니다.pg_replication_origin_progress()모든 출처 또는pg_replication_origin_session_progress()현재 세션에 구성된 원본의 경우.

정확히 한 시스템에서 다른 시스템으로의 복제보다 더 복잡한 복제 토폴로지에서는 재생된 행을 다시 복제하는 것을 피하기가 어렵다는 또 다른 문제가 있을 수 있습니다. 이는 복제 주기와 비효율성을 모두 초래할 수 있습니다. 복제 원본은 이를 인식하고 방지하기 위한 선택적 메커니즘을 제공합니다. 이전 단락에서 참조된 함수를 사용하여 구성하면 모든 변경 사항과 트랜잭션이 출력 플러그인 콜백에 전달됩니다(참조젠 토토 Postgresql: Tài liệu: 12: 48.6. Plugin đầu ra giải mã logic13075_13295filter_by_origin_cb콜백은 소스를 기반으로 논리적 디코딩 변경 스트림을 필터링하는 데 사용될 수 있습니다. 유연성은 떨어지지만 해당 콜백을 통한 필터링은 출력 플러그인에서 수행하는 것보다 훨씬 더 효율적입니다.