2017/01/17

pgAdmin3 ERROR: the log_filename parameter must equal 'postgresql-%Y-%m-%d_%H%M%S.log' 해결 방법 // Server Status, PostgreSQL, pgSQL, CentOS7

1. pgAdmin3 의 Server Status 에서 오류 발생!

pgAdmin3에서 디버깅용으로 즐겨 사용했던 Tools -> Server Status 을 실행하는데 처음보는 오류 발생


ERROR: the log_filename parameter must equal 'postgresql-%Y-%m-%d_%H%M%S.log'
ERROR: the log_filename parameter must equal 'postgresql-%Y-%m-%d_%H%M%S.log'

위의 에러 창이 뜨면서 서버 상태가 모니터링 되지 않음.


묵묵부답 상태인 pgAdmin3의 Server Status
묵묵부답 상태인 pgAdmin3의 Server Status

Log entry 창의 메시지에서도 알 수 있듯이,

logging_collector not enabled or log_filename misconfigured

로깅 컬렉터가 활성화 되어 있지 않거나 로그 파일의 이름이 잘못 설정되어 있는 상태인 듯.

(참고) 접속 환경
1) 원격 PC
Windows
pgAdmin III ver 1.22.1
PostgreSQL 9.5 설치

2) DB 서버
Linux (CentOS 7)
PostgreSQL 9.3


2. 해결 방법

일단, 하라는 대로 해봅시다! -.-;;;

로그 파일 이름 설정을 pgAdmin3가 요구하는 대로 바꿔봅니다. (바꾸라면 바꾸겠사와용~)

the log_filename parameter must equal 'postgresql-%Y-%m-%d_%H%M%S.log'


PostgreSQL의 설정 파일인 postgresql.conf 파일을 수정합니다.

리눅스 CentOS 7 기준으로 postgresql의 설정 파일은,

/var/lib/pgsql/9.3/data 폴더에 있습니다.


해당 파일을 편집기로 열어서,

아래 이미지 기준으로

라인 318의 log_filename = 'postgresql-%a.log' 부분은 주석처리하고

라인 319에 log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' 을 추가합니다.

파일 저장 완료 후에는 DB를 재시작!


postgresql.conf 파일의 log_filename 속성 수정
postgresql.conf 파일의 log_filename 속성 수정


(참고) 리눅스 CentOS 7 에서 PostgreSQL을 재시작하는 방법

/usr/pgsql-9.3/bin/pg_ctl restart -D /var/lib/pgsql/9.3/data -m fast

(설명)
- pgsql 설치 경로 : /usr/pgsql-9.3/bin/
- pgsql 재시작 명령어 : pg_ctl restart
- DB의 데이터 폴더 경로 : -D /var/lib/pgsql/9.3/data
- 재시작 또는 중지 모드 옵션 (아래 이미지 참고) : -m fast


pg_ctl --help 결과
pg_ctl --help 결과

pg_ctl 명령은 root 권한으로는 안 되고, 특권이 없는 사용자(unprivileged user)로만 실행됨.


Please log in as the (unprivileged) user that will own the server process
Please log in as the (unprivileged) user that will own the server process

* (특권이 없는) 사용자가 뭔가 하고 봤더니, 리눅스에서 프로세스를 실행하는 모드로는 사용자 모드와 커널 모드라는 게 있다고 하는군요. 오호~


에러 없이 나오는 pgAdmin3의 Server Status
에러 없이 나오는 pgAdmin3의 Server Status

에러 없이 뜨는 Server Status 창을 보고 좋아했으나, 기쁨도 잠시.

왼쪽의 Activity나 Locks는 DB 상황에 따라서 업데이트가 되는데, Log entry 창에는 아무런 내용도 업데이트 되지가 않음 -.-;;;;;

일단, 서버 내부에서 pgAdmin3를 돌린 게 아니라 원격으로 접속하면서 Server Status 를 보려고 하는 것도 문제이고, DB 서버가 리눅스 환경이라서 어딘가가 기본 설정상 막혀있기도 하고 그런 듯... 인 줄 알았는데, Log entry 창에 쿼리 내용이 나올 때도 있고 안 나올 때도 있고 그런 상황. 쩝;;

댓글 없음:

댓글 쓰기