본문 바로가기
리눅스 강의

리눅스 PostgreSQL 설치 완벽 가이드: 초보자도 쉽게!

by infolily 2024. 10. 10.

PostgreSQL은 오픈 소스 관계형 데이터베이스 관리 시스템(RDBMS)으로, 뛰어난 성능과 안정성, 풍부한 기능을 자랑하며 전 세계적으로 많은 사랑을 받고 있어요. 특히 리눅스 환경에서 웹 서버나 애플리케이션 서버와 함께 사용하기에 안성맞춤이죠. 이 글에서는 리눅스 환경에서 PostgreSQL을 설치하고 관리하는 방법을 단계별로 알려드릴게요. 처음 접하는 분들도 쉽게 따라 할 수 있도록 친절하게 설명해 드릴 테니, 걱정 말고 따라와 보세요!

리눅스 환경에서 PostgreSQL 설치하기

PostgreSQL을 설치하는 방법은 운영 체제에 따라 조금씩 다르지만, 기본적인 원리는 비슷해요. 대표적인 리눅스 배포판인 CentOS와 Red Hat Enterprise Linux(RHEL)에 대한 설치 방법을 자세히 알려드릴게요.

CentOS에서 PostgreSQL 설치하기

CentOS는 무료로 사용할 수 있는 리눅스 배포판으로, 서버 관리에 널리 활용되고 있어요. CentOS에서 PostgreSQL을 설치하는 과정은 다음과 같아요.

  1. 현재 PostgreSQL 버전 확인**: 먼저 시스템에 설치된 PostgreSQL 버전이 있는지 확인해야 해요. 다음 명령어를 사용하면 현재 설치된 PostgreSQL 패키지 목록을 확인할 수 있답니다.만약 원하는 버전이 설치되어 있지 않다면, 저장소를 업데이트해야 해요.
  2. yum list | grep ^postgresql
  3. YUM 저장소 업데이트: PostgreSQL을 설치하기 전에, YUM 저장소를 업데이트해야 해요. 다음 명령어를 통해 PostgreSQL 저장소를 추가하고 업데이트를 진행하면 된답니다.이 명령어는 PostgreSQL 9.3 버전을 설치하기 위한 저장소를 추가하는 역할을 해요. 만약 다른 버전을 설치하고 싶다면, URL을 수정하면 된답니다.
  4. rpm -Uvh https://download.postgresql.org/pub/repos/yum/9.3/redhat/rhel-6-x86_64/pgdg-centos93-9.3-3.noarch.rpm
  5. PostgreSQL 설치: 저장소가 업데이트되었다면, 이제 PostgreSQL을 설치할 차례에요. 다음 명령어를 통해 PostgreSQL 서버와 클라이언트를 설치하면 된답니다.이 명령어를 실행하면 PostgreSQL 9.3 버전이 설치되고, 필요한 의존성 패키지들도 함께 설치된답니다.
  6. yum install postgresql93-server postgresql93
  7. 데이터베이스 초기화: PostgreSQL을 설치했으면, 데이터베이스를 초기화해야 해요. 다음 명령어를 사용하면 데이터베이스를 초기화하고, 데이터 파일 및 설정 파일이 저장될 디렉토리를 생성할 수 있답니다.이 명령어를 실행하면 PostgreSQL 데이터베이스 클러스터가 초기화되고, 데이터 파일과 설정 파일이 /var/lib/pgsql/9.3/data/ 디렉토리에 저장된답니다.
  8. /usr/pgsql-9.3/bin/postgresql93-setup initdb
  9. 서비스 시작 및 활성화: 초기화가 완료되었다면, 이제 PostgreSQL 서비스를 시작하고 부팅 시 자동으로 시작되도록 설정해야 해요. 다음 명령어를 통해 PostgreSQL 서비스를 시작하고 활성화하면 된답니다.이 명령어를 실행하면 PostgreSQL 서비스가 시작되고, 시스템 부팅 시 자동으로 시작되도록 설정된답니다.
  10. systemctl start postgresql.service systemctl enable postgresql.service

Red Hat Enterprise Linux (RHEL)에서 PostgreSQL 설치하기

RHEL은 Red Hat에서 제공하는 유료 리눅스 배포판으로, 안정성과 보안 기능이 뛰어나 기업 환경에서 많이 사용되고 있어요. RHEL에서 PostgreSQL을 설치하는 과정은 다음과 같아요.

  1. 모듈 스트림 선택 및 패키지 설치: RHEL에서는 모듈 스트림을 통해 PostgreSQL의 다양한 버전을 설치할 수 있어요. 다음 명령어를 통해 PostgreSQL 16 버전을 설치해 볼게요.이 명령어를 실행하면 PostgreSQL 16 버전이 설치되고, 필요한 의존성 패키지들도 함께 설치된답니다.
  2. yum module install postgresql:16/server
  3. 클러스터 초기화: PostgreSQL을 설치했으면, 데이터베이스 클러스터를 초기화해야 해요. 다음 명령어를 사용하여 데이터베이스 클러스터를 초기화하면 된답니다.이 명령어를 실행하면 PostgreSQL 데이터베이스 클러스터가 초기화되고, 데이터 파일과 설정 파일이 /var/lib/pgsql/data/ 디렉토리에 저장된답니다.
  4. postgresql-setup --initdb
  5. 서비스 시작 및 부팅 시 활성화: 초기화가 완료되었으니, PostgreSQL 서비스를 시작하고 부팅 시 자동으로 시작되도록 설정해야 해요. 다음 명령어를 사용하여 서비스를 시작하고 활성화하면 된답니다.이 명령어를 실행하면 PostgreSQL 서비스가 시작되고, 시스템 부팅 시 자동으로 시작되도록 설정된답니다.
  6. systemctl start postgresql.service systemctl enable postgresql.service

