복붙노트

[MONGODB] MongoDB를 서버 충돌 후 시작되지 않습니다

MONGODB

MongoDB를 서버 충돌 후 시작되지 않습니다

내 우분투 컴퓨터가 추락했고, 내가 그것을 다시 시작할 때 MongoDB를 작동하지 않았다. 나는 다음과 같은 명령을 시도하고, 다음과 같은 결과를 얻었다 :

$ mongo
Error: couldn't connect to server 127.0.0.1:27017 src/mongo/shell/mongo.js:91
exception: connect failed

$ service mongodb status
mongodb stop/waiting

$ service mongodb restart
stop: Unknown instance: 
start: Rejected send message, 1 matched rules; type="method_call",
       sender=":1.57" (uid=1000 pid=2227 comm="start mongodb ")
       interface="com.ubuntu.Upstart0_6.Job" member="Start" error name="(unset)"
       requested_reply="0"
       destination="com.ubuntu.Upstart" (uid=0 pid=1 comm="/sbin/init")

$ tail /var/log/mongodb/mongodb.log
[initandlisten] exception in initAndListen: 12596 old lock file, terminating
dbexit: 
[initandlisten] shutdown: going to close listening sockets...
[initandlisten] shutdown: going to flush diaglog...
[initandlisten] shutdown: going to close sockets...
[initandlisten] shutdown: waiting for fs preallocator...
[initandlisten] shutdown: closing all files...
[initandlisten] closeAllFiles() finished
dbexit: really exiting now

(출력은 웹 사이트의 레이아웃에 맞게 포맷.)

어떻게 된 거예요? 어떻게 그것을 해결할 수 있습니까?

