본문 바로가기
C.W.K.
Stream
Lesson 06 of 10 · published

백업: 논리와 물리

~14 min · apps, backups

Level 0스키마 새싹
0 XP0/86 lessons0/10 achievements
0/120 XP to next level120 XP to go0% complete

서로 다른 복구 목적

pg_dump는 SQL로 다시 만들 수 있는 논리 백업이라 버전 사이 이식과 일부 테이블 선택에 좋아. pg_basebackup은 데이터 디렉터리를 그대로 복사하는 물리 백업이라 빠른 복구와 WAL 기반 시점 복구에 맞아.

3-2-1로 복사본을 나눠

복사본 3개를 2종류 매체에 두고 1개는 다른 장소에 둬. 관리형 제공자의 스냅샷만 믿지 말고, 별도 논리 덤프를 S3·R2·Backblaze 같은 다른 장소에도 보관해.

복원 시험이 백업을 증명해

새 샌드박스에 실제로 복원하고 행 수와 대표 질의를 확인해. 복원하지 않은 백업은 희망일 뿐이야.

Code

데이터베이스 하나의 논리 백업·bash
# Plain SQL dump — readable, 복원 느림
pg_dump -h prod-db -U app -F p -f mydb.sql mydb

# Custom format — 압축, parallel 복원, 선택적
pg_dump -h prod-db -U app -F c -f mydb.dump mydb

# Custom dump 복원
createdb mydb_restored
pg_restore -h localhost -U app -d mydb_restored mydb.dump
일부 데이터만 덤프하고 복원하기·bash
# 한 schema, 한 테이블, 데이터만, 스키마만 dump...
pg_dump -h prod -U app -t public.orders -t public.line_items mydb > orders.sql
pg_dump -h prod -U app --schema-only mydb > schema.sql
pg_dump -h prod -U app --data-only --table=public.users mydb > users_data.sql
물리 기본 백업·bash
# Base 백업 (replication-capable user 필요)
pg_basebackup -h prod -U replicator -D /var/backups/pg/$(date +%F) -X stream -P -R
# Point-in-time recovery 위해 WAL archiving 과 결합

External links

Exercise

운영 중인 데이터베이스 하나를 논리 백업해 새 샌드박스 데이터베이스에 복원해. 행 수를 비교하는 질의를 실행하고 걸린 시간을 기록해. 그 시간은 현재 환경에서 실제로 확인한 복원 시간이야. 이 값을 근거로 복구 시간 목표(RTO)를 정해.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.