Ubuntu 서버에서 기존에 사용하던 PostgreSQL 14 버전을 PostgreSQL 16으로 업그레이드하면서 데이터 손실 없이 마이그레이션한 실제 과정을 정리한 가이드입니다.
전체 데이터 백업, 신규 버전 설치, 데이터 복원, 구버전 제거까지 전 과정을 단계별로 따라 할 수 있도록 구성했습니다.
1. 현재 PostgreSQL 버전 및 클러스터 상태 확인
psql --version
pg_lsclusters
클러스터 상태에서 14/main이 활성화되어 있는지 확인합니다.
2. 전체 데이터 백업
PostgreSQL은 pg_dumpall
명령을 통해 전체 데이터베이스, 사용자, 권한 정보를 포함한 백업을 할 수 있습니다.
sudo -u postgres pg_dumpall > ~/pg_backup_all.sql
백업 검증 예시 (선택적)
head ~/pg_backup_all.sql
tail ~/pg_backup_all.sql
파일 존재 여부 및 용량 확인
ls -lh ~/pg_backup_all.sql
3. PostgreSQL 16 설치
3-1. 공식 레포지터리 등록
sudo apt update
sudo apt install wget ca-certificates -y
wget -qO - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/pgdg.gpg
echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
3-2. PostgreSQL 16 설치
sudo apt update
sudo apt install postgresql-16 -y
설치가 완료되면 다시 클러스터 상태를 확인해 봅니다.
pg_lsclusters
4. 클러스터 전환
기존 14 버전을 중지하고 16 버전을 시작합니다.
sudo systemctl stop postgresql@14-main
sudo systemctl start postgresql@16-main
5. 데이터 복원 (PostgreSQL 16으로)
복원 전, 새로 설치된 16버전에 접속이 잘 되는지 확인합니다.
(포트번호는 pg_lsclusters
에서 확인)
sudo -u postgres psql -p 5433
접속이 잘 되면 아래 명령으로 백업했던 데이터를 복원합니다:
sudo -u postgres psql < ~/pg_backup_all.sql
less ~/pg_backup_all.sql | grep ERROR
를 통해 에러 발생 여부를 확인할 수 있습니다.
6. PostgreSQL 14 제거 (선택 사항)
업그레이드 및 데이터 복원이 완료되었고 문제가 없다면, PostgreSQL 14를 제거할 수 있습니다:
sudo pg_dropcluster 14 main --stop
sudo apt remove postgresql-14 -y
마무리
이번 과정은 Ubuntu 서버에서 PostgreSQL 14에서 16으로의 업그레이드 및 마이그레이션이 필요한 분들에게 유용할 것입니다.
데이터 백업 → 신규 설치 → 복원 → 구버전 제거의 순서를 따라 안전하게 버전을 전환하세요.
서버의 사용자명, 포트번호 등은 여러분 환경에 맞게 조정하시면 됩니다.
Add a New Comment