본문으로 건너뛰기

wal_keep_size

버전기본값context타입
14sighupinteger
15sighupinteger
16sighupinteger
17sighupinteger
18sighupinteger
19sighupinteger

standby가 streaming replication으로 가져갈 수 있도록 pg_wal 디렉토리에 남겨 둘 과거 WAL 파일의 최소 크기를 정한다. 단위 없이 값을 주면 메가바이트로 해석하며, 기본값 0은 standby용 여분 segment를 따로 보관하지 않는다. postgresql.conf나 서버 커맨드라인에서만 설정할 수 있고, sending 서버(보통 primary)에 적용된다. PostgreSQL 13에서 segment 개수 단위였던 wal_keep_segments를 대체했다.

standby가 sending 서버보다 이 크기 이상 뒤처지면 standby에 아직 필요한 WAL segment가 제거될 수 있고, 그 경우 replication 연결이 끊긴다. WAL archiving을 쓰고 있다면 standby가 archive에서 해당 segment를 가져와 복구할 수는 있다. 이 값은 pg_wal에 남기는 최소치일 뿐이며, checkpoint 이후 recovery나 WAL archival 사정에 따라 시스템은 더 많은 segment를 보관할 수 있다.

운영 노트: replication slot과 달리 보존량 상한이 명확해 pg_wal이 무한정 커질 걱정은 없지만, 이 크기를 넘어서는 지연은 보호하지 못한다. 확실한 WAL 보존이 필요하면 replication slot에 max_slot_wal_keep_size를 조합하고, 단순한 여유 버퍼가 필요할 때 wal_keep_size를 쓰는 식으로 구분하면 된다.

출처: PostgreSQL 18 문서