max_slot_wal_keep_size
| 버전 | 기본값 | context | 타입 |
|---|---|---|---|
| 14 | — | sighup | integer |
| 15 | — | sighup | integer |
| 16 | — | sighup | integer |
| 17 | — | sighup | integer |
| 18 | — | sighup | integer |
| 19 | — | sighup | integer |
replication slot이 checkpoint 시점에 pg_wal 디렉토리에 보존하도록 허용되는 WAL 파일의 최대 크기를 정한다. 단위 없이 값을 주면 메가바이트로 해석하고, 기본값 -1은 무제한이다. postgresql.conf나 서버 커맨드라인에서만 설정할 수 있으며, slot이 있는 sending 서버(보통 primary)에 적용된다.
slot의 restart_lsn이 현재 LSN보다 이 크기 이상 뒤처지면 slot에 필요한 WAL 파일이 제거될 수 있고, 그 slot을 쓰던 standby는 replication을 이어갈 수 없게 된다. slot별 WAL 가용 상태는 pg_replication_slots의 wal_status 컬럼으로 확인할 수 있다.
운영 노트: 기본값 -1은 끊긴 standby나 버려진 slot이 pg_wal을 디스크가 가득 찰 때까지 키울 수 있다는 뜻이다. 디스크 여유를 감안한 상한을 두는 편이 안전하지만, 상한에 걸려 slot이 invalidate되면 해당 standby는 pg_basebackup 등으로 재구축해야 할 수 있다. 이 트레이드오프를 이해하고 값을 정해야 한다.
출처: PostgreSQL 18 문서