30.2. 구독

A 구독은 논리적 복제의 다운스트림 측면입니다. 구독이 정의된 노드를구독자. 구독은 구독하려는 다른 데이터베이스 및 발행물 세트(하나 이상)에 대한 연결을 정의합니다.

구독자 데이터베이스는 다른 PostgreSQL 인스턴스와 동일한 방식으로 작동하며 자체 게시를 정의하여 다른 데이터베이스의 게시자로 사용할 수 있습니다.

구독자 노드는 원하는 경우 여러 구독을 가질 수 있습니다. 단일 게시자-구독자 쌍 간에 여러 구독을 정의할 수 있으며, 이 경우 구독한 게시 개체가 겹치지 않도록 주의해야 합니다.

각 구독은 하나의 복제 슬롯을 통해 변경 사항을 수신합니다(참조섹션 26.2.6). 기존 테이블 데이터의 초기 데이터 동기화를 위해 추가 임시 복제 슬롯이 필요할 수 있습니다.

논리적 복제 구독은 동기식 복제를 위한 대기가 될 수 있습니다(참조섹션 26.2.8). 대기 이름은 기본적으로 구독 이름입니다. 대체 이름은 다음과 같이 지정할 수 있습니다.응용프로그램_이름구독 연결 정보에서.

다음에 의해 구독이 취소되었습니다.pg_dump현재 사용자가 슈퍼유저인 경우. 그렇지 않으면 슈퍼유저가 아닌 사용자가 모든 구독 정보를 읽을 수 없기 때문에 경고가 작성되고 구독을 건너뜁니다.pg_subscription카탈로그.

구독은 다음을 사용하여 추가됩니다.구독 작성언제든지 다음을 사용하여 중지/재개할 수 있습니다.구독 변경명령을 사용하여 제거함구독 중단.

구독을 삭제하고 다시 생성하면 동기화 정보가 손실됩니다. 이는 나중에 데이터를 다시 동기화해야 함을 의미합니다.

스키마 정의는 복제되지 않으며 게시된 테이블은 구독자에 존재해야 합니다. 일반 테이블만 복제 대상이 될 수 있습니다. 예를 들어 뷰에 복제할 수 없습니다.

테이블은 정규화된 테이블 이름을 사용하여 게시자와 구독자 간에 일치됩니다. 구독자에서 이름이 다른 테이블에 대한 복제는 지원되지 않습니다.

테이블의 열은 이름으로도 일치됩니다. 구독자 테이블의 열 순서는 게시자의 순서와 일치할 필요가 없습니다. 데이터의 텍스트 표현을 대상 유형으로 변환할 수 있는 한 열의 데이터 유형은 일치할 필요가 없습니다. 예를 들어, 다음 유형의 열에서 복제할 수 있습니다.정수다음 유형의 열에비긴트. 대상 테이블에는 게시된 테이블에서 제공되지 않은 추가 열이 있을 수도 있습니다. 이러한 열은 대상 테이블의 정의에 지정된 기본값으로 채워집니다.

30.2.1. 복제 슬롯 관리

앞서 언급했듯이 각 (활성) 구독은 원격(게시) 측의 복제 슬롯에서 변경 사항을 받습니다. 일반적으로 원격 복제 슬롯은 다음을 사용하여 구독이 생성될 때 자동으로 생성됩니다.구독 작성다음을 사용하여 구독이 삭제되면 자동으로 삭제됩니다.구독 중단. 그러나 어떤 상황에서는 구독과 기본 복제 슬롯을 별도로 조작하는 것이 유용하거나 필요할 수 있습니다. 다음은 몇 가지 시나리오입니다.

  • 구독을 생성할 때 복제 슬롯이 이미 존재합니다. 이 경우 다음을 사용하여 구독을 생성할 수 있습니다.create_slot = false기존 슬롯과 연결하는 옵션.

  • 구독을 생성할 때 원격 호스트에 연결할 수 없거나 불분명한 상태입니다. 이 경우 다음을 사용하여 구독을 생성할 수 있습니다.연결 = 거짓옵션. 그러면 원격 호스트에 전혀 연결되지 않습니다. 이것이 바로pg_dump사용합니다. 그러면 구독을 활성화하기 전에 원격 복제 슬롯을 수동으로 생성해야 합니다.

  • 구독을 삭제할 때 복제 슬롯은 유지되어야 합니다. 이는 구독자 데이터베이스가 다른 호스트로 이동되고 그곳에서 활성화될 때 유용할 수 있습니다. 이 경우 다음을 사용하여 구독에서 슬롯을 연결 해제하세요.구독 변경구독을 중단하기 전에.

  • 구독을 삭제하면 원격 호스트에 연결할 수 없습니다. 이 경우 다음을 사용하여 구독에서 슬롯을 연결 해제하세요.구독 변경구독을 삭제하기 전에. 원격 데이터베이스 인스턴스가 더 이상 존재하지 않으면 추가 조치가 필요하지 않습니다. 그러나 원격 데이터베이스 인스턴스에 연결할 수 없는 경우에는 복제 슬롯을 수동으로 삭제해야 합니다. 그렇지 않으면 WAL을 계속 예약하여 결국 디스크가 가득 차게 될 수 있습니다. 그러한 경우는 주의 깊게 조사되어야 합니다.

수정사항 제출

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