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 10319 게시물 읽기
No. 10319
pgpool failover질문드립니다.
작성자
뽀글스
작성일
2022-02-03 09:48
조회수
1,175

안녕하세요.  서비스중에  failover가 발생했습니다.

항상 db stop/ os shutdown으로 failover 테스트만 해보다가 운영중에 실제  failover가 발생했는데,

failover 원인을 못찾겠어서 문의드립니다.

해당시간에 db down이나 네트워크 OS이슈는 없었습니다. 

pgpool로그를 확인해봤는데 "detecting postmaster down error"  메시지의 원인을 모르겠습니다.

down 에러 직전에 쿼리응답을 기다리고 있었다는 구문이 남았는데, 쿼리는 문제가 없어보이는데,

down 직전의 쿼리가 원인이라고 봐야할까요 ? 

failover시간에 pgpool 로그 같이 올립니다.

혹시 제가 더 찾아볼만한게 있으면 조그만한거라도 답변 부탁드려요


* 버전 : postgresql 9.6.22 / pgpool-II version 4.1.8 (karasukiboshi)

* pgpool 구성 : m -s  디비서버에 각각 pgpool 데몬 띄움 

* failover config : failover_on_backend_error = on 사용


2022-01-28 13:45:46: pid 72195: DETAIL:  destination = 0 for query= "/*

Query~~~(매우 자추 호출퇴는 초기화 DDL 구문들 ) 

2022-01-28 13:45:46: pid 72195: DEBUG:  waiting for query response

2022-01-28 13:45:46: pid 72195: DETAIL:  waiting for backend:0 to complete the query

2022-01-28 13:45:46: pid 32884: DEBUG:  detecting postmaster down error

2022-01-28 13:45:46: pid 32884: DETAIL:  receive admin shutdown error from a node

2022-01-28 13:45:46: pid 32884: LOG:  reading and processing packets

2022-01-28 13:45:46: pid 32884: DETAIL:  postmaster on DB node 0 was shutdown by administrative command

2022-01-28 13:45:46: pid 32884: LOG:  received degenerate backend request for node_id: 0 from pid [32884]

2022-01-28 13:45:46: pid 64032: LOG:  new IPC connection received

2022-01-28 13:45:46: pid 64032: LOG:  watchdog received the failover command from local pgpool-II on IPC interface

2022-01-28 13:45:46: pid 64032: LOG:  watchdog is processing the failover command [DEGENERATE_BACKEND_REQUEST] received from local pgpool-II on IPC interface

2022-01-28 13:45:46: pid 64032: LOG:  we have got the consensus to perform the failover

2022-01-28 13:45:46: pid 64032: DETAIL:  1 node(s) voted in the favor

2022-01-28 13:45:46: pid 64032: DEBUG:  removing failover request from 1 nodes with ID:567447

2022-01-28 13:45:46: pid 64032: DEBUG:  sending watchdog packet to socket:9, type:[7], command ID:0, data Length:54

2022-01-28 13:45:46: pid 63529: DEBUG:  function call walker, function name: "pg_terminate_backend"

2022-01-28 13:45:46: pid 63529: DEBUG:  function call walker, function name: "pg_backend_pid"

:

:

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

pgpool 로그 말고, 

postgresql 서버 로그도 보여주세요

김상기(ioseph)님이 2022-02-03 16:36에 작성한 댓글입니다.

넵, postgresql 로그도 해당시점에 특별히 남는게 없습니다. 

pgpool에 남은 동일 쿼리만 남아있습니다. 

* 다시 마스터의 로그

2022-01-28 01:14:39 KST DETAIL:  parameters: $1 = 'f'

----------faiover 시점로그 -----------------

2022-01-28 13:45:46 KST FATAL:  terminating connection due to administrator command

2022-01-28 13:45:46 KST FATAL:  terminating connection due to administrator command

2022-01-28 13:45:46 KST FATAL:  terminating connection due to administrator command

2022-01-28 13:45:46 KST STATEMENT:  /*

        tableSQL 

----------faiover 시점로그 -----------------

2022-01-28 14:16:42 KST ERROR:  syntax error at or near "uptime" at character 1

박노을(코코코)님이 2022-02-04 10:24에 작성한 댓글입니다.

데이터베이스가 중지되어 failover 작업을 진행했다이고,

DB는 사용자 개입에 의한 디비 중지다고 로그를 남겼네요.


디비 쪽에 서버 중지 명령을 보낸 주체가

1. OS인지, (일반적으로 Out of Memory Killer가 가끔 이런 일을 자동으로 합니다),

2. pgpool 데몬인지, (pgpool 데몬은 DB모니터링을 하고 있다가 응답이 의도한 시간 안에 오지 않으면 DB를 중지하라고 명령을 내리기도 합니다),

3. 정말 자연인인지 사용자가 정말 데이터베이스를 중지하라고 수동으로 명령을 내렸는지,

4. 세션 백엔드 프로세스가 비정상적으로 중지되면서 서버 재초기화 작업을 pgpool이 DB 중지 상태로 오인한 것인지


이정도 예측인데, 알려주신 로그로는 정확하게 어느 것인지 모르겠습니다.

김상기(ioseph)님이 2022-02-04 18:12에 작성한 댓글입니다.

상세한 설명감사합니다.

 /var/log/messages 로그와 grafana 모니터링 페이지에서, OS와 디비 특이사항은 없었습니다.   

pgpool은 좀 더 운영해보고 추적할 수 있는 방법을 찾아보겠습니다. 

뽀글스님이 2022-02-09 15:59에 작성한 댓글입니다. Edit

혹시 세션 킬하기 위해 pg_terminate_backend 함수를 수행하셨나요?


pg_terminate_backend 대신 pg_cancel_backend 수행 할 것을 권고하고있습니다..


 

아무개님이 2023-01-10 19:50에 작성한 댓글입니다. Edit

네네 원인을 찾은게 응용에서 "pg_terminate_backend" 수행이 되고있었고,

이게 failover 를 일으킨 것으로 확인했습니다 ㅠ

 

박노을(코코코)님이 2023-03-09 23:57에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
10322postgresql 연결 유지 keepalive 설정 참고
lucky
2022-02-16
1170
10321postgresql 8.3 관련 문의입니다. [2]
khy8331
2022-02-11
1083
10320auto vacuum이 동작하는 기준에 대해서 공부하고 있어요 [2]
황성범
2022-02-11
1170
10319pgpool failover질문드립니다. [6]
뽀글스
2022-02-03
1175
10318pg_hint_plan 질문드립니다. [3]
김기상
2022-01-28
1302
10317postgre가 TDE를 지원하나요? (최신버전기준) [2]
독개굴
2022-01-26
1228
10316zero_damaged_pages 파라미터에 대해서.. [2]
반지현
2022-01-24
1237
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.049초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다