conf파일을 수정하여 오래 걸린 쿼리를 찾기 위해 기록 남기기 설정

저의 경우 Centos 7을 활용하고 있으며, PostgreSQL 설정 파일은 PostgreSQL 설치 위치에 존재 (제 경우엔 /var/lib/pgsql/9.6/data에 postgresql.conf 파일이 있습니다)

해당 파일을 vi편집기 또는 텍스트 편집기를 이용하여 'log_min_duration_statement'의 값을 설정해줍니다 (저는 7초 이상 걸린 쿼리의 로그를 찍겠습니다)

 - log_min_duration_statement 앞에 '#' 이 붙어있으면 지워주세요.

log_min_duration_statement = [시간(ms)]

 

변경이 끝났으면 pg의 설정값을 재로딩 해야합니다.

해당 SQL문을 사용하여 서버 재가동 없이 로딩이 가능합니다

SELECT pg_reload_conf();

 - conf파일의 일부 설정은 서버 재가동이 필요하며, reload 만으로는 적용되지 않는 설정도 있습니다.

 

설정 및 리로드가 완료되고, 슬로우 쿼리가 발생하면 로그 파일에 기록되며, pg가 설치된 폴더 (제 경우엔 /var/lib/pgsql/9.6/data/pg_log)에서 로그 파일을 확인할 수 있습니다.

요일별로 로그가 분리되어 있고, 설정시간 이상의 슬로우 쿼리가 발생하였던 제 서버에는 로그가 남아있습니다.

해당 쿼리가 무엇 때문에 오래 걸렸는지, 확인 후 조치하여 현재 제 서버의 문제점은 해결되었습니다.

작은 도움이라도 되셨길 바랍니다.

+ Recent posts