database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 10010 게시물 읽기
No. 10010
PostgreSQL PgPool slave -> master
작성자
신동평(ehdvudee)
작성일
2018-09-14 15:16
조회수
5,380

 안녕하세요 처음 가입하고 첫 글이네요 잘 부탁드립니다.

 

질문은 다음과 같습니다.

PostgreSQL 9.1을 사용하며, PgPool은 3.2.22를 사용합니다.

PostgreSQL 서버 2개를 Streaming Replication으로 확인을 했으며,.

PgPool3.2.22 또한 master_slave_mode =on , master_slave_sub_mode='stream'으로 설정하여 잘 연결 되었습니다.

문제는 1개의 Master와 1개의 Slave 총 2개인데, 기존 Master를 죽이고, 기존 Slave를 Master로 바꾸는 것(pg_ctl promote)은 되었는데, 기존에 죽은 Matser가 Slave가 된다음 다시 Master로 하고 싶은데 잘 되지 않네요.. ㅠㅠ 

pcp_promote_node를 해도 되지 않고, postgresql/bin에 있는 pg_ctl promote를 통해서 master에서 slave 된 녀석을, 다시 master로 하면은 되지 않습니다.

 

pg_ctl promote -d /$data경로

 -> pg_ctl: cannot promote server; server is not in standby mode

 

pg_pool 로그

2018-09-14 15:04:06 DEBUG: pid 23071: find_primary_node: 1 node is standby
2018-09-14 15:04:06 DEBUG: pid 23071: find_primary_node: no primary node found
 
master, slave 두개 다 구동 되고 있는데 pg_pool은 인식을 못합니다.
 
구글링 해보면 attach를 하라는데...
 
pgpool의 pcp_* 명령어가 .. 되지 않네요 ..
 
pcp_* 명령어는 이렇게 입력했었습니다.
./pcp_attach_node 0 [ip] 9999 postgres postgres 0
 
질문 : pgpool에서 Master였던 녀석을 죽임, 기존의 Master는 Slave가 되었음, Slave가 된 기존 Master를 다시 Mater로 어떻게 하나요?
 
답변해주시면 정말 감사하겠습니다.

 

이 글에 대한 댓글이 총 4건 있습니다.

 제가 원하는게 아래 링크에 있네요.. 근데 좀 어렵네요. .삽질 좀 더 해봐야할 것 같아요 .ㅎㅎㅎ;;

https://blog.dbi-services.com/vertically-scale-your-postgresql-infrastructure-with-pgpool-2-automatic-failover-and-reconfiguration/

 

신동평(ehdvudee)님이 2018-09-17 11:26에 작성한 댓글입니다.

 $pgpool/bin/pcp_* 명령어가 되지 않는 이유가.. $pgpool/etc/pcp.conf의 ID:PW에 ID 쪽에 공백이 있었네요.. 정말 허무합니다 ㅋㅋ..;; 아 혹시 헷갈리시는 분을 위해 남기는데 pcp 명령어의 경우, pgpool.conf의 pcp port 설정(default 9898) 의 port를 하시면 되어요, 예를 들어,  timeout hostname port# username password nodeID 포멧에 hostname하고 port는 pgpool의 host와 pcp port 9898 하고 pcp.conf의 username과 password 하시면 돼요~!!

신동평(ehdvudee)님이 2018-09-18 13:19에 작성한 댓글입니다.
이 댓글은 2018-09-18 13:21에 마지막으로 수정되었습니다.

 질문의 요지인 slave를 Master로 바꾸는 작업을 스크립트를 통해 자동화 했습니다.. pgpool과 쉘 스크립트가 많이 미숙하다보니 삽질을 많이했네요 ㅠㅠ.. pgpool.conf의 failover_command에 failover.sh 와 매개변수 놓고 했습니다 ㅎㅎ.. failover.sh 구글링 하면 이런저런 스크립트가 있는데 저는 slave 서버에 직업 ssh를 타고 들어가 promote하는 스크립트로 했습니다. .

신동평(ehdvudee)님이 2018-09-18 21:30에 작성한 댓글입니다.
이 댓글은 2018-09-18 21:30에 마지막으로 수정되었습니다.

 https://github.com/PacktPublishing/PostgreSQL-High-Availability-Cookbook/blob/master/Chapter%203/pgpool_scripts/pgpool_failover.sh

 

이것 참고했습니다.

이제.. failback 삽질이 남았네요 .....;

신동평(ehdvudee)님이 2018-09-18 21:31에 작성한 댓글입니다.
이 댓글은 2018-09-18 21:32에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
10013PGDay.Seoul 2018 행사에 초대합니다
김상기
2018-10-08
4069
10012oracle to postgres convert 작업 중입니다. [10]
초보입니당
2018-10-04
4268
10011PgPool - Postgresql HA 적용할 경우 질문 [2]
신동평
2018-09-19
3921
10010PostgreSQL PgPool slave -> master [4]
신동평
2018-09-14
5380
10009postgres .s.pgsql.5432 파일을 삭제해버렸습니다. [1]
부탁해요
2018-09-10
3892
10008서버에 PGSQL 데이터베이스를 사용할까 하는데요.. [4]
전성용
2018-09-06
4151
10007postgresql.kr 홈페이지 디자인이 변경되었네요
ㅅㅅ
2018-09-05
4094
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.050초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다