MongoDB 3.0.2 startet nach dem Upgrade auf Ubuntu 16.04 nicht

MongoDB 3.0.2 startet nach dem Upgrade auf Ubuntu 16.04 nicht

Ich habe vor Kurzem ein Upgrade auf Ubuntu 16.04 durchgeführt, danach startet MongoDB 3.0.2 nicht.

$ sudo service mongod start

was zu einem Fehler führen würde:

Failed to start mongod.service: Unit mongod.service failed to load: No such file or directory.

Ich habe diese Fehlerprotokolle beim Ausführen vonsystemctl status mongod.service

● mongod.service
   Loaded: loaded (/etc/init.d/mongod; bad; vendor preset: enabled)
   Active: failed (Result: exit-code) since Fri 2016-04-29 10:48:02 IST; 10s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 8624 ExecStart=/etc/init.d/mongod start (code=exited, status=1/FAILURE)

mongod[8223]: Rather than invoking init scripts through /etc/init.d, use the service(8)
mongod[8223]: utility, e.g. service mongod start
mongod[8223]: initctl: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: Connection
mongod[8223]: Since the script you are attempting to invoke has been converted to an
mongod[8223]: Upstart job, you may also use the start(8) utility, e.g. start mongod
mongod[8223]: start: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: Connection r
systemd[1]: mongod.service: Control process exited, code=exited status=1
systemd[1]: Failed to start mongod.service.
systemd[1]: mongod.service: Unit entered failed state.
systemd[1]: mongod.service: Failed with result 'exit-code'.

Ich habe die unten genannten Lösungen ausprobiert, aber keine hat funktioniert:

  1. Eine Datei /lib/systemd/system/mongodb.service mit folgendem Inhalt wurde erstellt:

[Unit] Beschreibung=Leistungsstarke, schemafreie dokumentenorientierte Datenbank Nachher=network.target

[Dienst] Benutzer=mongodb ExecStart=/usr/bin/mongod --quiet --config /etc/mongodb.conf

[Installieren] WantedBy=multi-user.target

  1. Habe versucht, upstartv zu installieren sudo apt-get install upstart-sysv

Antwort1

  • Entfernen Sie Upstart-Sysv, Sie können Mongo über eine Systemd-Einheit starten.
  • Überprüfen Sie Ihre mongod.config-Konfigurationsdatei. Sie sollte nichtprocessManagement.fork:true
  • Überprüfen Sie Ihren Mongo-DB-Pfad und die Protokollordner. mongodbDer Benutzer (in der Servicedatei), mit dem Sie Ihr Skript ausführen, sollte über die Berechtigung zum Zugriff auf diese Dateien verfügen.
  • Wenn weiterhin Probleme auftreten, überprüfen Sie Ihre Datei mongod.log (Sie haben sie in der Konfigurationsdatei angegeben). Dort finden Sie detailliertere Fehler.

Antwort2

Ok, hab ich gemacht:

    • Sicherung:

    # cp -vr /var/lib/mongodb /root/

    # cp /etc/mongod.conf /root

    • Das alte Init gelöscht:

    # rm -fr /etc/init.d/mongod

3 - Die Datei wurde erstellt/etc/systemd/system/multi-user.target.wants/mongod.service, wie:

# nano /etc/systemd/system/multi-user.target.wants/mongod.service

4 – Ich habe dieses Skript von einem anderen System kopiert, das bereits Xenial war:

[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
Documentation=https://docs.mongodb.org/manual

[Service]
User=mongodb
Group=mongodb
ExecStart=/usr/bin/env bash -c "numactl --interleave=all /usr/bin/mongod --quiet --config /etc/mongod.conf"
# file size
LimitFSIZE=infinity
# cpu time
LimitCPU=infinity
# virtual memory size
LimitAS=infinity
# open files
LimitNOFILE=64000
# processes/threads
LimitNPROC=64000
# total threads (user+kernel)
TasksMax=infinity
TasksAccounting=false

# Recommended limits for for mongod as specified in
# http://docs.mongodb.org/manual/reference/ulimit/#recommended-settings

[Install]
WantedBy=multi-user.target

5 - Der Startversuch schlägt immer noch fehl (sehen Sie sich den Startbefehl an, er verwendetnumactl, Also:

# apt-get install -y numactl

6 - Dienste aufladen:

# systemctl daemon-reload

7 - Entfernen Sie alte Sperren (beten Sie, dass Ihre Datenbank gesund ist):

# rm -fr /var/lib/mongodb/mongod.lock

8 - Neustart, Status prüfen und glücklich sein:

# systemctl restart mongod.service
# systemctl status mongod.service
● mongod.service - High-performance, schema-free document-oriented database
   Loaded: loaded (/etc/systemd/system/multi-user.target.wants/mongod.service; bad; vendor preset: enabled)
   Active: active (running) since Qui 2018-05-17 21:15:16 -03; 2s ago
     Docs: https://docs.mongodb.org/manual
 Main PID: 6301 (mongod)
   CGroup: /system.slice/mongod.service
           └─6301 /usr/bin/mongod --quiet --config /etc/mongod.conf

Mai 17 21:15:16 xx-server systemd[1]: Started High-performance, schema-free document-oriented database.

```

Ich habe das heute gerade erlebt, also gibt es vielleicht noch einige vertrauenswürdige Systeme, die Xenial mit MongoDB in diesem LTS-Bereich sein können. Entschuldigen Sie die Auszeichnung, ich arbeite noch daran, das zu verbessern. Alles Gute für Sie alle!

verwandte Informationen