윈 토토 기원은 논리적 윈 토토 솔루션을보다 쉽게 구현할 수 있도록입니다.논리 디코딩. 그들은 두 가지 일반적인 문제에 대한 해결책을 제공합니다.
윈 토토 진행을 안전하게 추적하는 방법
행의 원점에 따라 윈 토토 동작을 변경하는 방법; 예를 들어, 양방향 윈 토토 설정에서 루프를 방지하기 위해
윈 토토 기원에는 이름과 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 ()
현재 세션에서 구성된 원점의 경우
윈 토토 토폴로지에서 정확히 하나의 시스템에서 다른 시스템으로 윈 토토하는 것보다 더 복잡합니다. 또 다른 문제는 다시 재생 된 행을 다시 윈 토토하는 것을 피하기 어려울 수 있습니다. 이로 인해 윈 토토 및 비 효율성의주기가 모두 이어질 수 있습니다.섹션 48.6) 세션에 의해 생성 된 것은 생성 세션의 윈 토토 원점으로 태그됩니다. 이를 통해 출력 플러그인에서 다르게 처리 할 수 있습니다. 예를 들어 로컬 오발 행을 제외한 모든 행을 무시합니다.filter_by_origin_cb
콜백을 사용하여 소스를 기반으로 논리적 디코딩 변경 스트림을 필터링 할 수 있습니다. 덜 유연하지만 해당 콜백을 통한 필터링은 출력 플러그인에서 수행하는 것보다 훨씬 더 효율적입니다.