RDS for PostgreSQL에 대한 논리적 슬롯 동기화 관리 - Amazon Relational Database Service

RDS for PostgreSQL에 대한 논리적 슬롯 동기화 관리

커뮤니티 PostgreSQL 17부터 실행 시 슬롯을 수동으로 동기화하는 파라미터 sync_replication_slots 또는 관련 함수 pg_sync_replication_slots()를 통해 기본 서버에서 대기 서버로 논리적 복제 슬롯을 자동으로 동기화하는 새로운 기능이 도입되었습니다.

이러한 기능은 RDS for PostgreSQL 17부터 사용할 수 있습니다. 일반적인 설정에는 기본 인스턴스와 읽기 전용 복제본 및 프라이머리 인스턴스에 대한 논리적 복제 구독자가 포함됩니다.

장애 조치 옵션이 true로 설정된 상태에서 구독이 생성되었는지 확인합니다.

CREATE SUBSCRIPTION subname CONNECTION 'host=...' PUBLICATION pubname WITH (failover = true);

이렇게 하면 장애 조치가 활성화된 상태로 게시자에 논리적 슬롯이 생성됩니다.

postgres=> SELECT slot_name, slot_type, failover FROM pg_catalog.pg_replication_slots; slot_name | slot_type | failover -----------+-----------+---------- subname | logical | t (1 row)

슬롯 동기화를 활성화하면 프라이머리 인스턴스의 모든 장애 조치 논리적 복제 슬롯이 물리적 대기에 자동으로 생성되고 주기적으로 동기화됩니다. 파라미터 그룹을 통해 다음 값이 설정되었는지 확인합니다.

  • 논리적 복제를 활성화하려면 rds.logical_replication1이어야 합니다.

  • 대기 상태에서 hot_standby_feedback1이어야 합니다.

  • 대기 상태의 rds.logical_slot_sync_dbname을 유효한 데이터베이스 이름으로 설정해야 합니다.

    파라미터의 기본값은 postgres입니다. 논리적 게시 인스턴스에 postgres 데이터베이스가 있는 경우 기본 파라미터를 변경할 필요가 없습니다.

  • 프라이머리 인스턴스의 synchronized_standby_slots는 동기화되도록 의도된 대기의 물리적 복제 슬롯으로 설정되어야 합니다.

  • 자동 동기화를 활성화하려면 sync_replication_slots1이어야 합니다.

장애 조치 활성화 구독 슬롯과 위의 파라미터 값을 사용하면 대기가 승격될 때 구독자는 새로 승격된 이 인스턴스에 대한 구독을 변경하고 논리적 복제를 원활하게 계속할 수 있습니다.