[컴][DB] Ubuntu 에서 PostgreSQL upgrade 하기 9.4 -> 9.5

postgresql 업그레이드 / postgres upgrade / db 업그레이드



Upgrade PostgreSQL 9.4 -> PostgreSQL 9.5


절차

  1. PostgreSQL 9.5 설치
    1. pgdg.list 만들기
    2. repository 관련 인증서 설치
    3. postgresql-9.5 설치
  2. data upgrade (clster upgrade)
    1. postgres 계정
    2. 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-certificates
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -


postgresql-9.5 설치

sudo apt-get update
sudo 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

  1. How To Move a PostgreSQL Data Directory to a New Location on Ubuntu 16.04 | DigitalOcean : 같은 버전의 db 를 사용하면서 data_directory 를 한 개 더만들어서 사용하는 부분이 나와 있다. 
  2. PostgreSQL: Documentation: 9.5: pg_upgrade
  3. How to upgrade PostgreSQL from version 9.4 to version 9.5 without losing data? - Stack Overflow
  4. Using pg upgrade on Ubuntu/Debian - PostgreSQL wiki
  5. Upgrading PostgreSQL from 9.4 to 9.5 on Ubuntu 15.10 – Chaps



댓글 없음:

댓글 쓰기