본문 바로가기
설치 및 기술 자료/Linux

[Linux] PostgreSQL 에 대해 알아보고 실습해보기

by 주식회사 서버몬 2023. 11. 22.

 

안녕하세요. 주식회사 서버몬 입니다.

오늘 PostgreSQL에 대해서 알아보고 실습 해보도록 하겠습니다.

 

PostgreSQL 이란?

 PostgreSQL은 오픈 소스 객체-관계형 데이터베이스 시스템 (ORDBMS) 로 1996년 첫 출시 되었습니다.

약 20여년의 오랜 역사를 가지고 있으며, 전 세계의 오픈소스 개발자들과 관련 회사들이 개발에 참여 하고 있습니다.

다른 관계형 데이터베이스 시스템과 달리 연산자, 복잡 자료형, 집계함수, 자료형 반환자, 확장등 다양한 데이터 객체를 사용자가 임의로 만들 수 있는 기능을 제공함으로 하고 있습니다.

전세계 DB순위  출처:https://db-engines.com/en/ranking_trend

 

 

전 세계 사용률은 상위 3개의 DB(Oracle DB, MySQL, Microsoft SQL)에 이어 4위이며 꾸준히 상승하고 있는 것이 특징이며 MySQL에 비해서 SQL 표준을 더 잘 지원하고 기능이 더 강력하며 쿼리가 복잡해질수록 성능이 더 잘 나오는 편 입니다.

 

PostgreSQL 특징 및 기능

확장 가능성
 PostgreSQL은 사용자가 데이터 타입, 함수, 연산자, 집계 함수 등을 직접 만들고 추가할 수 있는 매우 유연한 확장성을 제공합니다. 이로 인해 다양한 사용 사례에 맞춰 쉽게 커스터마이징할 수 있습니다.

SQL 호환성
 ANSI SQL 표준을 따르면서도, 자체적으로 SQL 구문의 확장과 고급 기능을 제공합니다. 이는 다른 관계형 데이터베이스와의 호환성을 유지하면서도 PostgreSQL의 고유한 기능을 활용할 수 있음을 의미합니다.

트랜잭션과 안전성
 ACID(원자성, 일관성, 고립성, 지속성) 특성을 준수하여 데이터의 안전성과 일관성을 보장합니다. 트랜잭션 관리와 병행 처리를 지원하여 데이터베이스의 안정성을 높입니다.

완전한 기능
 풍부한 데이터베이스 객체 지원과 함께 다양한 인덱싱 기능, 풍부한 데이터 타입, JSON 및 XML 데이터 지원 등을 포함하 여 다양한 용도로 사용할 수 있습니다.

프로시저 및 트리거
 PostgreSQL은 스토어드 프로시저와 트리거를 지원하여 데이터베이스 내에서 로직을 실행하고 이벤트에 반응할 수 있습니다.

풍부한 확장성
 다양한 확장 모듈을 통해 PostgreSQL 기능을 확장할 수 있습니다. 예를 들어, GIS 데이터 처리, 외부 데이터 소스 접근, 전문 검색 등의 기능을 확장할 수 있습니다.

성능 최적화
 쿼리 플래닝과 실행 최적화를 위한 고급 기능을 제공하여 대규모 데이터베이스에서도 높은 성능을 유지할 수 있습니다.

활발한 커뮤니티와 지원
 PostgreSQL은 열린 커뮤니티를 가지고 있어서 사용자들 간의 지식 공유와 지속적인 개선이 이루어집니다. 또한, 다양한 문서와 지원 자료가 공개되어 있어 사용자들이 쉽게 학습하고 문제를 해결할 수 있습니다.

 

 

PostgreSQL 실습(설치)

DB 서버는 리눅스 기반을 많이 사용하기에

RockyLinux8 (Redhat 8) 기반에서 설치 및 실습을 진행하도록 합니다.

 

먼저 PostgreSQL 홈페이지에 접속 합니다.

https://www.postgresql.org/download/

 

PostgrelSQL 은 다양한 OS 에 대해서 지원 합니다.

실습 환경에 맞게 Redhat / Rocky/ AlmaLinux 를 선택 하도록 합니다.

 

환경에 맞는 버전 및 플랫폼 을 선택하여 알맞는 설정 파일을 다운로드 하도록 합니다.

본 포스팅에서는 작성일 기준 최신 버전인 v16 과 Redhat 8 을 선택하여 설정 하였습니다.

# Install the repository RPM:
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm

# Disable the built-in PostgreSQL module:
sudo dnf -qy module disable postgresql

# Install PostgreSQL:
sudo dnf install -y postgresql16-server

# Optionally initialize the database and enable automatic start:
sudo /usr/pgsql-16/bin/postgresql-16-setup initdb
sudo systemctl enable postgresql-16
sudo systemctl start postgresql-16

 

