Scikit Web

PostgreSQL PGPool Active StandBy Using Docker 개발 환경 구축 - 2 본문

Backend/PostgresSQL

PostgreSQL PGPool Active StandBy Using Docker 개발 환경 구축 - 2

Keun0 2023. 2. 17. 17:49
728x90
반응형

기본 개발 환경을 만들었다면 하나하나 설정을 하면 되겠다.

 

1. Active(Primary) Server 설정 

도커로 실행한 Active(Primary) Sever에 접속한다. 아래 명령어로 실행한 도커 컨테이너의 ID를 확인한다.

sudo docker ps

확인 후 해당 도커에 접속한다.

sudo docker exec -it 컨테이너ID /bin/bash

도커에 접속하고 나면 파일의 내용을 수정할 수 있는 에디터 조차 포함되어 있지 않다.

설치가 필요하다.

apt update
apt install vim

설치를 완료하고 PostgreSQL 서버에 어디서든지 쉽게 접속 가능하도록 설정을 변경해야 한다

pg_hba.conf 파일을 수정한다

cd /var/lib/postgresql/data
vi pg_hba.conf
host	replication	all	all	trust -> 추가
host	all	all	all	md5 -> host	all	all	all	trust 변경

변경 내용을 저장하고 Active(Primary) Server 도커를 재시작 한다

sudo docker restart 컨테이너ID

 

Standby 서버 도커를 실행한다. 접속하는 방법은 Active(Primary) 서버와 동일하다.

vim 설치까지 동일하게 진행한다. 

PostgreSQL 설정파일이 있는 폴더로 이동한다.

cd /var/lib/postgresql/data

Active(Primary) Server에 있는 설정을 가져온다.

pg_basebackup -h [Primary_Server_IP] -p 5432 -D /var/lib/postgresql/data -U root -P -v -R -X stream -C -S pgstandby

현재 폴더가 빈 폴더가 아니라면서 에러가 발생하면 아래 명령어로 현재 폴더의 모든 파일을 삭제한다.

rm -rf *

삭제하고 일정시간이 지나면 도커가 자동으로 재시작 되면서 설정파일들을 새로 생성한다.

삭제하고 최대한 빠르게 pg_basebackup 명령어로 Active(Primary) 서버에 있는 파일을 가져온다.

정상적으로 Active(Primary) 서버에 설정을 가져오면 해당 폴더에 standby.signal 파일이 생성된다.

 

이제 hot_standby mode를 활성화 하기 위해 postgresql.conf 파일을 수정한다.

vi postgresql.conf

아래와 같이 수정하고 저장한다

hot_standby = on

Standby 도커 서버도 재시작 한다.

 

이제 PgPool2 설정을 한다

728x90
반응형
Comments