

# RDS for PostgreSQL에 대한 논리적 슬롯 동기화 관리
<a name="Appendix.PostgreSQL.CommonDBATasks.pglogical.slot.synchronization"></a>

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

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

장애 조치 옵션이 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)
```

슬롯 동기화를 활성화하면 프라이머리 인스턴스의 모든 장애 조치 논리적 복제 슬롯이 물리적 대기에 자동으로 생성되고 주기적으로 동기화됩니다. [파라미터 그룹](USER_WorkingWithParamGroups.Associating.md)을 통해 다음 값이 설정되었는지 확인합니다.
+ 논리적 복제를 활성화하려면 `rds.logical_replication`이 `1`이어야 합니다.
+ 대기 상태에서 `hot_standby_feedback`이 `1`이어야 합니다.
+ 대기 상태의 `rds.logical_slot_sync_dbname`을 유효한 데이터베이스 이름으로 설정해야 합니다.

  파라미터의 기본값은 `postgres`입니다. 논리적 게시 인스턴스에 `postgres` 데이터베이스가 있는 경우 기본 파라미터를 변경할 필요가 없습니다.
+ 프라이머리 인스턴스의 `synchronized_standby_slots`는 동기화되도록 의도된 대기의 물리적 복제 슬롯으로 설정되어야 합니다.
+ 자동 동기화를 활성화하려면 `sync_replication_slots`가 `1`이어야 합니다.

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