안녕하세요.
Primary - Standby
구성에서 Standby쪽에 통계정보가 수집되지 않아 구성품을 통해
설치경로 $PGDATA/pg_stat-_tmp를 확인해보니
Primary의 경우, 정상적으로 .stat 파일들이 갱신되나
Standby쪽의 경우, .stat 파일 들이 특정시간 이후, 갱신되지 않는 현상입니다.
관련하여 연관된 뷰나 사용할 수 있는 함수들에 대해 알고 싶습니다.
감사합니다.
pg_stat_tmp 에는 select 쿼리로 테이블 순차 탐색을 얼마나 했는지, 인덱스 탐색을 얼마나 했는지,
자료가 얼마나 변경 되었는지,
이런 정보들이 담깁니다.
postgres: stats collector 라는 프로세스가 그 정보를 수집하고, pg_stat_tmp 에 각 데이터베이스별로 파일을 만들어 관리합니다.
이런 정보는 pg_stat_all_tables 뷰를 통해 확인 할 수 있습니다.
즉, 정상적인 상황이라면,
주 서버 (master) 쪽에서는 pg_stat_all_tables 의 거의 모든 칼럼이 운영 상황에 따라 바로바로 반영되겠지만,
보조 서버 (read only slave) 쪽에서는 읽기 전용 작업들에 대한 정보만 반영되겠죠.
그런데, 보조 서버 쪽에 이 pg_stat_all_tables 정보들이 바뀌고 있지 않는다면,
stats collector 프로세스와 각 백엔드 세션 프로세스와의 통신 문제를 의심해 볼 수 있습니다.
간단합니다. 데이터베이스 서버를 실행하는 os 사용자가 /etc/hosts 파일을 읽을 수 있는지 확인해 보면 됩니다.
만일 보안 문제로 /etc/hosts 를 root 외에 아무도 못 읽게 해 두었다면, 이 통계 수집 프로세스가 정상 작동안할 수 있습니다.
이 때는 /etc/hosts 파일의 읽기 권한을 바꾸고, 데이터베이스를 다시 시작해야합니다.