본문 바로가기
🗄️ DB_이야기/# 🐘 PostgreSQL

🐘[PostgreSQL] PostgreSQL 백업 종류

by gwon_s 2025. 8. 1.

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
    • 바이너리 형식으로 추출 및 저장된 데이터베이스의 논리적 정보 복사본
    • 뷰, 프로시저, 함수 및 테이블을 포함
    • 사용자가 데이터베이스 복사본을 다른 위치로 복원하거나 전송하려는 경우에 유용 

  

   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 : 파일시스템 복사
      • 전체 데이터베이스 내용, 구조, 테이블 및 데이터 베이스를 복원하는데 필요한 모든 관련 트랜잭션의 복사본
      • 데이터 파일, 제어 파일 및 아카이브된 리두 로그가 포함
      • 단기간에 전체 데이터베이스를 복원

   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