#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
И тогда это сработало для меня очень хорошо.