RDBMS/PostgreSQL

PostgreSQL 모듈설치 및 적용하기

목차
  1. PostgreSQL 모듈 설치하기
  2. 설치해볼 모듈
  3. 설치해볼 모듈에 대한 간략한 설명(번역본)
  4. pg_cron 설치
  5. pg_stat_monitor 설치
  6. pg_cron , pg_stat_monitor 일괄설치
  7. PostgreSQL 모듈 적용하기
  8. 적용 방법
  9. postgresql.conf
  10. psql 에서 모듈 EXTENSION 
반응형

PostgreSQL 모듈 설치하기

PostgreSQL에 모듈을 설치해 보고 기본 모듈을 EXTENSION 하여 활성화 시켜보자.

PostgreSQL은 다양한 모듈이 있고 직접 모듈을 만들어 사용할 수도 있다. 그래서 PostgreSQL 사용목적, 용도에 맞게 모듈을 만들거나 외부에 있는 모듈을 다운받아 사용할 수 있다.

설치해볼 모듈

해당 글에서는 아래와 같은 모듈을 설치해 볼것이다.

  • pg_stat_statements
  • pg_cron
  • pg_stat_monitor

'pg_stat_monitor` , 'pg_cron' 모듈은 외부 모듈이다.


설치해볼 모듈에 대한 간략한 설명(번역본)

pg_stat_monitor

해당 모듈은 Percona에서 만든 PostgreSQL용 쿼리 성능 모니터링 도구이다. pg_stat_monitor성능 통계를 소집하고 단일 보기 및 히스토그램의 그래픽으로 쿼리 성능 통찰력을 제공해 준다고 한다.

 - 아래 공식문서에 더 자세한 내용이 담겨 있다.

 

pg_stat_monitor Documentation

pg_stat_monitor Documentation pg_stat_monitor is a Query Performance Monitoring tool for PostgreSQL. pg_stat_monitor collects performance statistics and provides query performance insights in a single view and graphically in histogram. These insights allow

docs.percona.com

pg_cron

pg_cron은 데이터베이스 내에서 확장으로 실행되는 PostgreSQL(10 이상)용 간단한 cron 기반 작업 스케줄러이다. 일반 cron과 동일한 구문을 사용하지만 데이터베이스에서 직접 PostgreSQL 명령을 예약할 수 있다.

- 아래 공식문서에 더 자세한 내용이 담겨 있다.

 

GitHub - citusdata/pg_cron: Run periodic jobs in PostgreSQL

Run periodic jobs in PostgreSQL. Contribute to citusdata/pg_cron development by creating an account on GitHub.

github.com

pg_stat_statements

pg_stat_statements 모듈은 서버에서 실행 되었던 쿼리들에 대한 실행 통계 정보를 보여준다.

이 모듈은 추가적인 공유 메모리를 사용하기 때문에, 이렇게 서버 환경 설정도 바꾸어야 하며, 이것이 적용 하기 위해서는 서버도 다시 실행 해야한다. 물론 이 모듈을 더 이상 사용하지 않아 추가적인 공유 메모리 사용을 하지 않으려고 할 때도 마찮가지다.

- 아래 공식문서에 더 자세한 내용이 담겨 있다.

https://www.postgresql.kr/docs/9.4/pgstatstatements.html


pg_cron 설치

도커 설치일 경우 postgreSQL 컨테이너 내부에서 실행한다.

sudo apt-get update
sudo apt-get install postgresql-contrib
sudo apt-get -y install postgresql-15-cron

pg_stat_monitor 설치

이역시 마찬가지로 도커 설치일 경우 postgreSQL 컨테이너 내부에서 실행한다.

#데비안
sudo apt-get update
sudo apt-get install curl
curl -O https://repo.percona.com/apt/percona-release_latest.generic_all.deb
sudo apt-get install gnupg2 lsb-release ./percona-release_latest.generic_all.deb
sudo percona-release setup ppg15 #ppg<PG 버전>
sudo apt-get install percona-pg-stat-monitor15
#Centos
sudo yum install postgresql-contrib 
sudo yum install -y pg_cron_15
sudo yum install -y https://repo.percona.com/yum/percona-release-latest.noarch.rpm
sudo percona-release setup <PRODUCT>

`ppg15` 는 postgreSQL 버전이 15버전대인경우에는 수정할 필요가 없지만 그 이상, 이하 버전일 경우 숫자 부분을 버전에 맞게 바꿔준다.


pg_cron , pg_stat_monitor 일괄설치

데비안 기준

apt-get update && apt-get install -y postgresql-contrib && apt-get install -y postgresql-15-cron && apt-get install -y vim && apt install -y curl && curl -O https://repo.percona.com/apt/percona-release_latest.generic_all.deb && apt install -y gnupg2 lsb-release ./percona-release_latest.generic_all.deb && percona-release setup ppg15 && apt-get install -y percona-pg-stat-monitor15

그냥 위 명령어를 합쳐줬다.


PostgreSQL 모듈 적용하기

설치가 끝났으면 모듈을 적용시켜준다.

나는 Docker 에서 PostgreSQL 환경에서 적용을 시켜줬는데 적용 과정에서 conf파일을 잘못 적용하여 몇번 날려먹은 적이 있다.

그 이유는 단일 모듈에 대한 적용법은 웹에 많지만 복수개의 모듈을 적용할 땐 어떻게 해야 적용하는지 찾기 어려웠다.

  • shared_preload_libraries = 'pg_stat_statements','pg_cron','pg_stat_monitor' 이렇게 해줘야 하는건지 
  • shared_preload_libraries = 'pg_stat_statements'shared_preload_libraries = 'pg_cron'shared_preload_libraries = 'pg_stat_monitor'         이렇게 여러줄로 해줘야 하는건지
  • shared_preload_libraries = 'pg_stat_statements,pg_cron,pg_stat_monitor' 이렇게 해야 하는건지 햇갈렸기 때문이다.

