나의 잡다한 노트 및 메모

PG의 wal_level 설정 본문

DB/PostgreSQL

PG의 wal_level 설정

peanutwalnut 2025. 7. 30. 14:13

PostgreSQL의 wal_level 설정은 WAL(Write‑Ahead Log)에 기록되는 정보의 양과 종류를 결정하며, 복제 방식에 따라 아래 세 가지 값 중 하나를 선택한다.

 

값                        용도

minimal 크래시 복구용 최소한의 정보만 기록– PITR(Point‑In‑Time Recovery)나 스탠바이 서버에 사용할 수 없음
replica 물리적(스트리밍) 복제 및 아카이빙용으로 충분한 정보 기록– 기본값– standby 서버(Hot Standby) 지원 가능
logical 논리적 복제(Logical Replication) 및 논리적 디코딩용 추가 정보까지 기록– 구독(subscription)/게시(publication) 기반 복제 사용 시 필수

 

1. replica 모드

  • 기록 내용
    • 데이터 페이지 변경을 재생할 수 있는 물리적 WAL 레코드
    • full_page_writes나 wal_log_hints를 통해 페이지 단위 변화 정보
  • 지원 기능
    • Streaming Replication(물리 복제)
    • Point‑In‑Time Recovery (PITR)
    • Hot Standby (standby 서버에서 읽기 쿼리)
  • 성능 영향
    • minimal 보다는 WAL 볼륨 증가
    • logical보다는 상대적으로 낮음

2. logical 모드

  • 기록 내용
    • replica 모드의 모든 정보 +
    • 논리적 변경 집합을 추출하기 위한 추가 메타데이터:
      • 행 식별을 위한 REPLICA IDENTITY 정보
      • UPDATE/DELETE 대상 행의 OLD/NEW 값 등
  • 지원 기능
    • Logical Replication (예: CREATE PUBLICATION/CREATE SUBSCRIPTION)
    • Logical Decoding (예: pg_logical, pgoutput 플러그인)
  • 성능·스토리지 영향
    • WAL 기록량 증가 (특히 REPLICA IDENTITY FULL 테이블 다수일 경우 UPDATE/DELETE 쏟아질 때 크게 증가)
    • 디스크 I/O 및 네트워크 부하 상승 가능

 

 

  • 물리 복제만 사용할 때 → replica
  • **논리 복제(publication/subscription)**이나 Change Data Capture(CDC), Debezium, 파티셔닝된 복제 등이 필요할 때 → logical

 

'DB > PostgreSQL' 카테고리의 다른 글

PREPARE TRANSACTION  (3) 2025.07.30
PostgreSQL 아키텍쳐 및 컴포넌트  (2) 2025.07.29
pg_hba 란?  (0) 2025.03.25
Patroni의 명령어  (0) 2025.03.25
PostgreSQL 베어메탈 환경에서 설치  (0) 2025.03.02