에듀테크 프로젝트 대시보드
WAL 과 복제
WAL(Write-Ahead Log)은 '변경을 데이터 파일보다 먼저 기록하는 로그'입니다. 크래시 복구·복제·시점 복구가 모두 여기서 나옵니다.
체크포인트는 더티 페이지를 데이터 파일에 몰아 씁니다. 너무 잦으면 I/O 폭증 → max_wal_size·checkpoint_timeout 로 조절.
Primary ──WAL 스트림──▶ Standby (hot standby: 읽기 쿼리 가능)
replication slot 으로 WAL 유실 방지# primary: postgresql.conf
wal_level = replica
max_wal_senders = 10
# standby 구축
# pg_basebackup -h primary -D /var/lib/postgresql/16/main -R --slot=s1 -C| 모드 | 특징 |
|---|---|
| 비동기 (기본) | 빠름 · primary 장애 시 마지막 몇 트랜잭션 유실 가능 |
동기 (synchronous_standby_names) | standby 안착까지 COMMIT 대기 · 유실 0 · 지연 ↑ |
SELECT client_addr, state, sent_lsn, replay_lsn,
pg_wal_lsn_diff(sent_lsn, replay_lsn) AS 지연바이트
FROM pg_stat_replication;PITR — 베이스 백업 + 아카이브된 WAL 로 '어제 14:03' 같은 특정 시점까지 재생 복구. 실수로 DROP TABLE 했을 때의 안전망.
논리 복제(PUBLICATION/SUBSCRIPTION)는 테이블 단위·다른 메이저 버전 간 복제가 가능해 무중단 업그레이드에 씁니다.