49장. 토토 커뮤니티 진행 상황 추적

토토 커뮤니티 원본은 논리적 토토 커뮤니티 솔루션을 더 쉽게 구현할 수 있도록 고안되었습니다.PostgreSQL : 문서 : 13 : 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 : 문서 : 13 : 48.6. 논리적 디코딩 토토 캔 플러그인12694_12914filter_by_origin_cb콜백은 소스를 기반으로 논리적 디코딩 변경 스트림을 필터링하는 데 사용될 수 있습니다. 유연성은 떨어지지만 해당 콜백을 통한 필터링은 출력 플러그인에서 수행하는 것보다 훨씬 더 효율적입니다.

수정사항 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.