Postgres용 PlanetScale은 현재 조기 액세스 상태입니다.
지원되는 Postgres 버전
논리적 복제 활성화
-
Postgres 인스턴스에서 복제를 활성화하려면 먼저 다음 설정이 적용되어 있는지 확인해야 합니다.
이를 확인하려면 다음 SQL 명령을 실행하십시오.출력 결과는 기본적으로
logical이어야 합니다. 그렇지 않다면 PlanetScale 콘솔에 로그인한 뒤Cluster configuration->Parameters로 이동하고,Write-ahead log항목까지 스크롤하여 값을 변경하십시오.
- 또한
max_slot_wal_keep_size설정을 기본값인 4GB보다 더 크게 늘리는 것을 권장합니다. 이 역시 PlanetScale 콘솔에서Cluster configuration->Parameters로 이동한 다음Write-ahead log항목까지 스크롤하여 변경할 수 있습니다. 새 값을 정하는 데 도움이 필요하면 여기를 참조하십시오.
권한 및 publication이 있는 사용자 생성
postgres.<...> 사용자를 사용해 PlanetScale Postgres 인스턴스에 연결한 다음, 아래 명령을 실행합니다:
-
ClickPipes 전용 사용자를 생성합니다:
-
이전 단계에서 생성한 사용자에게 스키마 수준의 읽기 전용 액세스 권한을 부여합니다. 다음 예시는
public스키마에 대한 권한을 보여줍니다. 복제하려는 테이블이 포함된 각 스키마에 대해 이 명령을 반복하십시오: -
사용자에게 복제 권한을 부여합니다:
- 복제하려는 테이블을 포함하는 publication을 생성합니다. 성능 오버헤드를 피하려면 publication에는 필요한 테이블만 포함하는 것을 강력히 권장합니다.
-
특정 테이블에 대한 publication을 생성하려면:
-
특정 스키마의 모든 테이블에 대한 publication을 생성하려면:
-
특정 스키마의 모든 테이블에 대한 publication을 생성하려면:
clickpipes publication에는 지정된 테이블에서 생성된 변경 이벤트 집합이 포함되며, 이후 복제 스트림을 수집하는 데 사용됩니다.
주의 사항
- PlanetScale Postgres에 연결하려면 현재 브랜치 정보를 앞서 생성한 사용자 이름 뒤에 붙여야 합니다. 예를 들어 생성한 사용자 이름이
clickpipes_user인 경우, ClickPipe 생성 시 입력하는 실제 사용자 이름은clickpipes_user.branch여야 합니다. 여기서branch는 현재 PlanetScale Postgres 브랜치의 “id”를 의미합니다. 이를 빠르게 확인하려면 앞서 사용자 생성에 사용한postgres사용자의 사용자 이름을 참고하면 됩니다. 마침표(.) 뒤에 오는 부분이 브랜치 id입니다. - PlanetScale Postgres에 연결하는 CDC 파이프에는
PSBouncer포트(현재6432)를 사용하지 마십시오. 일반 포트5432를 사용해야 합니다. 초기 로드 전용 파이프의 경우에는 두 포트 모두 사용할 수 있습니다. - 반드시 프라이머리 인스턴스에만 연결하십시오. 현재 레플리카 인스턴스 연결은 지원되지 않습니다.