개요
PostgreSQL은 확장 가능성 및 표준 준수를 강조하는 객체-관계형 데이터베이스 관리 시스템(ORDBMS)의 하나이다. BSD 허가권으로 배포되며 오픈소스 개발자 및 관련 회사들이 개발에 참여하고 있다. 데이터베이스 서버로서 주요 기능은 데이터를 안전하게 저장하고 다른 응용 소프트웨어로부터의 요청에 응답할 때 데이터를 반환하는 것이이다. 소규모의 단일 머신 애플리케이션에서부터 수많은 동시 접속 사용자가 있는 대형의 인터넷 애플리케이션(또는 데이터 웨어하우스용)에 이르기까지 여러 부하를 관리할 수 있으며 macOS 서버의 경우 PostgreSQL은 기본 데이터베이스이다. 마이크로소프트 윈도우, 리눅스(대부분의 배포판에서 제공됨)용으로도 이용 가능하다. PostgresQL의 전신은 Ingres DB로 실제 프로젝트의 공식 명칭은 “post-Ingres” 데이터베이스이다.
설치
Postgresql 사이트에서 yum 리포지터리 RPM을 다운로드 받을 수 있다.
# repository RPM 설치 # 설치하면 postgresql repo 파일이 /etc/yum.repos.d 아래 생성된다. [root@centos7:/root/]# yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
# PostgresQL 설치 [root@centos7:/root/]# yum install -y postgresql12-server # 이렇게 설치 해도 된다. [root@centos7:/root/]# yum install -y postgresql12-*
초기화
initdb를 이용해 데이터 디렉토리 생성 및 지정이 필요하다.
postgresql 서버를 설치하면 postgres 계정이 자동으로 생성되고 DBMS의 최고 권한은 이 postgres 계정이 가지게 된다. 서버 프로세스의 구동부터 모든 작업이 postgres 계정으로 진행되어야 하므로 디렉토리 생성등을 할 경우 postgres 계정에 모든 권한을 부여해야 한다.
# DB 초기화 등 작업 # 초기화 : /var/lib/pgsql/12/data 가 데이터 디렉토리로 '자동'지정된다. [postgres@centos7:/home/]$ /usr/pgsql-12/bin/initdb 이 데이터베이스 시스템에서 만들어지는 파일들은 그 소유주가 "postgres" id로 지정될 것입니다. 또한 이 사용자는 서버 프로세스의 소유주가 됩니다. 데이터베이스 클러스터는 "ko_KR.UTF-8" 로케일으로 초기화될 것입니다. 기본 데이터베이스 인코딩은 "UTF8" 인코딩으로 설정되었습니다. initdb: "ko_KR.UTF-8" 로케일에 알맞은 전문검색 설정을 찾을 수 없음 기본 텍스트 검색 구성이 "simple"(으)로 설정됩니다. 자료 페이지 체크섬 기능 사용 하지 않음 이미 있는 /var/lib/pgsql/12/data 디렉터리의 액세스 권한을 고치는 중 ...완료 하위 디렉터리 만드는 중 ...완료 사용할 동적 공유 메모리 관리방식을 선택하는 중 ... posix max_connections 초기값을 선택하는 중 ...100 기본 shared_buffers를 선택하는 중... 128MB 기본 지역 시간대를 선택 중 ... Asia/Seoul 환경설정 파일을 만드는 중 ...완료 부트스트랩 스크립트 실행 중 ... 완료 부트스트랩 다음 초기화 작업 중 ... 완료 자료를 디스크에 동기화 하는 중 ... 완료 initdb: 경고: 로컬 접속용 "trust" 인증을 설정 함 이 값을 바꾸려면, pg_hba.conf 파일을 수정하든지, 다음번 initdb 명령을 사용할 때, -A 옵션 또는 --auth-local, --auth-host 옵션을 사용해서 인증 방법을 지정할 수 있습니다. 작업완료. 이제 다음 명령을 이용해서 서버를 가동 할 수 있습니다: ./pg_ctl -D /var/lib/pgsql/12/data -l 로그파일 start
# 초기화 : -pgdata= 로 지정한 디렉토리가 지정된다. # 이경우 지정한 디렉토리의 소유자는 postgres이어야 하고 모든 권한을 가져야 한다. [root@centos7:/home/]# mkdir /home/postgres [root@centos7:/home/]# chown -R postgres /home/postgres # 쉘에 주의하자 여기까지는 root 이다. [postgres@centos7:/home/]$ mkdir /home/postgres/data [postgres@centos7:/home/]$ /usr/pgsql-12/bin/initdb --pgdata=/home/postgres/data /usr/pgsql-12/bin/postgresql-12-setup initdb systemctl enable postgresql-12 systemctl start postgresql-12
구동
initdb 작업 결과의 명령대로 구동하면 된다.
[postgres@centos7:/home/]$ /usr/pgsql-12/bin//pg_ctl -D /var/lib/pgsql/12/data -l /var/lib/pgsql/12/data/pgsql.log start 서버를 시작하기 위해 기다리는 중.... 완료 서버 시작됨
확인
[root@host0 bin]# netstat -nltp |grep postgres tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 96383/postgres
댓글을 달려면 로그인해야 합니다.