위 가이드를 토대로 서버측에 PostgreSQL 을 설치합니다.

 

PostgreSQL 실습(로컬 접속)

 

설치가 끝났다면 클라이언트를 통해 접속 테스트를 진행합니다.

PostgreSQL 은 기본 값으로 운영 계정에 로그인이 가능합니다.

#postgres 계정으로 전환
[root@pgsql1 ~]# su - postgres

#psql 로 DB 접속
[postgres@pgsql1 ~]$ psql

#DB 리스트 확인
postgres-# \l
                                               데이터베이스 목록
   이름    |  소유주  | 인코딩 |   Collate   |    Ctype    | ICU 로케일 | 로케일 제공자 |      액세스 권한      
-----------+----------+--------+-------------+-------------+------------+---------------+-----------------------
 postgres  | postgres | UTF8   | ko_KR.UTF-8 | ko_KR.UTF-8 |            | libc          | 
 template0 | postgres | UTF8   | ko_KR.UTF-8 | ko_KR.UTF-8 |            | libc          | =c/postgres          +
           |          |        |             |             |            |               | postgres=CTc/postgres
 template1 | postgres | UTF8   | ko_KR.UTF-8 | ko_KR.UTF-8 |            | libc          | =c/postgres          +
           |          |        |             |             |            |               | postgres=CTc/postgres
(3개 행

#DB 버전 확인
postgres=# SELECT VERSION();
                                                 version                                                 
---------------------------------------------------------------------------------------------------------
 PostgreSQL 15.5 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-20), 64-bit
