회사에서 테스트 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. 주의
- 경로에 한글/공백이 있으면 실패하는 경우가 많다
- 같은 이름의 DB에 복원하면 데이터가 덮어쓰기 된다
- 복원 후엔 권한 및 연결 설정 확인하기
- PostgreSQL은 백업 파일에 기존 데이터베이스 소유자(예: postgres) 정보를 포함시키므로, 복원 서버에 해당 ROLE이 없으면 실패할 수 있다. 사전에 동일한 ROLE 생성하거나, 복원 시 Restore Options > Pre-data 탭에서 No owner 체크박스를 선택해야 한다.
pgAdmin을 통해 GUI로 백업/복원을 해보았다. 다음엔 CLI 도구를 사용해서도 진행해 보아야겠다.
'Today I Learned > Database' 카테고리의 다른 글
[Oracle] Oracle에서 NULL 값 다루기 (0) | 2025.03.09 |
---|---|
[Query] JSON 데이터 처리 방식 : PostgreSQL / Oracle (0) | 2024.11.21 |
[Query] select 1 from dual (3) | 2023.02.14 |
[Query] CLOB 데이터 유형 + distinct (1) | 2023.02.14 |