Upgrade PostgreSQL 9.4 -> PostgreSQL 9.5
절차
- PostgreSQL 9.5 설치
- pgdg.list 만들기
- repository 관련 인증서 설치
- postgresql-9.5 설치
- data upgrade (clster upgrade)
- postgres 계정
- pg_upgradecluster
PostgreSQL 9.5 설치
아래 링크에 Debian or Ubuntu 에서 APT repository 를 추가하는 방법이 나와 있다.
pgdg.list 만들기
아래처럼 pgdg.list 를 만든다. trusty 는 Ubuntu 14.04.3 LTS 의 code name 이다. code name 은 "linux code_name" 을 참고하자.$> cat /etc/apt/sources.list.d/pgdg.list
deb http://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main
<linux code_name>
아래 명령어로 linux version , code name 등을 알 수 있다.
cat /etc/*-release
repository 관련 인증서 설치
sudo apt-get install wget ca-certificateswget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
postgresql-9.5 설치
sudo apt-get updatesudo apt-get upgrade
sudo apt-get install postgresql-9.5
sudo apt-get install pgadmin3 # 이건 알아서 하자.
data upgrade (clster upgrade)
postgres 계정
기본적으로 postgres 계정을 이용하도록 하자. root 이 필요할 때만 sudo 를 이용해서 작업하자.pg_upgradecluster
pg_upgrade 에 대해서는 ref. 2, 3, 4 를 보자. 여기서는 pg_upgradecluster 를 사용하도록 하겠다. 이 pg_upgradecluster 녀석이 느린 편이라고 하는데, data 크기에 따라 다르는데, 필자의 경우는 몇분정도 걸리는 듯 했다.
기본적으로 9.5 를 설치하면 cluster 가 만들어지는데, 이녀석을 아래 명령어로 삭제하자.
pg_dropcluster 9.5 main
그리고 9.4 의 data 를 ugrade 하자.
pg_upgradecluster 9.4 main
참고로, major version 이 변경됐을 때 이전버전의 data 를 가져다 쓰면 아래와 같은 error 가 발생한다.
The PostgreSQL server failed to start. Please check the log output: 2016-08-05 13:53:16 JST [24609-1] FATAL: database files are incompatible with server 2016-08-05 13:53:16 JST [24609-2] DETAIL: The data directory was initialized by PostgreSQL version 9.4, which is not compatible with this version 9.5.3.
이전 data 삭제
그러고 이제 이전 version 의 data 가 필요없다면 아래처럼 삭제하면 된다.pg_dropcluster 9.4 main
이전 버전 binary 삭제
binary 도 삭제하려 한다면 아래 처럼 하면 된다.- apt-get purge postgresql-9.4
- apt-get purge postgresql-client-9.4
설치된 package 의 list 는 아래처럼 확인할 수 있다.
- dpkg -l | grep postgre
실행
혹시나 기존의 DB 를 stop 하지 않고, 띄우려고 한다면, /etc/postgresql/9.5/main/postgresql.conf 에서 port 가 겹치지 않는지 먼저 확인하자.port = 5434
/etc/init.d/postgresql 을 이용해서 띄울 수 있다. 아래처럼 뒤에 버전을 추가해서 새로운 버전을 실행할 수 있다.
sudo /etc/init.d/postgresql start 9.5
Reference
- How To Move a PostgreSQL Data Directory to a New Location on Ubuntu 16.04 | DigitalOcean : 같은 버전의 db 를 사용하면서 data_directory 를 한 개 더만들어서 사용하는 부분이 나와 있다.
- PostgreSQL: Documentation: 9.5: pg_upgrade
- How to upgrade PostgreSQL from version 9.4 to version 9.5 without losing data? - Stack Overflow
- Using pg upgrade on Ubuntu/Debian - PostgreSQL wiki
- Upgrading PostgreSQL from 9.4 to 9.5 on Ubuntu 15.10 – Chaps
댓글 없음:
댓글 쓰기