Подтвердить что ты не робот

Обслуживание Mongodb не начнется

Я не уверен, почему, и служба работала нормально только вчера, я внезапно не могу запустить MongoDB.

[[email protected] ~]# service mongod start
Starting mongod: Thu Aug 29 23:26:07.550 
Thu Aug 29 23:26:07.550 warning: 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability.
Thu Aug 29 23:26:07.550 
about to fork child process, waiting until server is ready for connections.
forked process: 5078
all output going to: /var/log/mongo/mongod.log
ERROR: child process failed, exited with error number 100
                                                           [FAILED]

Я просмотрел /var/log/mongo/mongod.log и следующее:

***** SERVER RESTARTED *****


Thu Aug 29 23:29:05.874 [initandlisten] MongoDB starting : pid=5118 port=27017 dbpath=/var/lib/mongo 32-bit host=purr.ipetfindr.com
Thu Aug 29 23:29:05.874 [initandlisten]
Thu Aug 29 23:29:05.874 [initandlisten] ** NOTE: This is a 32 bit MongoDB binary.
Thu Aug 29 23:29:05.874 [initandlisten] **   32 bit builds are limited to less than 2GB of data (or less with --journal).
Thu Aug 29 23:29:05.874 [initandlisten] **   Note that journaling defaults to off for 32 bit and is currently off.
Thu Aug 29 23:29:05.874 [initandlisten] **   See http://dochub.mongodb.org/core/32bit
Thu Aug 29 23:29:05.874 [initandlisten]
Thu Aug 29 23:29:05.874 [initandlisten] ** WARNING: You are running in OpenVZ. This is known to be broken!!!
Thu Aug 29 23:29:05.875 [initandlisten]
Thu Aug 29 23:29:05.875 [initandlisten] db version v2.4.6
Thu Aug 29 23:29:05.875 [initandlisten] git version: b9925db5eac369d77a3a5f5d98a145eaaacd9673
Thu Aug 29 23:29:05.875 [initandlisten] build info: Linux bs-linux32.10gen.cc 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_49
Thu Aug 29 23:29:05.875 [initandlisten] allocator: system
Thu Aug 29 23:29:05.875 [initandlisten] options: { config: "/etc/mongod.conf", dbpath: "/var/lib/mongo", fork: "true", logappend: "true", logpath: "/var/log/mongo/mongod.log", pidf$
**************
Unclean shutdown detected.
Please visit http://dochub.mongodb.org/core/repair for recovery instructions.
*************
Thu Aug 29 23:29:05.875 [initandlisten] exception in initAndListen: 12596 old lock file, terminating
Thu Aug 29 23:29:05.875 dbexit:
Thu Aug 29 23:29:05.875 [initandlisten] shutdown: going to close listening sockets...
Thu Aug 29 23:29:05.875 [initandlisten] shutdown: going to flush diaglog...
Thu Aug 29 23:29:05.875 [initandlisten] shutdown: going to close sockets...
Thu Aug 29 23:29:05.875 [initandlisten] shutdown: waiting for fs preallocator...
Thu Aug 29 23:29:05.875 [initandlisten] shutdown: closing all files...
Thu Aug 29 23:29:05.875 [initandlisten] closeAllFiles() finished
Thu Aug 29 23:29:05.875 dbexit: really exiting now

Как я могу исправить это, перезапустив сервер, и служба, похоже, не работает.

ОШИБКА после ремонта

Не уверен, что делать, это что-то сказать об ошибке, не может открыть файл /var/lib/mongo/ local.ns завершение

***** SERVER RESTARTED *****


Fri Aug 30 04:49:43.041 [initandlisten] MongoDB starting : pid=3300 port=27017 dbpath=/var/lib/mongo 32-bit host=purr.ipetfindr.com
Fri Aug 30 04:49:43.041 [initandlisten]
Fri Aug 30 04:49:43.041 [initandlisten] ** NOTE: This is a 32 bit MongoDB binary.
Fri Aug 30 04:49:43.041 [initandlisten] **   32 bit builds are limited to less than 2GB of data (or less with --journal).
Fri Aug 30 04:49:43.041 [initandlisten] **   Note that journaling defaults to off for 32 bit and is currently off.
Fri Aug 30 04:49:43.041 [initandlisten] **   See http://dochub.mongodb.org/core/32bit
Fri Aug 30 04:49:43.041 [initandlisten]
Fri Aug 30 04:49:43.041 [initandlisten] ** WARNING: You are running in OpenVZ. This is known to be broken!!!
Fri Aug 30 04:49:43.041 [initandlisten]
Fri Aug 30 04:49:43.041 [initandlisten] db version v2.4.6
Fri Aug 30 04:49:43.041 [initandlisten] git version: b9925db5eac369d77a3a5f5d98a145eaaacd9673
Fri Aug 30 04:49:43.041 [initandlisten] build info: Linux bs-linux32.10gen.cc 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_49
Fri Aug 30 04:49:43.041 [initandlisten] allocator: system
Fri Aug 30 04:49:43.041 [initandlisten] options: { config: "/etc/mongod.conf", dbpath: "/var/lib/mongo", fork: "true", logappend: "true", logpath: "/var/log/mongo/mongod.log", pidf$
Fri Aug 30 04:49:43.058 [initandlisten] couldn't open /var/lib/mongo/local.ns errno:13 Permission denied
Fri Aug 30 04:49:43.058 [initandlisten] error couldn't open file /var/lib/mongo/local.ns terminating
Fri Aug 30 04:49:43.059 dbexit:
Fri Aug 30 04:49:43.059 [initandlisten] shutdown: going to close listening sockets...
Fri Aug 30 04:49:43.059 [initandlisten] shutdown: going to flush diaglog...
Fri Aug 30 04:49:43.059 [initandlisten] shutdown: going to close sockets...
Fri Aug 30 04:49:43.059 [initandlisten] shutdown: waiting for fs preallocator...
Fri Aug 30 04:49:43.059 [initandlisten] shutdown: closing all files...
Fri Aug 30 04:49:43.059 [initandlisten] closeAllFiles() finished
Fri Aug 30 04:49:43.059 [initandlisten] shutdown: removing fs lock...
Fri Aug 30 04:49:43.059 dbexit: really exiting now
4b9b3361

Ответ 1

После запуска ремонта я смог запустить proccessor mongod, но с правами root, а это означало, что service mongod start не будет работать. Чтобы устранить эту проблему, мне нужно было убедиться, что все файлы внутри папки базы данных принадлежат и сгруппированы в mongod. Я сделал это следующим образом:

  • Проверьте права доступа к файлу внутри папки базы данных
    • обратите внимание, что вам нужно быть в папке dbpath, моя была /var/lib/mongo Я пошел в cd /var/lib
    • Я побежал ls -l mongo
  • Это показало мне, что базы данных принадлежат root, что неверно. Для этого исправлю следующее: chown -R mongod:mongod mongo. Это изменило владельца и группу каждого файла в папке на mongod. (Если вы используете пакет mongodb, chown -R mongodb:mongodb mongodb)

Я надеюсь, что это поможет кому-то еще в будущем.

Ответ 2

Я решил это, выполнив сначала C:\mongodb\bin\mongod.exe --repair. Затем, когда я снова запустил MongoDB с помощью C:\mongodb\bin\mongod.exe, он успешно запустился.

Ответ 3

Я решил это, удалив файл d:\test\mongodb\data\mongod.lock. Когда вы снова подключите mongo db, этот файл будет автоматически создан в той же папке. он работает для меня.

Ответ 4

Для меня причина для того, чтобы начать работу, оказалась файлом блокировки-сироты на /var/lib/mongo/mongo.lock. Когда я удалю этот файл, mongo начнет нормально. До этого у моей системы были грязные аварии. [Fedora 14]

Ответ 5

возможно, это связано с файлом mongod.lock, но если ошибка сохраняется даже после удаления, проверьте пути в файле mongo.conf; это может быть простая проблема, такая как сконфигурированный путь журнала или dbPath не существует (проверьте пути в mongo/conf/mongod.conf и проверьте, существуют ли они, иногда mongo не может создавать свои собственные структуры каталогов, поэтому вам, возможно, придется создать эти каталоги вручную перед запуском mongod).

Ответ 7

Я проверял разрешения, но все было хорошо (mongod: mongod). Поскольку я работаю над большим проектом и с аналогичной проблемой в нашей среде разработчиков, где у нас было script, потребляющее все доступное дисковое пространство, я мог видеть в сообщениях об ошибках, что для mongod требуется как минимум 3.7 ГБ свободного места на диске для запуска..

Я проверил свое собственное дисковое пространство только для того, чтобы увидеть, что осталось меньше 2 ГБ. После перемещения/стирания некоторых данных я могу снова запустить mongod снова.

Надеюсь, что это поможет; -)

Ответ 8

Я попытался удалить файл блокировки, но реальная причина, по которой это произошло со мной, заключалась в том, что я использовал ~/data/db в качестве каталога данных. Монго нуждается в абсолютном пути к базе данных. Как только я изменил его на /home//data/db, я был в бизнесе.

Ответ 9

Удалите файл .lock с пути C:\mongodb\data\и перезапустите службу mongodb.

Ответ 10

Я еще не могу упрекать/комментировать, но +1 для ручного удаления файла блокировки ха-ха.

Моя рабочая область C9 врезалась в меня и вызвала неожиданное завершение работы. API рекомендует: https://docs.mongodb.com/manual/tutorial/recover-data-following-unexpected-shutdown/

.. но удаление данных /mongo.lock сработало для меня:).

Кроме того, на всякий случай, когда вы получаете отказ в подключении (что случилось со мной), запуск команды восстановления перед удалением файла блокировки может решить вашу проблему (это было мое).

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

Ответ 11

Когда я запустил mongod.exe из Windows Terminal, я получил сообщение Unrecognized option: mp. Был пустой mp: в конце mongod.cfg. Удаление этого решило проблему для меня.