recovery.conf 파일이 postgresql.conf에 통합됨

recovery.conf 파일이 postgresql.conf에 통합됨 (O.1. recovery.conf file merged into postgresql.conf)

PostgreSQL에서 복제(replication) 또는 스탠바이(standby) 서버를 설정하다 보면, 옛 문서나 예전 블로그 글에서 recovery.conf라는 파일을 만나게 되는 경우가 있어요. 그런데 지금 버전에서는 그 파일을 찾을 수 없어서 당황할 수 있죠. 이 페이지에서는 recovery.conf가 어떻게 사라졌고, 어떤 설정으로 대체됐는지 정리해 드릴게요.

출처: PostgreSQL 공식 문서 — recovery-config

배경: PostgreSQL 11 이하의 recovery.conf

PostgreSQL 11 이하 버전에서는 복제본(replicas)과 스탠바이(standbys)를 관리하기 위해 recovery.conf라는 설정 파일을 사용했어요. 이 파일에 standby_mode, primary_conninfo, recovery_target_time 같은 매개변수를 넣는 식이었죠.

하지만 이 파일에 대한 지원은 PostgreSQL 12에서 제거됐어요. 이 변경에 대한 자세한 내용은 PostgreSQL 12 릴리스 노트에서 확인할 수 있어요.

PostgreSQL 12 이상에서의 설정

PostgreSQL 12 이상에서는 **아카이브 복구(archive recovery), 스트리밍 복제(streaming replication), PITR(Point-In-Time Recovery)**을 일반적인 서버 설정 매개변수로 구성해요. 다른 매개변수와 마찬가지로 postgresql.conf에 설정하거나 ALTER SYSTEM을 통해 설정할 수 있어요.

주의할 점은, recovery.conf 파일이 존재하면 서버가 시작되지 않는다는 거예요. 옛날 설정 파일이 남아 있다면 반드시 제거하거나 옮겨야 해요.

promote 관련 설정의 변경

PostgreSQL 15 이하 버전에는 promote_trigger_file이라는 설정이 있었고, 12 이전 버전에서는 trigger_file이라고 불렸어요. 이 설정은 특정 파일이 나타나면 스탠바이를 승격시키는 데 쓰였죠. 이제는 그 대신 pg_ctl promote를 쓰거나 pg_promote() 함수를 호출해서 스탠바이를 승격(promote)하면 돼요.

standby_mode 설정의 제거

standby_mode 설정도 제거됐어요. 그 역할은 데이터 디렉토리에 있는 standby.signal 파일이 대신해요. 이 파일이 있으면 서버는 스탠바이 모드로 동작하죠. 자세한 내용은 스탠바이 서버 운영 (Standby Server Operation)에서 확인할 수 있어요.

정리

옛 방식 (≤11) 지금 방식 (≥12)
recovery.conf 파일 postgresql.conf 또는 ALTER SYSTEM
standby_mode = on 데이터 디렉토리에 standby.signal 파일 생성
trigger_file / promote_trigger_file pg_ctl promote 또는 pg_promote()

이렇게 보면, 예전에 recovery.conf에 넣던 대부분의 복구·복제 관련 매개변수 이름과 기본값은 그대로 유지되면서 설정 파일 위치와 활성화 방식만 달라졌다고 볼 수 있어요. 각 매개변수의 정확한 이름과 의미는 복제·스탠바이 설정 페이지를 참고하세요.

더 알아보기 (Learn more)