본문 바로가기

DataBase/Postgresql

Ubuntu Postgresql Install

반응형


OS

  • Ubuntu 24.04 Server
  • Postgresql : 16.8

설치

sudo apt install postgresql postgresql-contrib -y
postgresql-contrib?
contrib(contributed modules) : 추가적인 기능 확장 모듈을 포함하는 패키지, 고급 기능이나 확장이 필요할 경우 유용
pg_stat_statements → SQL 실행 통계를 수집하는 확장 기능
hstore → JSON-like key-value 저장을 지원하는 기능
uuid-ossp → UUID 생성 기능 제공
pgcrypto → 암호화 및 해싱 함수 제공
fuzzystrmatch → 문자열 유사도 비교 기능
sudo systemctl enable postgresql
sudo systemctl status postgresql

설정

sudo vi /etc/postgresql/{version}/main/pg_hba.conf

# IPv4 local connections 하단에 추가
host	all		all		0.0.0.0/0		scram-sha-256
sudo vi /etc/postgresql/{version}/main/postgresql.conf

# 외부 접속 허용
listen_addresses = '*'

# 포트 변경
port = ~

# 동시에 처리할 수 있는 최대 클라이언트 연결 수
max_connections = 100

# 디스크에서 읽어온 데이터를 캐싱하는 버퍼 풀, 시스템 RAM의 25%가 적절
shared_buffers = 512MB

# 쿼리 정렬, 해시(Hash Join), 집계 연산 시 할당되는 메모리 크기
work_mem = 4MB

# 유지보수 작업에 사용되는 메모리
maintenance_work_mem = 64MB

# 로그 파일 명
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'

# 1일마다 로그파일 분리
log_rotation_age = 1d

# 용량 10MB마다 파일 분리
log_rotation_size = 10MB

# log_rotation_age에 설정한 값 이후 쌓인 파일 제거
# log_rotation_age = 1d 01-01에 생성된 파일(0101.log)은 01-02에 삭제되며 0102.log파일이 새로 생성
# log_rotation_age, log_rotation_size의 적절한 값 적용 필요
log_truncate_on_rotation = on

# 1초이상 수행된 쿼리 로깅
log_min_duration_statement = 1000
sudo systemctl restart postgresql
sudo -u postgres psql

# DB 계정인 postgres의 비밀번호 변경
\password postgres

# SUPERUSER 생성
CREATE USER {userName} PASSWORD '{password}' SUPERUSER;
반응형

'DataBase > Postgresql' 카테고리의 다른 글

Postgresql EXTENSION ex) pg_stat_statements, pg_trgm  (0) 2025.04.04