PostgreSQL에서는 다양한 방식의 백업을 지원합니다. 장애나 실수에 대비하기 위해 자신에게 맞는 백업 전략을 구성하는 것이 매우 중요합니다.
이 글에서는 PostgreSQL에서 제공하는 3가지 주요 백업 방식을 정리해드릴게요.
✅ PostgreSQL 백업 종류

* pg_basebackup은 물리적 백업 방식
| 종류 | 설명 | 특징 |
| 1. SQL Dump(pg_dump, pg_dumpall) | SQL 문장 형태로 백업 | 이식성 좋음, 유연 |
| 2. 파일 기반 백업 | 데이터 디렉터리 복사 | 빠르고 전체 복구 가능 |
| 3. PITR (Point-in-Time Recovery) | 특정 시점으로 복구 가능 | WAL 로그 기반, 고급 백업 |
- 논리적 데이터베이스 백업(pg_dump, pg_dumpall)
- pg_dump : 전체 or 특정 테이블을 텍스트 파일로 백업 (pg_restore)
- pg_dump 기능을 통해 백업 수행
- 범위 : 스키마, 테이블, 데이터 베이스
- Restore 2가지 방법 : pg_restore, psql
- pg_dumpall: 클러스터 전체 백업(user, role 포함)
- pg_dumpall 기능을 통해 백업수행
- Full backup 기능 수행
- Restore 2가지 방법 : pg_restore, psql
- 바이너리 형식으로 추출 및 저장된 데이터베이스의 논리적 정보 복사본
- 뷰, 프로시저, 함수 및 테이블을 포함
- 사용자가 데이터베이스 복사본을 다른 위치로 복원하거나 전송하려는 경우에 유용
- pg_dump : 전체 or 특정 테이블을 텍스트 파일로 백업 (pg_restore)
1. pg_dump
# 단일 DB 백업
pg_dump -U postgres -d mydb -f mydb.sql
2. pg_dumpall
# 전체 백업
pg_dumpall -U postgres -f all.sql
- 물리적 데이터베이스 백업(pg_basebackup, rsync, cp)
- pg_basebackup : 전체 DB 백업, 빠르고 안정적 (pg_start_backup(), pg_stop_backup())
- replication 기능
- Server to Server
- rsync, cp : 파일시스템 복사
- 전체 데이터베이스 내용, 구조, 테이블 및 데이터 베이스를 복원하는데 필요한 모든 관련 트랜잭션의 복사본
- 데이터 파일, 제어 파일 및 아카이브된 리두 로그가 포함
- 단기간에 전체 데이터베이스를 복원
- pg_basebackup : 전체 DB 백업, 빠르고 안정적 (pg_start_backup(), pg_stop_backup())
1. Cold Backup
DB shutdown → pg_stl start → OS DATA FILE COPY
→ cp -r $PGDATA/backup → Rcync -a $PGDATA/backup
2. Hot Backup
DB open → 아카이브모드 상태 → select pg_start_backup('라벨');
→ cp -r $PGDATA/postgre_data → select pg_stop_backup();
3. pg_basebackup
pg_basebackup -U repl_user -D /backup/data -Ft -z -P -Xs
'🗄️ DB_이야기 > # 🐘 PostgreSQL' 카테고리의 다른 글
| 🐘 [PostgreSQL] SQL 덤프 백업 & 복구(pg_dump) (0) | 2025.08.21 |
|---|---|
| 🐘[PostgreSQL]AWS EC2(Ubuntu)에 PostgreSQL 싱글 노드 설치하기 (1) | 2025.08.20 |
| 🐘[PostgreSQL] DB Link(DB접근) (1) | 2025.08.01 |
| 🐘[PostgreSQL] 유저(User) 생성, 변경, 삭제, 조회 (1) | 2025.08.01 |
| 🐘[PostgreSQL] 기본 명령어 정리 (1) | 2025.08.01 |
