문서유형ㅣ기술정보
분야ㅣ설치
적용제품버전ㅣOpenSQL(PostgreSQL) 14.2
문서번호ㅣOINTI001
개요
OpenSQL(PostgreSQL) DBMS의 설치 절차를 테스트 환경 기준으로 정리한 가이드 입니다.
실제 설치 과정을 통해 확인한 사전 준비 및 설치 단계별 작업 내용을 포함하고 있으며, 테스트 환경에서 OpenSQL을 처음 구축할 경우 참고할 수 있도록 작성 되었습니다.
테스트 환경
- DB : OpenSQL(PostgreSQL) 14.2
- OS : CentOS 7.7
구성정보
| Primary Server | 192.168.41.220 |
|---|---|
| Standby Server | 192.168.41.221 |
| Postgresql Port | 5432 |
| Pcp Port | 9898 |
| Watchdog Port | 9000 |
| Watchdogheartbeat Port | 9694 |
방법
설치 테스트
- 설치 전 준비 사항
1) 최소 설치 사양
• CPU core : 1 Core
• Memory : 300MB
• Disk : 750MB
2) 필수 패키지
• GNU Make 3.80 이상
• 컴파일러 : gcc 권장
• 압축 패키지 : tar
• 압축 라이브러리 (pg_dump, pg_restore) : zlib
• 명령줄 SQL 인터프리터 : readline
• 영어 이외의 메시지 표시 : gettext
• 확장 모듈 : libxslt, libicu
• Git / Libperl 5.8.3 이상
• OpenSQL팀 가이드 패키지 :
# yum install -y make gcc gcc-c++ tar zlib zlib-devel readline readline-devel gettext gettext-devel git libxslt libicu
# yum install -y perl perl-libs tcl python python-devel openssl openssl-devel
3) 선택 패키지
• libperl 5.8.3 이상
• PL/tcl : tcl 8.4 이상
• PL/Python : python 2.7 이상, python 3 지원
• 암호화 클라이언트 연결 : openssl, openssl-devel
• 인증 관련 : Kerberos, OpenLDAP, PAM
※ gis / pgaudit 등 extension 설치 필요 시 libperl 패키지 필수 설치 필요
4) 방화벽 해제 및 selinux 설정 0
• 원활한 테스트 설치를 위해 방화벽 해제 : systemctl stop firewalld / systemctl disable firewalld
• SELINUX DISABLED : vi /etc/sysconfig/selinux에서 SELINUX=disabled 수정
2. OpenSQL (Postgresql) 설치
1) 배포된 RPM 설치 (※ 설치 RPM은 OpenSQL팀에서 제공 받으실 수 있습니다.)
• 해당 설치 파일 테스트 환경 vm에 업로드 후 root 계정으로 아래 설치 순서로 수행합니다.
• 설치 버전 Postgresql-14.2
• RPM 설치 시 아래 순서에 맞게 설치가 되어야 합니다.
▶ [수행 계정 : root] # pwd /binary/PostgreSQL_v1_package_rhel7/postgresql-14 # unzip PostgreSQL_v1_package_rhel7.zip # cd /sql/PostgreSQL_v1_package_rhel7/postgresql-14 # rpm -ivh postgresql14-libs-14.2-1PGDG.rhel7.x86_64.rpm # rpm -ivh postgresql14-14.2-1PGDG.rhel7.x86_64.rpm # rpm -ivh postgresql14-server-14.2-1PGDG.rhel7.x86_64.rpm # rpm -ivh postgresql14-contrib-14.2-1PGDG.rhel7.x86_64.rpm 또는 yum install –y *.rpm 수행시 별도의 순서 없이 자동 설치 가능하며, yum list installed | grep postgresql 통해 설치 된 정보를 확인할 수 있습니다.
※ 패키지 설명
|
2) User 생성 및 Directory 생성
• User : opensql 생성 (고객 요청 user 생성 )
• 필요 Directory 수동 생성 필요
▶ [수행 계정 : root] # groupadd opensql -g 1008 # useradd opensql -u 1008 -g opensql -c 'OpenSQL Database' -d /opensql # passwd opensql (passwd는 사용자 설정) # echo “d /run/opensql 0755 opensql opensql -” > /usr/lib/tmpfiles.d/opensql.conf /var/run 내 디렉토리가 휘발성으로 삭제되기 때문에 이를 방지하기 위한 명령어
▶ [수행 계정 : opensql] # mkdir -p /opensql/pg/14/data # mkdir -p /opensql/pg/14/log/pg_log # mkdir -p /opensql/pg/14/pg_wal # mkdir -p /opensql/pg/14/archive # mkdir -p /var/run/opensql # chown -R opensql:opensql/opensql # chown -R opensql:opensql/var/run/opensql
※ Directory 설명 :
|
3) .bash_porfile 설정
▶ [수행 계정 : opensql] # vi ~/.bash_profile ###OpenSQL-PostgreSQL ENV PS1="[\u@\h:\W]$ " export PGVERSION=14 if [ -f "/usr/pgsql-$PGVERSION/bin/pg_ctl" ]; then export PGINST=/usr/pgsql-$PGVERSION export MANPATH=/usr/pgsql-$PGVERSION/share/man:$MANPATH export LD_LIBRARY_PATH=/usr/pgsql-$PGVERSION/lib:$LD_LIBRARY_PATH export PATH=/usr/pgsql-$PGVERSION/bin:$PATH export PGLIB=/usr/pgsql-$PGVERSION/lib fi export PGHOME=/opensql/pg export PGDATA=/opensql/pg/$PGVERSION/data export PGHOST=/var/run/opensql export PGUSER=postgres
###OpenSQL-PostgreSQL ALIAS alias pginst="cd $PGINST" alias pglib="cd $PGLIB" alias pghome="cd $PGHOME" alias pgdata="cd $PGDATA" alias pglog="cd $PGHOME/$PGVERSION/log/pg_log" alias pgwal="cd $PGHOME/$PGVERSION/pg_wal" alias pgconf="vi $PGDATA/postgresql.conf" alias pghba="vi $PGDATA/pg_hba.conf" |
4) postgresql database cluster 생성
• initdb명령어를 통해 postgresql 환경설정 및 기본 파일 생성 합니다.
▶ [수행 계정 : opensql] -- 구문 : initdb [옵션...][-U] superuser 이름 [-D] 디렉터리 [-X] wal file 위치 # initdb -U postgres -D $PGDATA -X $PGHOME/$PGVERSION/pg_wal
※ 옵션 설명
|
5) postgresql.conf 설정 추가
▶ [수행 계정 : opensql] # vi $PGDATA/postgresql.conf - 마지막 부분에 추가 listen_addresses = '*' port = 5432 unix_socket_directories = '/var/run/opensql' logging_collector = on log_directory = '/opensql/pg/14/log/pg_log' log_filename = 'postgresql-%Y-%m-%d-%H%M%S.log' log_rotation_age = 0 log_rotation_size = 100MB wal_log_hints = on archive_mode = on archive_command = 'test ! -f /opensql/pg/14/archive/%f && cp %p /opensql/pg/14/archive/%f' |
6) pg_hba.conf 설정 (이중화 및 접근 테스트를 위해 전체 접근 가능으로 작성)
▶ [수행 계정 : opensql] # vi $PGDATA/pg_hba.conf -- 마지막 부분에 추가 # TYPE DATABASE USER ADDRESS METHOD host all all 0.0.0.0/0 trust
※ 필드 값 설명 :
|
7) 기동 / 종료
• pg_ctl commant ;
- start : 데이터베이스 서버 기동
- stop : 데이터베이스 서버 종료
- restart : 데이터베이스 서버 재기동
- reload : 수정된 설정 파일 서버 적용
- status : 서버 상태 출력
[수행 유저 : opensql] # pg_ctl start -- 기동 # pg_ctl stop -- 종료 -- 마스터 계정 패스워드 변경 방법 :alter role postgres password ’opensql’; |
참고사항
- OpenSQL(PostgreSQL) DBMS는 현재 PostgreSQL 15 버전까지 지원하고 있습니다.
- 본 문서에 포함된 설치 테스트는 고객사에 설치 되어 있는 과거 버전 구축 테스트 이력을 기반으로 정리한 내용입니다.
- 설치 바이너리는 OpenSQL 팀을 통해 별도로 제공 받으실 수 있습니다.