※ 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의 파라미터 설정 방법은 다음 포스팅에서 이어가겠습니다.
기대해주세요!
'PostgreSQL' 카테고리의 다른 글
| PostgreSQL: 쉘 스크립트로 PostgreSQL 고가용성(HA) 구현 (2) | 2024.12.11 |
|---|---|
| PostgreSQL: 고가용성(HA) 도구 비교 - Patroni vs repmgr (0) | 2024.12.10 |
| PostgreSQL: 이중화 장애 처리, 원상 복구 방법 (32) | 2024.12.09 |
| PostgreSQL: DBMS 이중화 구성 방법 (29) | 2024.12.05 |
| PostgreSQL: postgresql.conf 파라미터 설정 방법 (33) | 2024.12.02 |