DBAtlas · 데이터베이스 운영 아틀라스

slot이 보존할 수 있는 WAL 제한(max_slot_wal_keep_size)

PostgreSQL복제

명령어

ALTER SYSTEM SET max_slot_wal_keep_size = '100GB';
SELECT pg_reload_conf();
SELECT slot_name, active, wal_status, pg_size_pretty(safe_wal_size) AS safe_wal_size FROM pg_replication_slots;

하는 일

replication slot이 pg_wal에 보존할 수 있는 WAL의 상한을 설정한다(기본 -1 = 무제한). 초과하면 checkpoint가 오래된 WAL을 제거하고 slot은 wal_status = 'lost'가 된다. 파라미터는 reload로 적용된다.

사용 시점

연결이 끊긴 standby나 subscriber가 primary 디스크를 채워 시스템 전체를 멈추는 위험에 대비해 slot을 사용하는 모든 클러스터의 안전장치로.

주의

이 한도는 slot 소유자를 희생하여 primary를 살리는 쪽을 택한다. slot이 'lost'된 standby는 재구축해야 하고 logical subscription은 다시 생성해야 한다. pg_wal 디스크의 여유 공간보다 작고, 예상되는 가장 긴 장애 동안 생성되는 WAL보다 큰 값을 선택한다. wal_status가 'unreserved'이면 slot이 곧 손실되므로 알림을 발생시킨다.

DBAtlas에서 열기 →

관련 항목