webentwicklung-frage-antwort-db.com.de

Warum wird der Fehler "mongod" beendet, aber "subsys" ist gesperrt und der freie Speicherplatz für Journaldateien unter Linux reicht nicht aus?

Ich habe mongo-10gen mongo-10gen-server auf einem Linux-CentOS-Server installiert.

Ich bin den Schritten von Link gefolgt.

Ich habe /etc/mongod.conf als - konfiguriert

logpath=/var/log/mongo/mongod.log
port=27017
dbpath=/var/lib/mongo

Ich habe Port 27017 für Mongo in Iptables gesetzt. Um Mongo zu starten, habe ich Befehle benutzt -

service mongod start and
mongo

Es hat gut angefangen, aber nach ein paar Tagen bekomme ich den Fehler -

Tue Jan 29 08:41:54 [initandlisten] ERROR: Insufficient free space for journal files
Tue Jan 29 08:41:54 [initandlisten] Please make at least 3379MB available in /var/lib/mongo/journal or use --smallfiles
Tue Jan 29 08:41:54 [initandlisten]
Tue Jan 29 08:41:54 [initandlisten] exception in initAndListen: 15926 Insufficient free space for journals, terminating
Tue Jan 29 08:41:54 dbexit:
Tue Jan 29 08:41:54 [initandlisten] shutdown: going to close listening sockets...
Tue Jan 29 08:41:54 [initandlisten] shutdown: going to flush diaglog...
Tue Jan 29 08:41:54 [initandlisten] shutdown: going to close sockets...
Tue Jan 29 08:41:54 [initandlisten] shutdown: waiting for fs preallocator...
Tue Jan 29 08:41:54 [initandlisten] shutdown: lock for final commit...
Tue Jan 29 08:41:54 [initandlisten] shutdown: final commit...
Tue Jan 29 08:41:54 [initandlisten] shutdown: closing all files...
Tue Jan 29 08:41:54 [initandlisten] closeAllFiles() finished
Tue Jan 29 08:41:54 [initandlisten] journalCleanup...
Tue Jan 29 08:41:54 [initandlisten] removeJournalFiles
Tue Jan 29 08:41:54 [initandlisten] shutdown: removing fs lock...
Tue Jan 29 08:41:54 dbexit: really exiting now

Wenn ich den Befehl ausführen -

service mongod status

Es gibt Fehler -

mongod dead but subsys locked

Bitte helfen Sie mir, das Problem vonmongod dead but subsys lockedundnicht genügend freier Speicherplatz für Journale, Terminierungzu lösen.

66
Deepu

Sie können Folgendes zur Konfigurationsdatei hinzufügen, wenn Sie mongod --config mongod.conf ausführen.

Für MongoDB 3.x (neueste Version)

storage:
   mmapv1:
      smallFiles: true

Für Version 2.6+

storage:
   smallFiles: true

Für Version 2.4 und weniger

smallfiles = true

Dann führen Sie einfach mongod aus, um Ihre Konfigurationsdatei zu akzeptieren (hier wird davon ausgegangen, dass der Ort der Konfiguration /etc/mongodb.conf ist)

mongod -f /etc/mongodb.conf

Dokumentation für smallfiles Parameter:

Set to true to modify MongoDB to use a smaller default data file size. 
Specifically, smallfiles reduces the initial size for data files and
limits them to 512 megabytes. The smallfiles setting also reduces the
size of each journal files from 1 gigabyte to 128 megabytes.
85

Starten Sie die Variable mongod mit folgendem Befehl

mongod --dbpath /data/db --smallfiles
50
Rajkumar Singh

Ich folgte der offiziellen Anleitung unter http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/

Nach dem Gebrauch

$Sudo service mongod start

Ich überprüfte, ob MongoDB erfolgreich gestartet wurde, indem ich dieses Protokoll überprüfte:

/var/log/mongodb/mongod.log

Dies ist das Problem, das ich gefunden habe:

2014-11-11T12:54:05.808-0500 [initandlisten] ERROR: Insufficient free space for journal files
2014-11-11T12:54:05.808-0500 [initandlisten] Please make at least 3379MB available in /var/lib/mongodb/journal or use --smallfiles
2014-11-11T12:54:05.808-0500 [initandlisten]
2014-11-11T12:54:05.808-0500 [initandlisten] exception in initAndListen: 15926 Insufficient free space for journals, terminating
2014-11-11T12:54:05.808-0500 [initandlisten] dbexit:
2014-11-11T12:54:05.808-0500 [initandlisten] shutdown: going to close listening sockets...
2014-11-11T12:54:05.808-0500 [initandlisten] shutdown: going to flush diaglog...
2014-11-11T12:54:05.808-0500 [initandlisten] shutdown: going to close sockets...
2014-11-11T12:54:05.808-0500 [initandlisten] shutdown: waiting for fs preallocator...
2014-11-11T12:54:05.808-0500 [initandlisten] shutdown: lock for final commit...
2014-11-11T12:54:05.808-0500 [initandlisten] shutdown: final commit...
2014-11-11T12:54:05.808-0500 [initandlisten] shutdown: closing all files...
2014-11-11T12:54:05.808-0500 [initandlisten] closeAllFiles() finished
2014-11-11T12:54:05.808-0500 [initandlisten] journalCleanup...
2014-11-11T12:54:05.808-0500 [initandlisten] removeJournalFiles
2014-11-11T12:54:05.814-0500 [initandlisten] shutdown: removing fs lock...
2014-11-11T12:54:05.814-0500 [initandlisten] dbexit: really exiting now

