ACTIVE INCIDENT
00:00 elapsed
LABLAB-DB-11-REPLICATION-LAGSEV-1
복제 지연 진단 — pg_stat_replication·LSN·lag
ELAPSED
00:00
PHASE
0 / 3
SLA
40분
🗄️ Database
← 목록
INCIDENT RESPONSE
0 / 4 단계 완료
📚 PREREQUISITES
Labpostgresql-setup
Theorydatabase/replication-ha
TRACK
DATABASE
SLA
40분
SEV
SEV-1
PHASES
2단계
ENV
local
INCOMING TICKET
슬랙 알람: "사용자가 방금 바꾼 프로필이 새로고침하면 예전 값으로 보인대요. 읽기는 복제본(replica)에서 하는데, 복제가 밀린 거 아닐까요?"
YOUR ROLE
주니어 인프라 엔지니어
IMPACT IF UNRESOLVED
복제 지연으로 읽기 복제본이 최신 데이터를 못 반영 — 사용자에게 옛 데이터 노출(읽기 일관성 깨짐), 심하면 복제 중단으로 장애 전파
🚨INCIDENT BRIEF
슬랙에 알람이 왔습니다.
"사용자가 프로필을 수정했는데, 새로고침하면 옛날 값이 보인다는 문의가 들어와요. 우리 서비스는 쓰기는 Primary에, 읽기는 Replica에서 하는 구조인데, 복제가 밀린 것 같아요. 얼마나 밀렸는지, 왜 밀렸는지 봐주실 수 있나요?"
Primary에서 pg_stat_replication으로 각 Replica의 복제 상태를 확인하고, LSN(Log Sequence Number) 차이와 replay_lag로 "얼마나 밀렸는가"를 바이트와 시간으로 정량화합니다. Replica에서도 지연을 측정해 교차 확인하고, write/flush/replay 중 어느 단계에서 막혔는지로 원인을 좁힙니다.
⏱ 40분📊 고급🔧 2단계#postgresql#replication#lag#lsn
MISSION
1
Primary에서 복제 상태 + LSN 차이 확인
pg_stat_replication에서 각 Replica의 state, sent/write/flush/replay LSN과 lag를 확인해 지연을 정량화한다
2
Replica에서 지연 시간 측정 + 원인 좁히기
Replica에서 pg_last_xact_replay_timestamp로 지연 시간을 측정하고, recovery 충돌·WAL 수신 상태로 원인을 좁힌다
📌 선수 지식
• [실습] postgresql-setup
ℹ️ 실습 환경
환경: local
필요 도구: bash, postgresql, psql
검증 스크립트: /labs/lab-db-11-replication-lag/scripts/verify.sh
🔒
실습 실행은 Pro 플랜 전용입니다
인시던트 브리프와 학습 자료는 지금 바로 확인할 수 있습니다. 실제 실습 진행 및 터미널 사용은 Pro 플랜에서 가능합니다.
Pro로 업그레이드 →
>_ LAB TERMINAL↔ 너비 조절
NOTES