Linux PostgreSQL

PostgreSQL은 오픈 소스 객체-관계형 데이터베이스 관리 시스템(ORDBMS)입니다. 신뢰성과 기능성이 높아 다양한 애플리케이션에서 널리 사용됩니다. 다음은 Linux 시스템에서 PostgreSQL을 설치하고 관리하는 방법에 대한 단계별 설명입니다.

PostgreSQL 설치

1. Ubuntu에 PostgreSQL 설치

  1. 패키지 목록을 업데이트합니다.
   sudo apt update
  1. PostgreSQL 서버와 클라이언트를 설치합니다.
   sudo apt install postgresql postgresql-contrib
  1. PostgreSQL 서버가 설치되면 자동으로 시작됩니다. 상태를 확인합니다.
   sudo systemctl status postgresql

2. CentOS/RHEL에 PostgreSQL 설치

  1. 패키지 목록을 업데이트합니다.
   sudo yum update
  1. PostgreSQL 서버와 클라이언트를 설치합니다.
   sudo yum install postgresql-server postgresql-contrib
  1. PostgreSQL 데이터베이스를 초기화합니다.
   sudo postgresql-setup initdb
  1. PostgreSQL 서버를 시작하고 부팅 시 자동으로 시작되도록 설정합니다.
   sudo systemctl start postgresql
   sudo systemctl enable postgresql

PostgreSQL 기본 설정

PostgreSQL 클라이언트 접속

PostgreSQL 클라이언트에 접속합니다.

sudo -u postgres psql

데이터베이스 및 사용자 관리

데이터베이스 생성
CREATE DATABASE mydatabase;
데이터베이스 목록 확인
\l
데이터베이스 연결
\c mydatabase
사용자 생성
CREATE USER myuser WITH ENCRYPTED PASSWORD 'mypassword';
사용자에게 권한 부여
GRANT ALL PRIVILEGES ON DATABASE mydatabase TO myuser;

테이블 관리

테이블 생성
CREATE TABLE users (
    id SERIAL PRIMARY KEY,
    username VARCHAR(50) NOT NULL,
    email VARCHAR(50) NOT NULL
);
테이블 목록 확인
\dt
테이블 구조 확인
\d users

PostgreSQL 백업 및 복구

데이터베이스 백업

pg_dump를 사용하여 데이터베이스를 백업합니다.

pg_dump mydatabase > mydatabase_backup.sql

데이터베이스 복구

백업 파일을 사용하여 데이터베이스를 복구합니다.

psql mydatabase < mydatabase_backup.sql

PostgreSQL 서비스 관리

PostgreSQL 서비스 시작, 중지 및 재시작

# PostgreSQL 서버 시작
sudo systemctl start postgresql

# PostgreSQL 서버 중지
sudo systemctl stop postgresql

# PostgreSQL 서버 재시작
sudo systemctl restart postgresql

PostgreSQL 서버 부팅 시 자동 시작 설정

sudo systemctl enable postgresql

PostgreSQL 설정 파일

PostgreSQL 설정 파일은 주로 /etc/postgresql/{version}/main (Ubuntu) 또는 /var/lib/pgsql/{version}/data (CentOS/RHEL) 디렉토리에 위치합니다.

  • postgresql.conf: 주요 설정 파일로 데이터베이스의 설정을 정의합니다.
  • pg_hba.conf: 호스트 기반 인증 설정 파일로, 클라이언트 인증 방법을 정의합니다.

설정 파일을 편집한 후에는 PostgreSQL 서비스를 재시작해야 변경 사항이 적용됩니다.

sudo systemctl restart postgresql

주요 설정 옵션

  • listen_addresses: 데이터베이스 서버가 수신할 IP 주소를 설정합니다. 기본값은 localhost입니다.
  • port: 데이터베이스 서버가 사용할 포트를 설정합니다. 기본값은 5432입니다.
  • max_connections: 허용할 최대 연결 수를 설정합니다.
  • shared_buffers: 공유 버퍼 메모리 크기를 설정합니다.

PostgreSQL 로그 및 모니터링

로그 파일 확인

PostgreSQL 로그 파일은 /var/log/postgresql (Ubuntu) 또는 /var/lib/pgsql/{version}/data/pg_log (CentOS/RHEL) 디렉토리에 위치합니다.

tail -f /var/log/postgresql/postgresql-{version}-main.log

성능 모니터링

PostgreSQL에는 성능 모니터링을 위한 다양한 뷰와 확장이 있습니다. 예를 들어, pg_stat_activity 뷰를 사용하여 현재 활동을 모니터링할 수 있습니다.

SELECT * FROM pg_stat_activity;

결론

이 가이드는 Linux 시스템에서 PostgreSQL을 설치하고 기본적으로 관리하는 방법을 다룹니다. PostgreSQL은 강력하고 유연한 데이터베이스 시스템으로, 다양한 애플리케이션에서 널리 사용됩니다. 위의 명령어와 절차를 통해 PostgreSQL을 설치하고 관리할 수 있으며, 필요에 따라 추가적인 설정과 튜닝을 통해 성능을 최적화할 수 있습니다.

Leave a Reply

Your email address will not be published. Required fields are marked *