운이 안좋게도 정상적인 방법을 가장 마지막에 알게 되었다.

단일 모듈을 적용시킬 때는

shared_preload_libraries = '모듈명'

이고, 여러 모듈을 적용시킬 때는

shared_preload_libraries = '모듈명,모듈명1,모듈명2'

이렇게 해줘야 된다.


적용 방법

Docker 환경일 경우

Docker 환경일 경우에는 아래 명령어로 `postgresql.conf` 에서 수정해주고

vi /var/lib/postgresql/data/postgresql.conf

Linux 환경일 경우

일반 Linux환경일 경우에는 아래 명령어로 `postgresql.conf` 에서 수정해 준다.

vi /etc/postgresql/<version>/main/postgresql.conf

postgresql.conf

그렇게 postgresql.conf 을 편집하는 환경에 진입 한 경우 conf에 있는 내용을 아래 구문처럼 바꿔준다.

shared_preload_libraries = 'pg_stat_statements,pg_cron,pg_stat_monitor'
#shared_preload_libraries 에 주석을 제거하고 수정

cron.database_name = 'postgres'
#해당 설정을 안해줄 경우 기본적으로 'postgres 데이터베이스'에 메타데이터 테이블이 생성될 것임

:wq

Docker 환경일 경우

Docker 환경일 경우에는 아래 명령어로 postgreSQL을 재부팅 시켜주고

exit
docker restart 
만약 restart 후 다시 start되지 않으면 아래 링크를 참고하여 해결해본다.
 

죽은 컨테이너 접속 방법

Docker를 사용하다 보면 컨테이너의 configure 파일 등을 잘못 입력하고 restart 해버리는 경우 다시 start를 못하는 경우가 발생할 수 있다. 아래 명령어를 사용하여 해결할 수 있다. 해당 명령어는 컨

hbcha0916.tistory.com

Linux 환경일 경우

일반 Linux환경일 경우에는 아래 명령어로 postgreSQL을 재부팅 시켜준다.

sudo service postgresql restart # Ubuntu/Debian
sudo systemctl restart postgresql # CentOS/RHEL

psql 에서 모듈 EXTENSION 

이제 부팅 시 라이브러리 참조 작업을 끝냈으니 EXTENSION 시켜준다.

아래 명령어를 통해 모듈들을 EXTENSION 시켜준다.

psql -U postgres -d <dbname>
CREATE EXTENSION pg_stat_statements;
CREATE EXTENSION pg_cron;
CREATE EXTENSION pg_stat_monitor;

`<dbname>` 에는 해당 모듈을 사용 할 데이터베이스를 입력해준다.


이렇게 모듈을 설치/적용 하는 방법에 대해 알아보았다.
반응형
저작자표시 변경금지 (새창열림)

'RDBMS > PostgreSQL' 카테고리의 다른 글

[Docker] PostgreSQL 설치하기  (0) 2023.05.25
  1. PostgreSQL 모듈 설치하기
  2. 설치해볼 모듈
  3. 설치해볼 모듈에 대한 간략한 설명(번역본)
  4. pg_cron 설치
  5. pg_stat_monitor 설치
  6. pg_cron , pg_stat_monitor 일괄설치
  7. PostgreSQL 모듈 적용하기
  8. 적용 방법
  9. postgresql.conf
  10. psql 에서 모듈 EXTENSION 
'RDBMS/PostgreSQL' 카테고리의 다른 글
  • [Docker] PostgreSQL 설치하기
항상 빌드중
항상 빌드중
망각을 지연시키는 블로그
항상 빌드중
언제나 미완성
항상 빌드중
전체
오늘
어제
  • 분류 전체보기 (78) N
    • Docker (4)
    • Linux | PowerShell (10)
      • [WSL][CUDA] TensorFlow 설치 과.. (4)
    • Kafka (3)
    • NiFi (13)
      • MiNiFi (4)
      • ExecuteScript (1)
    • RDBMS (3)
      • PostgreSQL (2)
      • Tibero (1)
    • NoSQL (1)
      • ElasticSearch(OpenSearch) (1)
    • 프로그래밍 (13) N
      • JAVA (1)
      • WEB (9) N
      • Python (3)
    • 잡것 (2)
      • 해킨토시 (1)
      • WSL (3)
      • VScode (3)
      • STT (3)
      • DIY (1)
    • 클러스터 구성 (4)
    • 정처기 (9)
      • 오답노트 (0)
      • 파이널 (4)
      • 벼락치기 (5)
    • 자동차 (5)
      • Android올인원 (2)
      • TOYOTA Prius XW50 (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • GitHub
반응형

공지사항

인기 글

태그

  • 프리우스4 와이드미러
  • 텐서플로우
  • NiFi Python
  • MiNiFi 사용방법
  • whisper설치 및 실행
  • x600 usb4
  • 프리우스4
  • 프리우스4 사이드미러
  • 프리우스 옵틱글래스
  • whisper설치과정
  • 프리우스4 사이드미러 diy
  • markdownserver
  • deskmini usb4
  • 마크다운 공유
  • 마크다운 메모장
  • jupiter x600 온도
  • WSL
  • prius4 side-view mirror
  • nifi
  • 프리우스4 옵틱글래스

최근 댓글

최근 글

hELLO · Designed By 정상우.
항상 빌드중
PostgreSQL 모듈설치 및 적용하기
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.