작업관리자에서 강제적으로 Mongo 서비스종료하고 나서 재시작을 할려고 하니 이 에러가 발생했습니다.
exception in initAndListen: 10296 dbpath (/data/db) does not exist
그리고 Data/db 폴더에 Lock파일의 사이즈가 0 이 아닌 상태가 됩니다.
mongod.lock
비정상종료가 되면 시스템을 보호하기 위한 조치인것으로 보이면 수리하는 절차를 밟아야 합니다.
Recover MongoDB Data following Unexpected Shutdown
( http://docs.mongodb.org/manual/tutorial/recover-data-following-unexpected-shutdown/ )
절차를 간단하게 정리해 보겠습니다.
Mongo 데몬을 종료하기 위해서는 mongod --shutdown 옵션을 사용하면 됩니다.
일반적으로 저널링이나 레플리카 세트을 사용하고 있지 않은 상태에서 시스템이 비정상적으로 종료된 경우에는 항상 수리(repair)과정을 거쳐야 합니다.
dbpath 폴더에 mongod.lock 파일이 0보다 큰사이즈로 존재한다면 mongod 는 시작되는것을 거절할것입니다.
original file 을 수정되기 전상태로 유지할 필요가 있을때
1. mongod --dbpath /data/db --repair --repairpath /data/db0
2. mongod --dbpath /data/db0
original file 을 수정되기 전상태로 유지할 필요가 없을때
1. rm /data/db/mongod.lock
2. mongod --dbpath /data/db --repair
3. mongod --dbpath /data/db
** Mongo 데몬을 서비스로 등록하기
mongod --config d:\mongodb\mongod.cfg --install
net start MongoDB
net stop MongoDB
mongod --remove
** 인증된 사용자가 사용할수 있도록 암호를 설정해서 서비스로 등록하기
mongod --auth : 보안적용, --config : 로그파일설정, --install : 서비스로 등록
** systems 데이타베이스 사용자등록
db.removeUser("***")
db.systems.users.find()
db.addUser("***","password")