-
[Ubuntu] MongoDB 사용 시 서비스 시작 안되는 문제 해결IT, 프로그래밍/MongoDB 2018. 9. 20. 03:58
크롤링 작업 할 일이 생겨 셀레늄 사용을 위해 X-window를 설치하였는데..
실행 과정에서 문제가 생겨 화면이 멈추더니 비정상적으로 종료되고 말았다.
그와 동시에 몽고 디비도 뻗어버리고 서비스 재시작 명령도 아예 듣질 않는다.
이상한건 tomcat을 비롯한 다른 백그라운드 프로그램은 아주 잘 돌아가는 상황.
몽고만 뻗어버려 굉장히 당황스러웠다.
보였던 증상
1. service mongodb restart가 먹지 않음. unrecognized service 라는 오류가 계속 뜸.
2. systemctl status로 서비스 상태 확인해 보니 이런 로그가 뜸
12345678● mongodb.service - High-performance, schema-free document-orienteddatabaseLoaded: loaded (/etc/systemd/system/mongodb.service; enabled; vendor preset:Active: failed (Result: exit-code) since Rab 2018-09-20 02:28:11 MYT; 16s agoProcess: 2331 ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf (codMain PID: 2331 (code=exited, status=2)cs 3. /var/log/mongodb로 가서 로그파일을 확인 해 보니
Insufficient free space for journal files .... Please make at least 3725 MB available in...
이런 기록이 있음.. 계속 뜸..
4. /var/lib/mongodb로 이동하니 mongod.lock 파일 생성되어 있음.
이제부터 해결 시작
가장 간단하면서 제일 의심가는놈부터 제거 시작.
1. 비정상 종료시 생성되는 mongod.lock 파일을 제거. sudo rm mongod.lock 명령 실행하니 잘 삭제됨. -> 서비스 재실행 -> 여전히 같은 문제
2. service 설정 쪽 문제를 의심. 구글링 중에 서비스 파일에 문제가 있었다는 분의 포스팅을 보고 /etc/systemd/system 폴더로 들어가 mongodb.service 파일을 찾아보았으나 없음!!! 바로 service 파일 생성 후에 다시 재실행 하였으나 위의 2번 같은 로그를 뿜으면서 여전히 돌아가지 않음.
3. 권한 문제를 의심.. 몽고 db에 관련된 로그 및 설정 폴더를 모두 777권한 및 소유자를 mongodb로 변경시켰으나 여전히 증상이 같음
4. journal files 문제를 의심.. sudo mongod --smallfiles 명령으로 해결해 보려 했으나 여전히 안됨.
5. 그렇다면 용량이 부족한가? df로 잔여용량을 확인해보니 3번 증상에서 보였던 3GB의 용량이 채 남지 않은 상태.. EBS의 용량을 통크게 32GB로 늘려주고 다시 재시작 시켰으나 작동 안됨.
6. 다시 서비스로 문제로 돌아가서.. 참고로 나의 mongodb conf 파일의 이름은 mongodb.conf였음. 서비스 파일에 정의된 설정 파일의 이름은 mongod.conf.. 이게 문제인가 싶어서 설정 파일 이름을 mongod.conf로 변경하고 실행시켰으나 여전히 같음
7. 이쯤되니 도저히 감히 안잡힘.. X-window를 삭제도 해보고 설치된 패키지를 최신 버전으로 업데이트 시켜봐도 안됨.
8. 위의 에러 로그는 mongodb 설정 파일 경로를 못 찾는다고 나오므로 6번을 다시 하고 reboot 시켜봄.. 그랬더니 깔끔하게 재 시작됨.. 젠장
------------해결법
123456789101112131415161718192021222324root@ip-172-11-11-11:/etc/systemd/system# sudo vim mongodb.service[Unit]Description=High-performance, schema-free document-oriented databaseAfter=network.target[Service]User=mongodbExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf[Install]WantedBy=multi-user.target~~~cs mongodb.service 파일이 없으면 작성.
그리고 /etc/mongod.conf 파일이 있는지 없는지 제대로 확인.
http://joonas.tistory.com/38 <--- 이 방법으로 해결함
https://bluebead38.blogspot.com/2017/07/python-mongod-error-insufficient-free.html (이건 3번 증상의 해결법)
새로 알게된점.. EBS는 볼륨을 확장하면 다시 축소가 안된다.. (프리티어의 볼륨 확장 최대량은 30GB.. 난 모르고 32GB까지 확장했음)
앞으로는 적당히 돌아간다 싶으면 무조건 이미지 떠놓기.. 그리고 DB 덤프 수시로 할것!!
'IT, 프로그래밍 > MongoDB' 카테고리의 다른 글
[Ubuntu] MongoDB dump 파일로 백업하기 (1) 2018.09.20