31.7. 아키텍처#

논리적 토토 베이는 게시자 데이터베이스에 있는 데이터의 스냅샷을 복사하여 시작됩니다. 이 작업이 완료되면 게시자의 변경 사항이 실시간으로 구독자에게 전송됩니다. 구독자는 게시자에서 커밋된 순서대로 데이터를 적용하므로 단일 구독 내의 게시에 대해 트랜잭션 일관성이 보장됩니다.

논리적 토토 베이는 물리적 스트리밍 토토 베이와 유사한 아키텍처로 구축됩니다(참조섹션 27.2.5). 이는 다음과 같이 구현됩니다.월센더그리고신청프로세스. Walsender 프로세스는 논리적 디코딩을 시작합니다(설명됨).PostgreSQL : 문서 : 16 : 49 장. 무지개 토토 디코딩9006_9076pgoutput). 플러그인은 WAL에서 읽은 변경 사항을 논리적 토토 베이 프로토콜로 변환합니다(참조PostgreSQL : 문서 : 16 : 55.5. 논리 스트리밍 복제 토토) 게시 사양에 따라 데이터를 필터링합니다. 그런 다음 데이터는 스트리밍 복제 프로토콜을 사용하여 적용 작업자에게 지속적으로 전송됩니다. 적용 작업자는 데이터를 로컬 테이블에 매핑하고 수신되는 개별 변경 사항을 올바른 트랜잭션 순서로 적용합니다.

구독자 데이터베이스의 적용 프로세스는 항상 다음과 같이 실행됩니다.session_replication_role다음으로 설정됨토토 베이본. 이는 기본적으로 트리거와 규칙이 구독자에 대해 실행되지 않음을 의미합니다. 사용자는 선택적으로 다음을 사용하여 테이블에서 트리거 및 규칙을 활성화하도록 선택할 수 있습니다.테이블 변경명령 및트리거 활성화그리고규칙 활성화절.

논리적 복제 적용 프로세스는 현재 명령문 트리거가 아닌 행 트리거만 실행합니다. 그러나 초기 테이블 동기화는 다음과 같이 구현됩니다.복사명령을 실행하여 다음에 대한 행 및 명령문 트리거를 모두 실행합니다.삽입.

31.7.1. 초기 스냅샷#

기존 구독 테이블의 초기 데이터는 특별한 종류의 적용 프로세스의 병렬 인스턴스에서 스냅샷을 만들고 복사됩니다. 이 프로세스는 자체 복제 슬롯을 생성하고 기존 데이터를 복사합니다. 복사가 완료되자마자 테이블 내용이 다른 백엔드에 표시됩니다. 기존 데이터가 복사되면 작업자는 동기화 모드로 전환됩니다. 이 모드에서는 표준 논리적 복제를 사용하여 초기 데이터 복사 중에 발생한 모든 변경 사항을 스트리밍하여 테이블이 기본 적용 프로세스와 동기화된 상태가 되도록 합니다. 이 동기화 단계에서는 변경 사항이 게시자에서 발생한 순서와 동일한 순서로 적용되고 커밋됩니다. 동기화가 완료되면 테이블 복제에 대한 제어권이 복제가 정상적으로 계속되는 기본 적용 프로세스로 다시 넘겨집니다.

참고

출판물게시매개변수는 복제될 DML 작업에만 영향을 미칩니다. 초기 데이터 동기화에서는 기존 테이블 데이터를 복사할 때 이 매개변수를 고려하지 않습니다.

수정사항 제출

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