본문 바로가기
Today I Learned/Database

[Postgres] pgAdmin을 통해 데이터 Backup / Restore

by dbs_ 2025. 5. 22.

 

회사에서 테스트 DB를 백업하거나 로컬 환경으로 복원해야 할 일이 종종 생긴다. 오늘은 pgAdmin을 이용해서 PostgreSQL 데이터베이스를 백업하고 복원하는 방법을 정리해 보았다.

 

1. 환경정보

  • PostgreSQL 14
  • pgAdmin 4 (Windows 환경 기준)
  • 대상 DB 이름: local_design_test_backup

 

2. 백업하기 (Backup)

1) 백업할 DB Backup... 하기

pgAdmin 실행 후 왼쪽 트리에서 백업 대상 DB를 우클릭 → Backup... 클릭

2) 백업 옵션 설정

  • Filename : 백업 파일 저장 경로 입력 (예: C:\Users\Test\Documents\test_backup.backup)
  • Format : Custom 선택 (기본값)
  • Encoding : 문자 인코딩 (UTF-8 권장)
  • 다른 옵션은 기본값 유지해도 무방

  •  Sections
    • Pre-data : 테이블 구조 정의 전의 정보 (스키마 정의 등)
    • Data : 실제 데이터
    • Post-data : 제약조건, 인덱스, 트리거 등
  • Type of objects
    • Only data : 데이터만 백업
    • Only schema : 스키마만 백업
    • Blobs : BLOB (이미지, 파일 등 바이너리 데이터)
  • Do not save
    • 소유자, 권한, 테이블스페이스, 코멘트 등 백업할지

3) 백업 실행

  • 하단에 Backup 버튼 클릭
  • 하단 로그창에 Successfully completed 메시지가 뜨면 정상 완료

 

3. 복원하기 (Restore)

1) pgAdmin에서 새 DB 생성

기존 DB를 덮어쓰지 않으려면, 새로 DB를 하나 만든다.
우클릭 → Create > Database → 이름 입력 (예: restore_test_db)

2) 복원 시작

새로 만든 DB (restore_test_db)를 우클릭 → Restore... 클릭

3) 복원 옵션 설정

  • Format : Custom or tar
  • Filename : 아까 백업한 .backup 파일 경로 입력
    (예 : C:\Users\Test\Documents\test_backup.backup)

4) Restore 실행

  • 하단 Restore 버튼 클릭
  • exit code 0 메시지가 보이면 복원 성공
  • 테이블, 시퀀스, 함수 등 모든 객체가 복원된 걸 확인할 수 있다

 

4. 주의

  1. 경로에 한글/공백이 있으면 실패하는 경우가 많다
  2. 같은 이름의 DB에 복원하면 데이터가 덮어쓰기 된다
  3. 복원 후엔 권한 및 연결 설정 확인하기
    • PostgreSQL은 백업 파일에 기존 데이터베이스 소유자(예: postgres) 정보를 포함시키므로, 복원 서버에 해당 ROLE이 없으면 실패할 수 있다. 사전에 동일한 ROLE 생성하거나, 복원 시 Restore Options > Pre-data 탭에서 No owner 체크박스를 선택해야 한다.

 

pgAdmin을 통해 GUI로 백업/복원을 해보았다. 다음엔 CLI 도구를 사용해서도 진행해 보아야겠다.