PostgreSQL 데이터베이스를 다른 서버로 이전하는 방법
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
DevOps
대상자
- 시스템 관리자 및 개발자
- 중간 수준의 기술 지식을 가진 사용자 (명령어 기반 도구 사용, 데이터베이스 이전 경험 필요)
핵심 요약
pg_dump
와pg_restore
도구를 사용한 논리적 백업 및 복원이 주요 방법- 데이터 무결성 보장을 위해 이전 전 백업을 수행하고, 호환성 확인 필수
- Ubuntu 22.04 환경에서의 구체적 명령어 예시 포함 (
pg_dump -Fc -b -v -f backup.dump dbname
)
섹션별 세부 요약
1. 이전 방법 개요
- PostgreSQL의 내장 도구(
pg_dump
,pg_restore
)로 데이터베이스 이전 가능 - 물리적 복제(Physical Replication)와 논리적 복제(Logical Replication) 두 가지 주요 방법 존재
- 이전 전 데이터베이스 버전, 설정 파일, 사용자 권한 일치 여부 검증 필요
2. 논리적 이전 단계
- 1단계: 백업 생성
pg_dump
명령어로 데이터베이스 덤프 파일 생성 (pg_dump -Fc -b -v -f backup.dump dbname
)- 2단계: 덤프 파일 이전
- 생성된 파일을 목적지 서버로 복사 (scp, rsync 등)
- 3단계: 복원 실행
pg_restore
로 덤프 파일을 목적지 서버에 적용 (pg_restore -Fc -d dbname backup.dump
)
3. 물리적 복제 방법
- 데이터 디렉토리 복사로 이전 가능 (기본 설정 파일(
postgresql.conf
)과 복구 설정(recovery.conf
) 조정 필요) - 이전 서버의 데이터 디렉토리(
pgdata
)를 목적지 서버로 복사 - 목적지 서버에서
recovery.conf
파일에 원본 서버 정보 입력 후 재시작
4. 호환성 및 이슈 대응
- PostgreSQL 버전 호환성 확인 (예: 12→13 이전 시
pg_upgrade
사용) - 이전 후 인덱스, 시퀀스, 권한 재검증
- 대규모 데이터베이스의 경우 분할 백업 및 병렬 복원 권장
결론
pg_dump
/pg_restore
를 사용한 논리적 이전이 간단하고 안정적인 방법임- 이전 전 호환성 검증과 이전 후 데이터 무결성 검증 필수
- 대규모 데이터베이스의 경우 분할 백업과 병렬 복원 전략 적용 권장