Lösung:

Am Ende der Datei /etc/mongod.conf habe ich folgende Zeile hinzugefügt:

smallfiles = true

Danach habe ich den Mongod-Dienst neu gestartet:

$Sudo service mongod restart

Als ich dann das Protokoll überprüfte, wurde mir klar, dass alles perfekt war und das Problem behoben wurde:

2014-11-11T22:32:20.544-0500 ***** SERVER RESTARTED *****
2014-11-11T22:32:20.552-0500 [initandlisten] MongoDB starting : pid=5200 port=27017 dbpath=/var/lib/mongodb 64-bit Host=jaimemontoya-VirtualBox
2014-11-11T22:32:20.552-0500 [initandlisten] db version v2.6.5
2014-11-11T22:32:20.552-0500 [initandlisten] git version: e99d4fcb4279c0279796f237aa92fe3b64560bf6
2014-11-11T22:32:20.552-0500 [initandlisten] build info: Linux build8.nj1.10gen.cc 2.6.32-431.3.1.el6.x86_64 #1 SMP Fri Jan 3 21:39:27 UTC 2014 x86_64 BOOST_LIB_VERSION=1_49
2014-11-11T22:32:20.552-0500 [initandlisten] allocator: tcmalloc
2014-11-11T22:32:20.552-0500 [initandlisten] options: { config: "/etc/mongod.conf", net: { bindIp: "127.0.0.1" }, storage: { dbPath: "/var/lib/mongodb", smallFiles: true }, systemLog: { destination: "file", logAppend: true, path: "/var/log/mongodb/mongod.log" } }
2014-11-11T22:32:20.564-0500 [initandlisten] journal dir=/var/lib/mongodb/journal
2014-11-11T22:32:20.564-0500 [initandlisten] recover : no journal files present, no recovery needed
2014-11-11T22:32:20.738-0500 [initandlisten] waiting for connections on port 27017
2014-11-11T22:33:20.748-0500 [clientcursormon] mem (MB) res:36 virt:245
2014-11-11T22:33:20.748-0500 [clientcursormon]  mapped (incl journal view):64
2014-11-11T22:33:20.748-0500 [clientcursormon]  connections:0
11
Jaime Montoya

Für alle, die dieses Problem haben, obwohl genügend Speicherplatz für die Erstellung der Journaldatei vorhanden ist.  

Mein Problem: Ich hatte mehr als genug Platz, um die Journaldatei zu erstellen. Mongo gab mir einen Verbindungsfehler. Ich habe den Kill-Befehl verwendet, um den Mongod-Prozess zu beenden, was mir wiederum das Subsys-Problem brachte. Folgendes hat für mich funktioniert:

Gehe zu /var/lock/subsys und lösche die Datei mongod

jetzt service mongod stopund dann service mongod start

Mongo Shell jetzt gestartet und alles scheint gut zu laufen.

1
user3270763

Nur eine Notiz, die mir geholfen hat. Zwar gab es keine technischen Probleme im Zusammenhang mit dem Mongo. Es war nur der Platz des Systems war unzureichend. Das Löschen des Cache des Systems hat für mich funktioniert und der Mongo lief wieder reibungslos.

yum clean all
0
Kunal Panchal

zuerst

cd /usr/local/src/mongo/bin/<br>

dann

./mongod --dbpath /usr/local/src/mongo/data/db/ --smallfiles
0
user3831127

Problem Hintergrund: Ich habe den DB-Server von t2.micro auf die größere Instanz aktualisiert, ohne die Datenbankdienste anzuhalten . die im Gegenzug diese Sperrdatei erstellt und diesen Fehler ausgelöst hat, mongod dead but subsys locked Danach konnte ich mongo Shell nicht mehr verwenden.

Wenn Sie genug Speicherplatz haben . Folgen Sie dann diesen Schritten:

1. Sudo mongod

Failed to unlink socket file /tmp/mongodb-27017.sock Operation not permitted)
  1. Wechseln Sie in das Verzeichnis /tmp/

  2. Entfernen Sie die Datei mongodb-27017.sock

  3. Starte mongod neu mit Sudo service mongod restart

0
adeel