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 |
댓글