본문 바로가기

Database/PostgreSQL

RHEL7에 PostgreSQL 설치

반응형

1. Yum Repository Update 하기

Redhat 계열에서 Yum을 이용해서  PostgreSQL을 다소 쉽게 설치할 수 있다.

이를 위해 자신이 사용하고 있는 OS 버전과 설치하고자 하는 PostgreSQL  버전 확인이 필요하다.


>> Repository  확인


이 예제에서는 Oracle Linux 7.4 + PostgreSQL 9.6을 사용하기 때문에 아래와 같이 Repository를 Update 한다.

...
[root@ha-test-1 bin]$ rpm -Uvh https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
...

정상적으로 끝나면 Repository를 확인해보자. pgdg-redhat-all.repo 가 추가되어 있는 것을 확인할 수 있다.

...
[root@ha-test-1 bin]$ ls -l -a  /etc/yum.repos.d/
total 32
-rw-r--r--. 1 root root 2142 Jul 24  2017 elrepo.repo
-rw-r--r--. 1 root root 3354 Apr 29 19:09 oracle-linux-ol7.repo.disabled
-rw-r--r--. 1 root root 5189 Apr 17 13:12 pgdg-redhat-all.repo
-rw-r--r--. 1 root root 6282 Aug  2  2017 public-yum-ol7.repo
-rw-r--r--. 1 root root 2116 Apr 29 19:09 uek-ol7.repo.disabled
-rw-r--r--. 1 root root  226 Mar 20 03:27 virt-ol7.repo.disabled
...


2. PostgreSQL install

...
[root@ha-test-1 ~]$ yum install postgresql96-server postgresql96
...

Install이 정상적으로 마무리되면 /usr/pgsql-x.x 이라는 Directory가 만들어진다. (뒤에 x.x는 PostgreSQL 버전에 따라 다르게 생성 된다.)



3. DB 초기화 (저장 위치 생성)

PostgreSQL Document에서는 이렇게 설명하고 있다. 'initdb creates a new PostgreSQL database cluster. A database cluster is a collection of databases that are managed by a single server instance.' >> Link

요약하자면 DB data들을 저장하는 물리적인 공간을 확보하는 것이다.


아래의 명령을 실행하면 된다. (버전에 따라 위치가 다르다. 이 Post에서는 PostgreSQL 9.6을 사용하고 있다.)

...
[root@ha-test-1 ~]$ /usr/pgsql-9.6/bin/postgresql96-setup initdb
...

정상적으로 'Initializing database ... OK' 라는 메시지가 나오면 아래를 통해 Directory가 잘 만들어 진 것을 확인할 수 있다.

...
[brown@ha-test-1 ~]$  ls -l -a /var/lib/pgsql/9.6/
합계 8
drwxr-xr-x.  3 root     root       36  9월 11 18:21 .
drwx------.  3 postgres postgres   80  9월 11 18:21 ..
drwx------. 20 postgres postgres 4096  9월 11 18:21 data
-rw-------.  1 postgres postgres 1290  9월 11 18:21 initdb.log
...

* Remark

한 번에 잘되면 좋지만 대부분 한 번에 잘될 리가 없다. 대표적인 오류는 Permission Denied이고 이 때는 Root로 실행을 하거나 sudo 를 사용해야 한다. 또, 이전에 잘못 만들어진 Directory가 있으면 'Data directory is not empty!' 메시지가 나온다. 필자가 몇 번 재 설치 하는 과정에서 이 오류가 발생했었는데 '/var/lib/pgsql/9.6' Directory를 백업한 이후에 rm -r -f로 기존 내용을 다 날려버렸다.