PostgreSQL 데이터베이스 관리하기

PostgreSQL을 설치했다면, 이제 데이터베이스를 관리하고 활용할 수 있어요. 데이터베이스 관리에는 다양한 작업이 포함되는데, 몇 가지 주요 작업들을 살펴볼게요.

데이터베이스 클러스터 구성

PostgreSQL 데이터베이스는 클러스터라는 개념을 사용해 관리된답니다. 클러스터는 데이터베이스, 설정 파일, 로그 파일 등 데이터베이스 운영에 필요한 모든 구성 요소를 포함하고 있어요.

  • 기본적으로 PostgreSQL 데이터베이스 클러스터는 /var/lib/pgsql/data/ 디렉토리에 저장된답니다.
  • PostgreSQL 클러스터의 동작을 제어하는 중요한 설정 파일은 다음과 같아요.
    • postgresql.conf: PostgreSQL 클러스터의 다양한 매개 변수를 설정하는 파일이에요. 예를 들어, 데이터베이스 포트, 백업 설정, 보안 설정 등을 변경할 수 있답니다.
    • pg_hba.conf: 클라이언트가 데이터베이스에 접속할 때 사용할 인증 방법을 설정하는 파일이에요. 클라이언트의 IP 주소 또는 호스트 이름에 따라 인증 방법을 다르게 설정할 수 있답니다.

데이터베이스 백업 및 복원

데이터베이스 백업은 중요한 데이터를 안전하게 보호하기 위해 필수적인 작업이에요. PostgreSQL에서는 pg_dump 명령어를 사용하여 데이터베이스를 백업할 수 있답니다.

  • 예를 들어, dbname이라는 데이터베이스를 백업하고 싶다면 다음과 같은 명령어를 사용하면 된답니다.
    pg_dump dbname > dbname_backup.sql
    
    이 명령어를 실행하면 dbname 데이터베이스의 모든 데이터가 dbname_backup.sql 파일에 백업된답니다.

백업된 데이터베이스를 복원하려면 psql 명령어를 사용하면 된답니다.

  • 예를 들어, dbname_backup.sql 파일에 백업된 데이터베이스를 복원하려면 다음과 같은 명령어를 사용하면 된답니다.
    psql dbname < dbname_backup.sql
    
    이 명령어를 실행하면 dbname_backup.sql 파일에 저장된 데이터가 dbname 데이터베이스에 복원된답니다.

PostgreSQL 보안 설정

PostgreSQL은 기본적으로 postgres라는 사용자 계정을 생성한답니다. 보안을 강화하기 위해서는 암호를 설정하고, SSL을 사용하여 통신을 암호화하는 것이 좋답니다.

  • postgres 사용자의 암호를 변경하려면 psql에 접속하여 ALTER ROLE postgres PASSWORD '새로운암호'; 명령을 실행하면 된답니다.
  • SSL을 사용하여 통신을 암호화하려면 OpenSSL을 사용하여 인증서를 생성해야 해요. 다음 명령어를 통해 인증서를 생성할 수 있답니다.
    openssl req -new -x509 -days 365 -nodes -text -out server.crt -keyout server.key -subj "/CN=yourdomain.com"
    
    이 명령어를 실행하면 server.crt와 server.key라는 파일이 생성되고, 이 파일들을 PostgreSQL 설정 파일에 적용하면 SSL 통신을 사용할 수 있답니다.

PostgreSQL 활용 및 고급 기능

PostgreSQL은 기본적인 데이터베이스 기능 외에도 다양한 고급 기능들을 제공한답니다.

데이터베이스 유형 및 기능

PostgreSQL은 다양한 데이터 유형을 지원하며, 사용자 정의 데이터 유형을 정의하여 활용할 수도 있답니다. 또한, 저장 프로시저, 트리거, 뷰와 같은 기능들을 통해 데이터베이스 관리 및 애플리케이션 개발을 더욱 효율적으로 수행할 수 있답니다.

기능 설명
데이터 유형 숫자, 문자, 날짜, 시간 등 다양한 데이터 유형을 지원하며, 사용자 정의 데이터 유형을 정의할 수 있습니다.
저장 프로시저 데이터베이스 내에서 특정 작업을 수행하는 함수를 정의하고, 재사용할 수 있습니다.
트리거 특정 이벤트가 발생했을 때 자동으로 실행되는 함수를 정의할 수 있습니다.
기존 테이블의 데이터를 기반으로 새로운 가상 테이블을 생성할 수 있습니다.

