논리적 복제는 현재 다음과 같은 제한 또는 누락 된 기능을 가지고 있습니다. 이것들은 향후 릴리스에서 해결 될 수 있습니다.
데이터베이스 스키마 및 DDL 명령은 복제되지 않습니다. 초기 스키마는를 사용하여 직접 복사 할 수 있습니다.pg_dump --- 스키마 전용
. 후속 스키마 변경은 수동으로 동기화되어야합니다. (그러나 스키마가 양쪽에서 절대적으로 동일 할 필요가 없다는 점에 유의하십시오.) 스키마 정의가 실시간 데이터베이스에서 변경 될 때 논리적 복제는 강력합니다. 게시자에서 스키마가 변경되고 복제 된 데이터가 가입자에 도착하기 시작하지만 테이블 스키마에 맞지 않으면 스키마가 업데이트 될 때까지 오류가 발생합니다. 대부분의 경우 가입자에게 첨가제 스키마 변경을 적용하면 간헐적 오류를 피할 수 있습니다.
시퀀스 데이터가 복제되지 않았습니다. 시퀀스에 의해 뒷받침되는 직렬 또는 아이덴티티 열의 데이터는 물론 테이블의 일부로 복제되지만 시퀀스 자체는 가입자의 시작 값을 여전히 표시합니다. 가입자가 읽기 전용 데이터베이스로 사용되는 경우 일반적으로 문제가되지 않아야합니다. 그러나 가입자 데이터베이스에 대한 어떤 종류의 전환 또는 장애 조치가 의도 된 경우, 게시자의 현재 데이터를 복사하여 시퀀스를 최신 값으로 업데이트해야합니다 (아마도 사용.pg_dump
) 또는 테이블 자체로부터 충분히 높은 가치를 결정함으로써.
Truncate
명령은 복제되지 않습니다. 물론 이것은 사용하여 일할 수 있습니다.삭제
대신. 우발적 인 것을 피하려면Truncate
invocations, 당신은를 취소 할 수 있습니다Truncate
테이블에서 특권.
큰 개체 (참조토토 캔 : 문서 : 10 : 34 장. 큰 개체)는 복제되지 않습니다. 일반 테이블에 데이터를 저장하는 것 외에는 해결 방법이 없습니다.
복제는 기본 테이블에서 기본 테이블에 이르기까지 가능합니다. 즉, 출판물과 구독 측의 테이블은 뷰, 구체화 된보기, 파티션 루트 테이블 또는 외부 테이블이 아닌 일반 테이블이어야합니다. 파티션의 경우 파티션 계층을 일대일로 복제 할 수 있지만 현재 다르게 분할 된 설정으로 복제 할 수는 없습니다. 기본 테이블 이외의 테이블을 복제하려는 시도는 오류가 발생합니다.