본문 바로가기
DB/PostgreSQL

Grafana 연동을 위한 testDB 설치 (Postgresql 설치)

by hnrupangit 2022. 9. 2.
CentOS에서 Postgresql 소스 컴파일 설치

 

Postgresql을 설치하기 앞서, yum으로도 설치가 가능하지만 설치파일이 서버에 있었고, 직접 설치하면서 정리를 한번 해보고자 소스 컴파일로 Postgresql을 설치하였습니다.

PostgreSQL 설치 전 준비 List

  • Postgresql 13.2 설치파일
  • 사용자 계정
  • 설치 및 데이터 디렉터리

사용자 계정 : postgres:dba

설치 기본 디렉터리 : /data/appstore/POSTGRE/postgre13

데이터 디렉터리 : /data/appstore/POSTGRE/postgre13/data

 

1. 설치 디렉터리를 생성하여 소유권 변경

$ mkdir -p /data/appstore/POSTGRE/postgre13 
$ mkdir -p /data/appstore/POSTGRE/postgre13/data
$ chown -R postgres:dba /data/appstore/POSTGRE/postgre13 

 

2. 사전 필수 설치 패키지 설치

yum install readline readline-devel  
yum install zlib zlib-devel 
yum install openssl openssl-devel 
yum install python3 python3-devel
yum install perl systemd-devel 
yum install gcc gcc-c++  
yum install systemd systemd-devel  
yum install gettext gettext-devel autoconf wget flex

 

3. 설치 파일 tar 풀기

gunzip -cvf postgresql-13.2.tar.gz 
tar -xvf postgresql-13.2.tar

 

4. 소스 컴파일 및 설치

./configure --prefix=/data/appstore/POSTGRE/postgre13/ --with-python --with-openssl --sysconfdir=/data/appstore/POSTGRE/postgre13/conf

 

[기본 compile 옵션]

--prefix PostgreSQL을 설치할 디렉토리
--sysconfdir 환경파일 위치. 기본값은 prefix밑의 etc디렉토리
--datarootdir 다양한 유형의 읽기 전용 데이터 파일에 대한 루트 디렉토리를 설정. 다음 옵션 중 일부에 대해서만 기본값을 설정. 기본값은 PREFIX / share
--datadir 설치된 프로그램에서 사용하는 읽기 전용 데이터 파일의 디렉토리를 설정. 기본값은 DATAROOTDIR. 이것은 데이터베이스 파일이 설치될 위치와는 아무 관련이 없음.
--with-perl perl 사용 가능
--with-python 파이선 사용 가능
-with-openssl SSL통신 사용 가능
--with-segsize 세그먼트 크기 (GB)를 설정. 큰 테이블은 각각 세그먼트 크기와 동일한 크기의 여러 운영 체제 파일로 나뉘게 된다. 이렇게 하면 많은 플랫폼에 존재하는 파일 크기 제한 문제를 방지 할 수 으며, 기본 세그먼트 크기 인 1GB는 지원되는 모든 플랫폼에서 안전하다. 운영 체제에 "largefile" 지원이 있는 경우(요즘 대부분 지원) 더 큰 세그먼트 크기를 사용할 수 있다. 이는 매우 큰 테이블로 작업 할 때 사용되는 파일 설명자 수를 줄이는 데 도움이 될 수 있다. 그러나 플랫폼 및 사용하려는 파일 시스템에서 지원하는 것보다 큰 값을 선택하지 않도록주의해야한다. tar와 같이 사용할 수 있는 다른 도구도 사용 가능한 파일 크기에 대한 제한을 설정할 수 있다. 절대적으로 필요한 것은 아니지만 이 값은 2의 거듭 제곱이 되는 것이 좋다.이 값을 변경하려면 initdb가 필요
--with-block-size 블록 크기 (KB)를 설정. 이것은 테이블 내의 스토리지 및 I / O 단위. 기본값 인 8KB는 대부분의 상황에 적합. 그러나 특별한 경우에는 다른 값이 유용 할 수 있다. 값은 1에서 32 (킬로바이트) 사이의 2 제곱이어야한다. 이 값을 변경하려면 initdb가 필요
--with-wal-blocksize WAL 블록 크기를 KB 단위로 설정. 이것은 WAL 로그 내의 스토리지 및 I / O 단위. 기본값 인 8KB는 대부분의 상황에 적합. 그러나 특별한 경우에는 다른 값이 유용 할 수 있다. 값은 1에서 64 (킬로바이트) 사이의 2의 거듭 제곱이어야함. 이 값을 변경하려면 initdb가 필요
--enable-nls 사용자가 원하는 메세지로 번역되게 함. 서버의 로케일 동작은 클라이언트 환경이 아니라 서버에서 표시되는 한경변수에서 결정.
--with-systemd CentOS 7이상에서 지원하는 systemd 를 사용하여 PostgreSQL시작 및 중지를 한다

 

make 
make install

 

5. 소유권 변경

cd /data/appstore/POSTGRE 
chown -R postgres:dba

 

6. 환경설정

su - postgres
vi .bash_profile
PGHOME=/POSTGRE/postgre13/ 
PGDATA=/POSTGRE/postgre13/data 
PATH=$PGHOME/bin:$PATH:$HOME/.local/bin:$HOME/bin 
LD_LIBRARY_PATH=/$PGHOME/lib
PGDATABASE=postgres 

export PGHOME 
export PGDATA 
export PATH 
export LD_LIBRARY_PATH 
export PGDATABASE

저장 후 반영

. ./.bash_profile

 

7. 클러스터 생성

PostgreSQL을 실행하려면 클러스터를 생성해야 Database를 사용할 수 있다.

클러스터 생성 후 postgresql이라는 기본 catalog database가 생성된다.

이 데이터베이스에는 postgresql 유저정보, Database 정보, 스키마 정보 등 모든 카탈로그 정보들이 포함되어 있다. postgres 계정으로 생성한다.

su - postgres 
initdb -D $PGDATA --encoding=’utf8’ --locale=’ko_KR.UTF-8’ --lc-collate=’ko_KR.UTF-8’ --lc-ctype=’ko_KR.UTF-8’

 

8. Database 기동 및 리스트 확인

pg_ctl start 
pg_ctl status 
pg_ctl stop 
ps -ef | grep postgres

 

'DB > PostgreSQL' 카테고리의 다른 글

PostgreSQL 버전정보 확인 방법 (3가지)  (0) 2022.09.16
PostgreSQL Test DB, Test 계정 생성  (0) 2022.09.05

댓글