본문으로 건너뛰기

hot_standby

버전기본값context타입
14onpostmaster (재시작)boolean
15onpostmaster (재시작)boolean
16onpostmaster (재시작)boolean
17onpostmaster (재시작)boolean
18onpostmaster (재시작)boolean
19onpostmaster (재시작)boolean

recovery 중인 서버, 곧 archive recovery나 standby 모드에서 클라이언트 접속과 쿼리 실행을 허용할지 정한다. 기본값은 on이며, 서버를 시작할 때만 설정할 수 있다. standby 서버에 적용되는 파라미터다.

on이면 standby는 WAL을 적용하면서 동시에 읽기 전용 쿼리를 받을 수 있는 hot standby 상태로 동작한다. 읽기 부하를 standby로 분산하는 구성의 출발점이 되는 설정이며, recovery 중이 아닌 서버에서는 아무 효과가 없다. hot standby로 접속을 받으려면 primary의 wal_levelreplica 이상이어야 한다.

다만 standby에서 쿼리를 실행하면 WAL 적용과 충돌이 생길 수 있다. primary에서 정리된 row를 standby의 오래 걸리는 쿼리가 아직 읽고 있는 경우가 대표적이다. 이런 충돌의 처리 방식은 max_standby_archive_delay, max_standby_streaming_delay로 조절하고, hot_standby_feedback으로 충돌 원인 자체를 줄일 수 있다.

운영 노트: PostgreSQL 10부터 기본값이 on이라 대부분의 구성에서 손댈 일이 없다. standby를 순수 failover 대기용으로만 쓰고 쿼리를 전혀 받지 않을 때만 off를 고려한다.

출처: PostgreSQL 18 문서