(1개 행

 

 

PostgreSQL 실습 (쿼리)

 

실습 데이터를 다운로드 후 여러가지 쿼리를 실습 하겠습니다.

실습 데이터 다운로드
# wget https://www.postgresqltutorial.com/wp-content/uploads/2019/05/dvdrental.zip
# unzip dvdrental.zip
# mv dvdrental.tar /var/lib/pgsql/

운영 계정으로 전환
# su - postgres
$ psql
postgres=# CREATE DATABASE dvdrental;
CREATE DATABASE

DB 복원
$ pg_restore -U postgres -d dvdrental dvdrental.tar

 

간단 명령어 정리

\l : 데이터베이스 목록을 조회

 

\c : 현재 접속정보 조회

 

\connect 데이터베이스명 : 베이터베이스 선택, 연결

 

\dt : 테이블 목록 조회

 

\d : 관계목록(테이블,보기,시퀀스) 조회

 

\d 테이블이름 : 테이블에개한 개별 정보 조회

 

데이터 조회

SELECT "columns" FROM "table";

 

위와 같이 실습 환경과 데이터 쿼리 실습을 진행해보았습니다.

감사합니다.

 

1u서버 / APC / DB / defog / DEFOG랙 / dell5820 / dell5820t / dell7920 / dellpoweredge / dellr240 / dellr340 / dellr350 / dellr450 / dellr540 / dellr630 / dellr640 / dellr740 / dellr750 / dellserver / dellt40 / dellt440 / dellt5820 / dell서버 / DELL서버CPU / DELL서버RAID컨트롤러 / DELL서버SAS하드디스크 / DELL서버가격비교 / DELL서버가격비교견적 / DELL서버견적 / DELL서버구매 / DELL서버디스크교체 / DELL서버메모리 / DELL서버펌웨어 / DELL서버하드디스크구매 / dell워크스테이션 / dl20 / dl20gen10 / dl360 / dl360gen10 / dl380 / dl380g10 / dl380gen10 / ECC메모리 / EDFOG랙가격 / ESTSOFT / FIRMWARE / gpu서버 / gpu타워형서버 / HA솔루션 / hpdl20 / hpdl360 / hpdl360gen10 / hpdl380 / hpdl380g10 / HPE / HPE Service Pack for Proliant / HPE SPP / hpedl20 / hpedl20gen10 / hpedl360gen10 / hpe서버 / HPE서버CPU / HPE서버RAID컨트롤러 / HPE서버SAS하드디스크 / HPE서버가격비교 / HPE서버가격비교견적 / HPE서버견적 / HPE서버구매 / HPE서버드라이버설치 / HPE서버디스크교체 / HPE서버메모리 / HPE서버비용 / HPE서버펌웨어 / HPE서버하드디스크구매 / hpgen10 / hpml30 / hpserver / hpz2 / hpz4 / hpz420 / hpz440 / hpz4g4 / hpz640 / hpz6g4 / hpz8g4 / hp마이크로서버 / hp서버 / hp서버800 / hp서버800w / hp서버cto / hp서버pc / HP서버메모리 / hp서버컴퓨터 / HP서버펌웨어 / HP서버하드디스크 / hp워크스테이션 / hp프로라이언트 / HYPER BACKUP / ibm서버 / Intelligent Provisioning / KVM / KVM 기술지원비(비용) / KVM 설치비 / L2스위치 / L3스위치 / LENONO서버SAS하드디스크 / lenovop620 / lenovor650 / LENOVO서버 / LENOVO서버CPU / LENOVO서버RAID컨트롤러 / LENOVO서버가격비교 / LENOVO서버가격비교견적 / LENOVO서버견적 / LENOVO서버구매 / LENOVO서버디스크교체 / LENOVO서버메모리 / LENOVO서버하드디스크구매 / LENOVO펌웨어업데이트 / Linux / ML30 / ml30gen10 / ML350GEN10 / ML360 / MSSQL / MSSQL 기술지원비(비용) / MSSQL 설치비 / MYSQL / MySQL 기술지원비(비용) / MySQL 설치비 / OS설치 / p17079-b21 / poweredger740 / poweredger750 / precision5820 / QUADRO / QUADRO그래픽카드 / r240 / r340 / r440 / r740 / RHEL설치 / RMS랙 / server / serverpc / SOPHOS / SPP / sr250 / sr650 / SYNOLOGY / SYNOLOGY나스 / UPS / UPS기술지원 / UPS납품 / UPS설치 / V3 / Windows서버설치 / z420 / z620 / z840 / z8g4 / 기술지원비(비용) / 나스기술지원 / 나스설치지원 / 네트워크스위치 / 네트워크장비 / 더블테이크 / 데이터베이스 / 델5820 / 델서버 / 델서버비용 / 델서버펌웨어업데이트 / 델워크스테이션 / 델컴퓨터워크스테이션 / 디포그 / 디포그랙 / 디포그랙가격 / 딥러닝pc / 딥러닝서버 / 랙 / 랙(RACK) 기술지원비(비용) / 랙(RACK) 설치비 / 랙납품설치 / 랙설치 / 레노버p620 / 레노버서버 / 레노버워크스테이션 / 레노보서버 / 레노보서버펌웨어 / 레드헷설치 / 리눅스 기술지원비(비용) / 리눅스 설치비 / 리눅스서버 / 리눅스서버설치 / 리눅스서버트러블슈팅 / 리눅스트러블슈팅 / 리욱스 / 미니서버 / 미니서버랙 / 방화벽 / 방화벽 기술지원비(비용) / 방화벽 설치비 / 방화벽엔지니어 / 백업 / 보안솔루션 / 보안솔루션구매 / 보안솔루션설치 / 서버 / 서버 기술지원비(비용) / 서버 랙마운트비용 / 서버 설치비 / 서버 장애조치비용 / 서버CPU / 서버MEMORY / 서버OS설치 / 서버pc / 서버가격 / 서버구매 / 서버기술지원 / 서버납품 / 서버디스크장애처리 / 서버랙 / 서버렉마운트 / 서버메모리 / 서버몬 / 서버몬기술지원 / 서버백업 / 서버보안 / 서버엔지니어 / 서버용pc / 서버용그래픽카드 / 서버용메모리 / 서버용컴퓨터 / 서버용하드디스크 / 서버컴 / 서버컴퓨터 / 서버트러블슈팅 / 서버호스팅 / 소포스 / 스위치 / 스위치 기술지원비(비용) / 스위치 설치비 / 스토리지 / 스토리지 기술지원비(비용) / 스토리지 랙마운트비용 / 스토리지 설치비 / 스토리지 장애조치비용 / 스토리지납품설치 / 스토리지서버 / 시놀로지DS918 / 시놀로지HyperBackup / 시놀로지나스 / 시놀로지나스백업 / 시놀로지하이퍼백업 / 시큐어디스크 / 안랩 / 알약 / 왼도우서버설치 / 우분투설치 / 워크스테이션 / 워크스테이션pc / 워크스테이션컴퓨터 / 윈도우서버 / 윈도우서버2016 / 윈도우서버2019 / 윈도우서버트러블슈팅 / 윈도우즈 기술지원비(비용) / 윈도우즈 설치비 / 이스트소프트 / 이중화솔루션 / 이중화솔루션구매 / 이중화솔루션설치 / 인터넷디스크 / 작업장컴퓨터 / 제온서버 / 젠서버 / 중고서버 / 중고워크스테이션 / 카보나이트 / 카스퍼스키 / 컴퓨터서버 / 쿼드로P400 / 타워형서버 / 페도라설치 / 프로라이언트 / GPU서버 / 미니서버렉 / 서버용PC / 젠서버 / AI서버 / 제온서버 / 서버가격 / 1U서버 / HPDL20Gen10 / HP서버8SFF800W / 가상서버 / 타워형서버 / HPDL360 / HPDL380Gen10 / 컴퓨터서버 / 미디어서버 / 타워서버 / DB서버 / HP서버580 / HP서버파워 / HPDL360Gen10 / 윈도우서버컴퓨터 / XEON서버 / 881457-B21

댓글