해결법

  1. ==============================

    1.로그 파일은 당신이 "오래된 잠금 파일을"가 있음을 말하고있다. 이 실행중인 동안 MongoDB를가 잠금 파일을 유지합니다. 그것은 시작이 파일을 생성하고,이 멈췄 때를 삭제합니다. 컴퓨터가 충돌 (또는 MongoDB를가, 예를 들면 통해 죽 충돌) 할 때,이 파일이 삭제되지 않으며, 따라서 데이터베이스가 시작되지 않습니다. 이 파일의 존재는 MongoDB에의 부정한 종료를 나타냅니다.

    로그 파일은 당신이 "오래된 잠금 파일을"가 있음을 말하고있다. 이 실행중인 동안 MongoDB를가 잠금 파일을 유지합니다. 그것은 시작이 파일을 생성하고,이 멈췄 때를 삭제합니다. 컴퓨터가 충돌 (또는 MongoDB를가, 예를 들면 통해 죽 충돌) 할 때,이 파일이 삭제되지 않으며, 따라서 데이터베이스가 시작되지 않습니다. 이 파일의 존재는 MongoDB에의 부정한 종료를 나타냅니다.

    두 가지를 수행 할 수 있습니다 :

  2. ==============================

    2.모든 나는 실행 된해야했다 : sudo는 mongod --repair

    모든 나는 실행 된해야했다 : sudo는 mongod --repair

    그때:

    sudo는 mongod

  3. ==============================

    3.내 경험을 바탕으로, 나는 보통 데이터베이스 폴더 안에있는 "mongod.lock"파일을 삭제 - 내 경우 :

    내 경험을 바탕으로, 나는 보통 데이터베이스 폴더 안에있는 "mongod.lock"파일을 삭제 - 내 경우 :

    . * 나는 데이터베이스 폴더 (CD 데이터) 내 우분투 즉 "데이터"에 설치된 위치로 이동; 파일 (LS)를 나열 * 다음, 나는 데이터베이스가 "RM은 mongod.lock"파일을 실행하여, 충돌 때 자동으로 생성 된 "mongod.lock"파일을 제거합니다.

    후 나도 문제는 "./mongod"는 몽고 쉘을 시작 몽고 데몬 또는 mongod를 시작합니다. 그리고 모든 것이 잘 될 것입니다.

  4. ==============================

    4.당신이 등 Bluepill 또는 MONIT 같은 모니터링 도구를 사용하지 않은 경우 당신은 때문에 서버 충돌 후 몇 가지 이유로 인해 몽고 didnot 당신이 sudo는 서비스 mongod 다시 시작처럼 수동으로 작동하도록해야 자동으로 다음의 데몬을 시작으로이 문제에 직면 할 것이다 나는이 문제를 생각하지만, 당신의 몽고 데몬 시작하기 전에 /etc/mongod.conf에서 당신의 DBPATH을 확인하시기 바랍니다 좀 더 작업을 수행해야합니다.

    당신이 등 Bluepill 또는 MONIT 같은 모니터링 도구를 사용하지 않은 경우 당신은 때문에 서버 충돌 후 몇 가지 이유로 인해 몽고 didnot 당신이 sudo는 서비스 mongod 다시 시작처럼 수동으로 작동하도록해야 자동으로 다음의 데몬을 시작으로이 문제에 직면 할 것이다 나는이 문제를 생각하지만, 당신의 몽고 데몬 시작하기 전에 /etc/mongod.conf에서 당신의 DBPATH을 확인하시기 바랍니다 좀 더 작업을 수행해야합니다.

    나에게는이었다

    storage:
      dbPath: /var/lib/mongodb
    

    내가 mongod 명령을 입력하면 그것은 MongoDB를가 시작하는 날 보여줍니다 : PID = 10795 포트 = 27017 DBPATH = / 데이터 / DB 64 비트 호스트 = xyz.com /etc/mongod.conf에서 언급 한 바와 같이 확인하십시오 DBPATH가 동일하게되어 있는지 확인

    이렇게하려면 sudo는 mongod --dbpath은 / var / lib 디렉토리 / MongoDB를 입력 한 다음 원하는 DBPATH에 당신의 몽고 과정을 시작합니다 mongod 명령을 사용할 수 있습니다.

    참고 : mongod 명령을 사용하여 몽고 프로세스를 시작합니다

  5. ==============================

    5.당신이 당신의 서버에 충분한 여유 공간이 있는지 확인하십시오. 이 경우 여지 MongoDB를가 시작되지 남아 있지.

    당신이 당신의 서버에 충분한 여유 공간이 있는지 확인하십시오. 이 경우 여지 MongoDB를가 시작되지 남아 있지.

  6. ==============================

    6.이것은 아마도 최선의 해결책이 아니라 당신이 필사적 경우이 작업을 시도 할 수 있습니다. 내가 다음 단계를했다, 그래서 오직 저널, 나를 위해 문제였다 듯 :

    이것은 아마도 최선의 해결책이 아니라 당신이 필사적 경우이 작업을 시도 할 수 있습니다. 내가 다음 단계를했다, 그래서 오직 저널, 나를 위해 문제였다 듯 :

    이러한 단계를 완료 한 후 (미만 5 분을했다), 내가하고 실행했고 모든 데이터가 확인 될 것처럼 보였다.

  7. ==============================

    7.의 사람을 감사드립니다. MongoDB를이 이상 다시 시작 된 경우에는 해당 문제에 직면 이상 다시는 이전 잠금 파일에 대해 불평했다. 나는 Windows 서비스 목록에서 MongoDB를 중지 한 후 나는 mongod.lock 파일을 삭제. 그 후 나는 제대로 MongoDB의 서비스를 시작할 수 있었고, 그것을 잘 일했다.

    의 사람을 감사드립니다. MongoDB를이 이상 다시 시작 된 경우에는 해당 문제에 직면 이상 다시는 이전 잠금 파일에 대해 불평했다. 나는 Windows 서비스 목록에서 MongoDB를 중지 한 후 나는 mongod.lock 파일을 삭제. 그 후 나는 제대로 MongoDB의 서비스를 시작할 수 있었고, 그것을 잘 일했다.

  8. ==============================

    8.몽고 데이터 디렉토리 DBPATH에서 .lock 파일을 제거하면 나를 위해 작동합니다.

    몽고 데이터 디렉토리 DBPATH에서 .lock 파일을 제거하면 나를 위해 작동합니다.

    예컨대 sudo는 sudo는 RM은 {데이터 디렉토리} /mongod.lock

  9. from https://stackoverflow.com/questions/13700261/mongodb-wont-start-after-server-crash by cc-by-sa and MIT license