PostgreSQL은 오픈 소스 객체-관계형 데이터베이스 관리 시스템(ORDBMS)입니다. 신뢰성과 기능성이 높아 다양한 애플리케이션에서 널리 사용됩니다. 다음은 Linux 시스템에서 PostgreSQL을 설치하고 관리하는 방법에 대한 단계별 설명입니다.
PostgreSQL 설치
1. Ubuntu에 PostgreSQL 설치
- 패키지 목록을 업데이트합니다.
sudo apt update
- PostgreSQL 서버와 클라이언트를 설치합니다.
sudo apt install postgresql postgresql-contrib
- PostgreSQL 서버가 설치되면 자동으로 시작됩니다. 상태를 확인합니다.
sudo systemctl status postgresql
2. CentOS/RHEL에 PostgreSQL 설치
- 패키지 목록을 업데이트합니다.
sudo yum update
- PostgreSQL 서버와 클라이언트를 설치합니다.
sudo yum install postgresql-server postgresql-contrib
- PostgreSQL 데이터베이스를 초기화합니다.
sudo postgresql-setup initdb
- 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을 설치하고 관리할 수 있으며, 필요에 따라 추가적인 설정과 튜닝을 통해 성능을 최적화할 수 있습니다.