반응형
PostgreSQL를 설치할 때, 운영 중인 서버가 외부 통신이 불가능한 경우 혹은 경로를 직접 지정해서 설치하고 싶은 경우에는 컴파일 설치를 진행하는 경우가 있습니다. 이 게시글에서는 Rocky Linux 8.X 환경의 서버에서 PostgreSQL 15.6의 컴파일 설치 과정을 설명합니다.
1. 설치 환경
- OS : Rocky Linux 8.8
- PostgreSQL 설치 버전 : 15.6
2. 경로
- 엔진 : /app/postgres
- 데이터 : /data/postgres
- 로그 : /log/postgres
1. 소스 파일 다운로드 및 파일 업로드
-
소스파일 다운로드 : https://www.postgresql.org/ftp/source/
-
다운로드한 postgresql-15.6.tar.gz 파일을 설치하고자하는 서버에 업로드합니다.
2. 압축 해제
$ tar xvzf postgresql-15.6.tar.gz
3. PostgreSQL 설치 계정 생성
# UID, GID : 3000 (임의)
# swadm : DB를 설치하고 운영할 계정
$ groupadd -g 3000 swadm
$ useradd -u 3000 -g 3000 swadm
$ echo '{패스워드}' | passwd swadm --stdin
4. PostgreSQL 설치 디렉토리 생성 및 소유권 변경
# /app : 엔진 경로
# /data : 데이터 경로
# /log : 로그 경로
$ mkdir /app/postgres
$ mkdir /data/postgres
$ mkdir /log/postgres
$ chown -R swadm:swadm /app/postgres
$ chown -R swadm:swadm /data/postgres
$ chown -R swadm:swadm /log/postgres
5. 사전 패키지 설치
$ yum install readline readline-devel zlib zlib-devel python3 python3-devel gcc gcc-c++ systemd systemd-devel gettext gettext-devel autoconf wget flex
6. configure 설정
./configure --prefix=/app/postgres \
--sysconfdir=/app/prosgres/conf \
--with-python \
--with-openssl \
--with-systemd
# prefix : PostgreSQL 엔진 설치 경로
# sysconfdir : 설정파일이 위치할 경로
7. 컴파일 실행 및 설치
$ make
$ make install
8. 설치 계정 환경 설정
$ vi .bash_profile
# User specific environment and startup programs
PGHOME=/app/postgres
PGDATA=/data/postgres
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
$ source .bash_profile
9. PostgreSQL 초기 데이터베이스 생성
-
postgres의 계정 정보, Database 정보, 스키마 정보 등이 포함된 기본 데이터베이스를 생성합니다.
$ initdb -D $PGDATA --encoding='utf8' --locale='ko_KR.UTF-8' --lc-collate='ko_KR.UTF-8' --lc-ctype='ko_KR.UTF-8'
10. 외부 접속 허용 IP 추가
- pg_hba.conf 파일 하단에 허용 IP와 인증 방식을 추가합니다.
$ vi /data/postgres/pg_hba.conf
host all all 10.100.0.0/16 md5
11. 로그 설정
-
postgresql.conf 에서 아래 부분을 주석 해제 및 수정합니다.
$ vi /data/postgres/postgresql.conf
log_destination = 'stderr'
logging_collector = on
log_directory = '/log/postgres'
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
log_file_mode = 0600
log_rotation_age = 1d
log_rotation_size = 10MB
log_truncate_on_rotation = on
12. PostgreSQL 서버 기동
# 기동
$ pg_ctl start
# 상태 확인
$ pg_ctl status
# 중지
$ pg_ctl stop
반응형
'서버 운영 > Linux' 카테고리의 다른 글
리눅스 LVM 명령어 (0) | 2024.04.09 |
---|---|
Rocky Linux 8.X 에서 Nginx 컴파일 설치 (Nginx 1.24) (0) | 2024.03.22 |
리눅스 하드웨어 정보 확인 (dmidecode 명령어) (0) | 2024.03.21 |
리눅스 성능 측정, 모니터링 패키지 sysstat (0) | 2024.03.21 |
리눅스 rc.local 활성화 (부팅시 스크립트 실행) (0) | 2024.03.21 |