PostgreSQL

PostgreSQL: RHEL 기반 Linux에 PostgreSQL 설치 방법

dewstream 2024. 11. 29. 10:12
728x90

※ Installing PostgreSQL 16 on Linux from source.
※ Version: Linux 8.10 (Rocky), PostgreSQL 16.4.
※ 싱글 환경은 CPU 2Core, Memory 4GB 이상을 권장합니다.
 
순서대로 따라 하시면 설치가 되는 마법을 경험하실 수 있습니다.
 
싱글 설치부터 파라미터 설정, HA 구성 그리고 Extension, Tool 등 순차적으로 포스팅 예정입니다.


1. 사전 준비

▸ 패키지 업데이트 및 필수 패키지 설치

dnf update -y
dnf groupinstall -y "Development Tools"
dnf install -y wget readline-devel zlib-devel bison flex libxml2-devel libxslt-devel openssl-devel libicu libicu-devel perl

# glibc locale 사용시
dnf install -y glibc-all-langpacks

 
PostgreSQL 관리를 위한 OS 계정 추가

useradd -m -U -r postgres

 

▸ 추가한 OS 계정 비밀번호 설정

passwd postgres


▸ PostgreSQL에서 사용할 디렉토리를 생성하고 권한 조정
→ 엔진 영역, 데이터 영역, 백업 영역

mkdir -p /postgres /data /backup/archive /backup/backup /backup/pg_dump
chown -R postgres:postgres /postgres /data /backup/archive /backup/backup /backup/pg_dump
chmod 700 /postgres /data /backup/archive /backup/backup /backup/pg_dump
데이터 영역은 파티션의 첫 뎁스(마운트 지점 루트)일 경우 lost+found 이슈가 있을 수 있으므로, 한 뎁스 더 들어가시길 권장합니다.

 

2. PostgreSQL 다운로드 및 컴파일, 설치

wget을 활용하여 PostgreSQL을 다운로드하고 압축 해제

cd ~
wget https://ftp.postgresql.org/pub/source/v16.4/postgresql-16.4.tar.gz
tar -zxvf postgresql-16.4.tar.gz
cd postgresql-16.4

 
▸ configure, 컴파일, 실행

./configure --prefix=/postgres --with-openssl --with-libxml --with-libxslt --with-icu
make -j$(nproc) && make install

 

▸ postgres 하위 디렉토리 오너 변경

chown -R postgres:postgres /postgres

 

3. 환경변수 설정

▸ 사전 생성한 PostgreSQL 관리용 OS 계정으로 전환

su - postgres

 
PostgreSQL 전용 환경변수 파일 생성

vi /home/postgres/.postgresrc

 
▸ 삽입 모드

i

 
▸ 아래 내용 복사 후 붙여넣기

# PostgreSQL env.
export PGHOME=/postgres
export PGBIN=$PGHOME/bin
export PGLIB=$PGHOME/lib
export PGPORT=5432
export PGDATA=/data
export LD_LIBRARY_PATH=$PGLIB:$LD_LIBRARY_PATH
export PGUSER=postgres
export PGDATABASE=postgres
export PGLOG=/data/log
export SRVLOG=$PGLOG
export PATH=$PGBIN:$PATH
export LANG=C
export PGALOG=/backup/archive
export PGBBAK=/backup/backup
export PGBLOG=$PGLOG
export HOSTUSER=postgres
export BACKUP_PATH=/backup/backup
export PGDBAK=/backup/pg_dump

 
▸ 저장 후 vi 에디터 종료

esc
:
wq
Enter

 
.bashrc 파일 수정

vi /home/postgres/.bashrc

 
▸ 삽입 모드

ctrl + End
a
Enter
Enter

 
아래 내용 복사 후 붙여넣기

# Get postgres env.
if [ -f ~/.postgresrc ]; then
    . ~/.postgresrc
fi

 
▸ 저장 후 vi 에디터 종료

esc
:
wq
Enter

 
▸ 변경 사항 적용
→ source 명령어를 사용하여 셸 재시작 없이, 현재 셸에서 변경사항을 즉시 적용합니다.

source .postgresrc
source .bashrc

 

4. initdb

initdb --pgdata=/data \
       --encoding=UTF8 \
       --locale=ko_KR.UTF-8 \
       --data-checksums

# 15+: --icu-locale, --locale-provider=icu 사용 가능
initdb --pgdata=/data \
       --encoding=UTF8 \
       --icu-locale=ko-KR \
       --locale-provider=icu \
       --data-checksums

 

5. PostgreSQL Log 디렉토리 생성, 권한 조정 (필요시)

→ 데이터 영역 내 로그 디렉토리 생성으로 initdb 후 생성해야 합니다.

mkdir /data/log
chmod 700 /data/log
postgresql.conf와 디렉토리의 오너 및 권한이 제대로 설정되어 있을 경우, DB 기동 시 로그 디렉토리 및 파일은 자동 생성됩니다.

 

6. 작동 확인

pg_ctl start
psql
select version();

PostgreSQL의 파라미터 설정 방법은 다음 포스팅에서 이어가겠습니다.

기대해주세요!

728x90