← 전체 글로 돌아가기

서버 운영

서버에서 DB 파일이 안 열릴 때 확인 순서

권한 문제, 디스크 부족, 포트 충돌—이 중 어디가 진짜 원인인지 빠르게 판단하는 방법을 실제 명령어와 함께 정리했다.

서버에서 데이터베이스 파일이 갑자기 열리지 않는다면, 보통 세 가지 원인 중 하나다. 권한이 없거나, 디스크가 찼거나, 또는 포트가 이미 점유되어 있다.

첫 번째: 서버 상태 전체를 보기

한 가지 값만 보지 말고 서버 전체의 상태를 먼저 파악해야 한다. 문제가 데이터베이스에만 있는 게 아닐 수 있다.

sudo ss -lntp
df -h
sudo journalctl -n 80

첫 번째 명령은 어떤 포트가 열려 있고, 어떤 프로세스가 점유하고 있는지 본다. 두 번째는 디스크 사용량을 확인한다. 90% 이상 차 있으면 그게 문제일 수 있다. 세 번째는 최근 시스템 로그를 본다.

권한 문제인지 확인하기

ls -la 명령으로 파일의 소유권과 권한을 확인하자.

ls -la /path/to/database/file

데이터베이스 프로세스가 postgres 사용자라면, 그 사용자가 파일을 읽고 쓸 수 있어야 한다. 권한이 600 또는 644 정도여야 한다.

로그에서 실마리 찾기

실제로 어떤 에러가 나는지 보려면 데이터베이스 서비스의 로그를 직접 봐야 한다.

sudo journalctl -u postgresql -n 50

또는 애플리케이션 로그도 함께 확인하면 좋다. "file not found"인지 "permission denied"인지 "connection refused"인지에 따라 원인이 완전히 다르다.

작은 테스트로 검증하기

원인이 무엇 같은지 대략 파악했다면, 작게 수정해보고 다시 시도한다. 권한을 고쳤다면 데이터베이스 서비스를 재시작해서 정말 작동하는지 확인한다.

sudo systemctl restart postgresql

한 번에 여러 설정을 바꾸면 어디서 문제가 풀렸는지 알 수 없다. 꼭 하나씩 확인하고 기록을 남겨둬야 다음 번에 같은 실수를 반복하지 않는다.