DataBase/PostgreSQL

PostgreSQL 기동 실패 - pg_log Permission Denied 해결

범데이 2025. 7. 17. 18:48

문제 상황

EC2 Ubuntu 18.04에서 PostgreSQL 14를 재시작하려 했으나 서비스가 기동되지 않았다.

 

systemctl status postgresql@14-main 을 통해 확인한 결과, 다음과 같은 에러 로그가 출력되었다.

FATAL:  could not open log file "pg_log/postgresql-YYYY-MM-DD_HHMMSS.log": Permission denied

 

 

pg_log 디렉토리에 대한 접근 권한이 없어 PostgreSQL이 로그 파일을 생성하지 못하고 종료되는 상황이었다.

(이전에 DB 백업 작업을 하면서 pg_log 폴더에 대한 권한이나 소유자 설정이 바뀐 듯 했다.)

 

 

원인 분석

PostgreSQL은 postgres 사용자로 실행되며, 로그를 기본적으로 pg_log 디렉토리에 생성한다.

이 디렉토리의 소유자나 권한이 변경되었을 경우 로그 파일을 쓸 수 없어 서비스 시작이 실패한다.

 

 

해결 방법

권한 문제를 해결하기 위해 다음 두 명령어를 실행했다.

sudo chown -R postgres:postgres /var/lib/postgresql/14/main/pg_log
sudo chmod 700 /var/lib/postgresql/14/main/pg_log

 

  • chown: 디렉토리의 소유자를 postgres 로 변경
  • chmod: postgres만 접근 가능하도록 권한 설정

 

 

결과

PostgreSQL 서비스를 재시작한 결과, 정상적으로 기동되었다.

sudo systemctl restart postgresql@14-main

 

참고

  • pg_logpostgresql.conflog_directory 설정에 따라 달라질 수 있다.
  • pg_lsclusters 명령어로 현재 클러스터 상태를 쉽게 확인할 수 있다.

 

 

이와 같은 권한 문제는 디스크 복원, 수동 파일 이동, 백업 복원 등의 과정에서 자주 발생하므로 유사 상황시 위와 같은 방식으로 점검하면 된다.

728x90
반응형