MongoDB가 오늘 갑자기 작동을 멈췄습니다 (12.04)


8

한 달 또는 두 달 전에 12.04로 업데이트 한 후 APT를 통해 MongoDB를 설치했습니다. 그 이후로 잘 작동했습니다. 구성이나 아무것도 변경하지 않았습니다. 즉시 작동합니다.

오늘 시작하지 않았는데, 로그온 할 때 갑자기 응용 프로그램에서 "목록에있는 서버에 연결할 수 없습니다"오류가 발생하여 확인한 후 mongod실행되지 않았습니다.

ls -al /var/lib/mongodb

*.lock파일이 표시 되지 않습니다 .

$ /etc/init.d/mongodb start
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service mongodb start

Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the start(8) utility, e.g. start mongodb
start: Rejected send message, 1 matched rules; type="method_call", sender=":1.89" (uid=1000 pid=4284 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")

그런 다음 시도했습니다 sudo mongod --repair

Mon Aug 13 12:16:48 [initandlisten] MongoDB starting : pid=4350 port=27017 dbpath=/data/db/ 64-bit host=computer-localhost
Mon Aug 13 12:16:48 [initandlisten] db version v2.0.4, pdfile version 4.5
Mon Aug 13 12:16:48 [initandlisten] git version: nogitversion
Mon Aug 13 12:16:48 [initandlisten] build info: Linux yellow 2.6.24-29-server #1 SMP Tue Oct 11 15:57:27 UTC 2011 x86_64 BOOST_LIB_VERSION=1_46_1
Mon Aug 13 12:16:48 [initandlisten] options: { repair: true }
Mon Aug 13 12:16:48 [initandlisten] exception in initAndListen: 10296 dbpath (/data/db/) does not exist, terminating
Mon Aug 13 12:16:48 dbexit: 
Mon Aug 13 12:16:48 [initandlisten] shutdown: going to close listening sockets...
Mon Aug 13 12:16:48 [initandlisten] shutdown: going to flush diaglog...
Mon Aug 13 12:16:48 [initandlisten] shutdown: going to close sockets...
Mon Aug 13 12:16:48 [initandlisten] shutdown: waiting for fs preallocator...
Mon Aug 13 12:16:48 [initandlisten] shutdown: lock for final commit...
Mon Aug 13 12:16:48 [initandlisten] shutdown: final commit...
Mon Aug 13 12:16:48 [initandlisten] shutdown: closing all files...
Mon Aug 13 12:16:48 [initandlisten] closeAllFiles() finished
Mon Aug 13 12:16:48 dbexit: really exiting now

어떤 생각이 잘못 되었습니까?

최신 정보

그래서 시도 sudo service mongodb start하고 마침내 시작되었습니다 (이 전에 여러 번 시도했습니다)

mongodb start/running, process 4376

답변:


13

진단

가장 먼저해야 할 일은 MongoDB 로그 파일을 확인하여 서비스가 시작되지 않은 이유를 확인하는 것입니다. 운영:

tail -f /var/log/mongodb/mongodb.log

하나의 터미널 창에서 다음을 실행하십시오.

sudo service mongodb restart

또 다른. 로그 파일은 MongoDB가 오류 메시지를 시작하려고 시도하고 실패하면이를보고한다고 표시해야합니다.

수리

로그에 데이터베이스를 복구해야한다고 표시되면 두 가지 사항을 명심하십시오.

  1. 기본적으로 mongod데이터베이스 파일은에 있어야 /data/db/하지만 Ubuntu 패키지는이를 찾도록 구성합니다 /var/lib/mongodb/. 따라서 mongodupstart 스크립트를 사용하지 않고 직접 실행 하는 경우 --dbpath인수 를 추가하여 데이터베이스 파일의 위치를 ​​알려야합니다 .
  2. 실행할 때 mongod신출내기를 사용하여, 그것은으로 실행됩니다 mongodb데이터베이스 파일을 소유 한 사용자입니다 사용자. 사용자를 지정하지 않고 mongod사용 하면을 sudo소유 한 데이터베이스 파일이 생성됩니다 root. 따라서에 -u인수를 추가해야 합니다 sudo.

데이터베이스 파일이 현재 소유하고 있다면 MongoDB가 다시 사용할 수 있도록 root소유권을 다시 변경 mongodb해야합니다.

sudo chown -R mongodb:mongodb /var/lib/mongodb/

TL; DR

패키지 배포를 사용할 때 MongoDB에서 복구를 실행하려면 다음을 실행해야합니다.

sudo -u mongodb mongod --repair --dbpath /var/lib/mongodb/

4

나는 또한 같은 문제가 있었고 그것을 해결했다. 내가 시작했을 때 mongodbsudo그 프로세스가 이미 실행중인 나타났다 ( ). 그러나 셸을 통해 실행중인 인스턴스에 액세스 할 수 없습니다. 그것은 보였다 연결에 실패했습니다 .mongodb start/running, process xxxx

해결책

그래서 잠금 파일을 삭제했습니다.

sudo rm /var/lib/mongodb/mongod.lock

그런 다음 서비스를 다시 시작했습니다.

sudo service mongodb start

그런 다음 몽고는 내 컴퓨터에서 다시 일했습니다!


0

또한 내 컴퓨터에서 mongod.exe를 시작하는 것과 비슷한 문제가 발생했습니다 (Windows 설치). 는 있었다 .lock에서 파일 C:\data\db문제의 원인이되었다. 해당 파일을 삭제하면 문제가 해결되었습니다.


0

비슷한 문제가 있었는데 원인은 어리석은 일이었습니다. 디스크 공간이 부족합니다.

/var/log/mongodb/mongod.log에서 로그를 확인하면 다음 줄을 발견했습니다.

2015-04-13T10:56:37.132+0200 [initandlisten] ERROR: Insufficient free space for journal files

이것을 희망하면 누군가 30 분의 생명을 구할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.