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 10064 게시물 읽기
No. 10064
psql시, FATAL: the database system is in recovery mode 문제
작성자
카비
작성일
2019-04-12 14:01
조회수
5,465

 pg_basebackup 스크립트를 crontab(주 1회 실행)으로 걸어놓고 진행 중, 백업이 안되어 수동으로 돌려보니 

pg_basebackup : could not connect to server : FATAL : number of requested standby connections exceeds max_wal_senders( currently 5)가 확인되었습니다.

wal_sender 프로세스를 확인해보니 특정 날짜부터 총 5개의 wal_sender 프로세스가 실행되어 있는 것을 확인했습니다. 

가장 오래된 날짜의 프로세스를 강제 kill 후, wal_sender 프로세스가 전부 사라진 것이 확인되었습니다.

 

이 후, psql시 recovery mode 때문에 접속이 안되더군요... (pg_ctl status는 server is running으로 확인되나 postgres 관련 프로세스는 확인 안됨)

약 5분 정도 후 다시 접속해 보니, 정상적으로 psql이 되긴 되더군요

 

질문 : recovery mode는 특정 프로세스를 강제 종료시, 자동으로 변하는 것인지?

         정상적인 mode로 변경하기 위헤 특별한 조치를 해야하는 것인지? 

         recovery mode로 변경 시, DB서비스가 내려간 상태로 변하는 것인지?

 

궁금하네요..

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

 recovery mode란 마지막 체크 포트인 이후 디비가 강제 중지되었고, (아마 kill 할 때, kill -9를 사용했나봅니다. postgresql은 kill -9 명령으로 프로세스를 죽이면 recovery mode로 빠집니다.)

서버에는 데이터파일에 반영해야할 wal가 아직 있어, 그것을 DB 정상 시작 전에 반영하는 동안을 recovery mode라고 합니다. 

복원 모드는 wal 가 모두 반영 되면 자동으로 정상 모드로 전환됩니다. 

전환되지 않는 경우는 recovery.conf  파일이 있고, standby 모드로 이 서버를 사용하겠다고 설정한 경우는 계속 recovey mode에 머물러있기도 합니다. 

 

일반 마스터 운영 DB라면, recovery mode가 정상 모드로 바뀔 때까지 데이터베이스 운영자는 할 수 있는 것이 없습니다. 모든 WAL 파일이 다 반영될 때까지 기다리는 수 밖에. 

그것을 못참고, 또 db 를 강제로 죽이면 데이터베이스가 영 망가져버리는 경우도 발생합니다.

김상기(ioseph)님이 2019-04-12 15:16에 작성한 댓글입니다.
이 댓글은 2019-04-12 15:56에 마지막으로 수정되었습니다.

답변 정말 감사합니다. 다행히 빨리 복구가 되서 다행이었지만, kill -9로 죽이는건 항상 조심해야겠네요.. 

카비님이 2019-04-12 15:47에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
10067postgresql 외부 라이브러리 사용 방법 [6]
cu
2019-04-29
3469
10066함수에서 파라미터 관련 [2]
지현명
2019-04-23
3343
10065특정유저에 function execute 권한 부여 후 조회할 수 있는 방법이 있나요? [1]
전석
2019-04-12
3368
10064psql시, FATAL: the database system is in recovery mode 문제 [2]
카비
2019-04-12
5465
10063postgresql-11.2 사용시 jdbc 드라이버는 뭘 사용해야하나요.. [1]
권기혁
2019-04-11
3131
10062새로운 서버 PostgreSQL 디렉토리를 통으로 옮기도 psql이 접속이 되지 않는 현상입니다. [1]
탁구공
2019-04-09
3247
10061max_locks_per_transaction 문의 [2]
us2019
2019-04-02
3405
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.047초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다