나의 잡다한 노트 및 메모
PG의 wal_level 설정 본문
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 |