Почему mongod.service уничтожен моей системой?

#mongodb

#mongodb

Вопрос:

Я использую версию MongoDB 4.4 в ubuntu 20.4, используя 2 экземпляра mongo на одном сервере. Я столкнулся с этой проблемой:

 Sep 03 10:45:25 mlnode systemd[1]: Stopping MongoDB Database Server...
Sep 03 10:45:25 mlnode systemd[1]: mongod.service: Succeeded.
Sep 03 10:45:25 mlnode systemd[1]: Stopped MongoDB Database Server.
Sep 03 10:45:25 mlnode systemd[1]: Started MongoDB Database Server.
Sep 03 10:55:46 mlnode systemd[1]: Stopping MongoDB Database Server...
Sep 03 10:55:46 mlnode systemd[1]: mongod.service: Succeeded.
Sep 03 10:55:46 mlnode systemd[1]: Stopped MongoDB Database Server.
Sep 03 10:55:46 mlnode systemd[1]: Started MongoDB Database Server.
Sep 03 11:05:05 mlnode systemd[1]: Stopping MongoDB Database Server...
Sep 03 11:05:05 mlnode systemd[1]: mongod.service: Succeeded.
Sep 03 11:05:05 mlnode systemd[1]: Stopped MongoDB Database Server.
Sep 03 11:05:05 mlnode systemd[1]: Started MongoDB Database Server.
Sep 03 11:13:20 mlnode systemd[1]: /lib/systemd/system/mongod.service:11: PIDFile= references a path below legacy directory /var/run/, updating /var/run/mongodb/mongod.pid → /run/mongodb/mongod.pid; please update the unit file accordingly.
Sep 03 11:25:47 mlnode systemd[1]: /lib/systemd/system/mongod.service:11: PIDFile= references a path below legacy directory /var/run/, updating /var/run/mongodb/mongod.pid → /run/mongodb/mongod.pid; please update the unit file accordingly.
Sep 03 11:56:47 mlnode systemd[1]: mongod.service: Main process exited, code=killed, status=6/ABRT
Sep 03 11:56:47 mlnode systemd[1]: mongod.service: Failed with result 'signal'
  

Интересно, почему система убивает mongod.service , я понятия не имею. Затем я проверил свои журналы mongo:

 {"t":{"$date":"2020-09-03T11:56:46.379 05:30"},"s":"F",  "c":"-",        "id":23083,   "ctx":"conn10155","msg":"Invariant failure","attr":{"expr":"ret","error":"UnknownError: -31803: WT_NOTFOUND: item not found","file":"src/mongo/db/storage/wiredtiger/wiredtiger_record_store.cpp","line":1598}}
{"t":{"$date":"2020-09-03T11:56:46.379 05:30"},"s":"F",  "c":"-",        "id":23084,   "ctx":"conn10155","msg":"nn***aborting after invariant() failurenn"}
{"t":{"$date":"2020-09-03T11:56:46.379 05:30"},"s":"F",  "c":"CONTROL",  "id":4757800, "ctx":"conn10155","msg":"Writing fatal message","attr":{"message":"Got signal: 6 (Aborted).n"}}
  

Комментарии:

1. Вы проверяли оперативную память?

2. да! на моем сервере 30 гигабайт оперативной памяти, и когда произошел сбой mongo, в то время было доступно 14 гигабайт оперативной памяти

3. Ваш каталог данных поврежден.

4. вы имеете в виду /var/lib/mongodb это?

5. Я тоже время от времени получаю это. Вы уже поняли это?

Ответ №1:

Во-первых, остановите mongodb, если вы перезапустили:

 sudo systemctl stop mongod
  

Затем я обнаружил повреждение базы данных:

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

Далее выполните команды:

 chown -R mongodb:mongodb /var/lib/mongodb
chown mongodb:mongodb /tmp/mongodb-27017.sock
  

Наконец

 sudo systemctl start mongod
  

От:https://sondnpt00343.medium.com/how-to-fix-mongod-service-32dbbe51a4ee

Ответ №2:

Я выяснил, что мой Linux ulimits не был настроен на рекомендуемые значения экземпляра mongod. Одним из ограничений (заблокированных в памяти) было 65536, а в /lib/systemd/system/mongod.service LimitMEMLOCK было infinity . Итак, я изменил это на 65536, перезапустил службу, и она снова заработала.

У меня это сработало!

Комментарии:

1. У меня была такая же проблема. Я последовал вашему ответу, но он не работает.

2. Спасибо, у меня была похожая проблема. Это решило проблему.

Ответ №3:

Во-первых, я обнаружил повреждение базы данных.

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

Затем я перезапустил службу, но столкнулся с другой проблемой (код выхода).

Затем я запустил следующие команды на терминале :

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

chown mongodb:mongodb /tmp/mongodb-27017.sock
  

Наконец, я перезапустил службу mongodb.

 sudo systemctl restart mongod
  

И тогда это сработало для меня очень хорошо.