복제 및 장애 복구

PostgreSQL은 데이터베이스 복제 기능을 제공하여, 데이터베이스의 가용성과 성능을 향상시킬 수 있답니다. 복제를 통해 주 데이터베이스의 변경 사항을 복제 서버로 전파하여, 주 서버에 장애가 발생하더라도 복제 서버에서 서비스를 계속 제공할 수 있답니다.

확장 기능

PostgreSQL은 다양한 확장 기능을 지원하여, 데이터베이스 기능을 확장하고 특정 작업에 최적화할 수 있답니다. 예를 들어, PostGIS 확장 기능을 사용하면 지리 공간 데이터를 관리할 수 있으며, pgcrypto 확장 기능을 사용하면 데이터 암호화 기능을 강화할 수 있답니다.

자주 묻는 질문 (FAQ)

Q1. PostgreSQL은 어떤 운영 체제에서 사용할 수 있나요?

A1. PostgreSQL은 리눅스, 윈도우, macOS 등 다양한 운영 체제에서 사용할 수 있어요.

Q2. PostgreSQL 백업은 어떻게 하나요?

A2. PostgreSQL 백업은 pg_dump 명령어를 사용하여 수행할 수 있어요. 백업 파일은 SQL 스크립트 형태로 생성되며, 이 파일을 사용하여 데이터베이스를 복원할 수 있답니다.

Q3. PostgreSQL 보안 설정은 어떻게 하나요?

A3. PostgreSQL 보안 설정은 postgresql.conf와 pg_hba.conf 파일을 수정하여 수행할 수 있어요. 암호를 설정하고, SSL을 사용하여 통신을 암호화하는 등의 설정을 통해 데이터베이스 보안을 강화할 수 있답니다.

마무리

PostgreSQL은 강력하고 유연한 오픈 소스 데이터베이스 관리 시스템으로, 리눅스 환경에서 다양한 애플리케이션을 구축하는 데 유용하게 활용될 수 있답니다. 이 글에서 소개된 내용들을 바탕으로 PostgreSQL을 설치하고 관리하며, 여러분의 데이터를 안전하고 효율적으로 관리해 보세요!

키워드:PostgreSQL, 데이터베이스, 리눅스, CentOS, RHEL, 오픈소스, DBMS, RDBMS, 설치, 관리, 백업, 복원, 보안, 클러스터, 확장, pg_dump, psql, postgres, 데이터베이스관리, 데이터베이스설계, Linux, OpenSource, Database, Server, Admin, Tutorial, Guide, SQL

 

관련 포스트 더 보기

2024.10.10 - [리눅스 강의] - 리눅스 웹 서버 구축, Nginx 설치부터 마스터하기: 초보자를 위한 친절한 안내

2024.10.07 - [리눅스 강의] - 리눅스 사용자 관리, 보안과 효율성의 비밀

 

리눅스 사용자 관리, 보안과 효율성의 비밀

리눅스 시스템을 효율적으로 운영하고 보안을 강화하려면 사용자와 그룹을 관리하는 것이 필수적이에요. 사용자 계정 생성부터 그룹 관리, 권한 설정까지, 이 모든 과정은 시스템의 안정성과

infolily.tistory.com

2024.10.08 - [리눅스 강의] - 리눅스 권한 관리: chmod와 chown 마스터하기, 이제 더 이상 막막하지 않아요!

 

리눅스 권한 관리: chmod와 chown 마스터하기, 이제 더 이상 막막하지 않아요!

확인했음리눅스를 좀 더 능숙하게 다루고 싶다면, 소프트웨어 설치와 관리를 빼놓을 수 없겠죠? 윈도우에서 프로그램 설치하듯이 쉽게 척척 해낼 수 있는 방법이 바로 리눅스 패키지 관리랍니

infolily.tistory.com

2024.10.10 - [리눅스 강의] - 리눅스 Apache 웹서버 설치 완벽 가이드: 초보자도 쉽게!

 

리눅스 Apache 웹서버 설치 완벽 가이드: 초보자도 쉽게!

리눅스 서버를 운영하는데 웹 서버가 빠질 수 없죠? 웹 서버는 여러분의 웹사이트나 웹 애플리케이션을 인터넷을 통해 세상에 공개하는 중요한 역할을 합니다. 그리고 리눅스 환경에서 가장 널

infolily.tistory.com

2024.10.10 - [리눅스 강의] - 리눅스 MySQL 설치 완벽 가이드: 초보자도 쉽게!

 

리눅스 MySQL 설치 완벽 가이드: 초보자도 쉽게!

확인했음데이터베이스 관리 시스템(DBMS) 중에서도 MySQL은 널리 쓰이는 오픈 소스 솔루션 중 하나에요. 웹 개발이나 데이터 분석 등 다양한 분야에서 활용되고 있죠. 특히 리눅스 환경에서는 MySQL

infolily.tistory.com