Ich habe mongo-10gen mongo-10gen-server auf Linux CentOS Server installiert .
Ich folgte den Schritten von Link .
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 gesetzt iptables . Um Mongo zu starten, habe ich Befehle verwendet -
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ühre -
service mongod status
Es gibt Fehler -
mongod dead but subsys locked
Bitte helfen Sie mir, das Problem zu lösen, dass mongod tot, aber subsys gesperrt ist und nicht genügend freier Speicherplatz für Zeitschriften vorhanden ist
/var/lib/mongo/journal
Datei mit 3,3 GB zu erstellen , damit sie nicht gestartet werden kann.Antworten:
Sie können der Konfigurationsdatei, die beim Ausführen bereitgestellt wird, Folgendes hinzufügen
mongod --config mongod.conf
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
Führen Sie dann einfach mongod aus, um Ihre Konfigurationsdatei zu akzeptieren (hier wird davon ausgegangen, dass der Speicherort der Konfiguration /etc/mongodb.conf ist ):
Dokumentation für den Parameter smallfiles :
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.
quelle
samllfiles = true
smallfiles=true
, damit es funktioniert.Starten Sie die
mongod
Instanz mit dem folgenden Befehlquelle
Ich folgte dem offiziellen Leitfaden unter http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/
Nach dem Gebrauch
Ich habe überprüft, ob MongoDB erfolgreich gestartet wurde, indem ich dieses Protokoll überprüft habe:
/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:
Als ich dann das Protokoll überprüfte, stellte ich fest, dass alles perfekt war und das Problem behoben war:
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
quelle
/etc/mongodb.conf
anstelle von/etc/mongod.conf
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 ein Verbindungsproblem. Ich habe den Befehl kill verwendet, um den Mongod-Prozess zu beenden, der mir wiederum das Subsys-Problem bescherte. Folgendes hat bei mir funktioniert:
Gehen Sie zu
/var/lock/subsys
und löschen Sie die Dateimongod
ab
service mongod stop
und zuservice mongod start
Mongo Shell jetzt gestartet und alles scheint gut zu laufen.
quelle
zuerst
dann
quelle
Nur eine Notiz, die mir geholfen hat. Es gab jedoch keine technischen Probleme im Zusammenhang mit Mongo. Es war nur der Platz des Systems nicht ausreichend. Das Löschen des Systemcaches hat für mich geklappt und Mongo lief wieder reibungslos.
quelle
Problem Hintergrund: Ich habe den DB-Server von t2.micro auf die größere Instanz aktualisiert, ohne die Datenbankdienste zu stoppen . was im Gegenzug diese Sperrdatei erstellt und diesen Fehler ausgelöst hat , mongod tot, aber subsys gesperrt Danach konnte ich die mongo-Shell nicht mehr verwenden.
Wenn Sie genügend Speicherplatz haben . Folgen Sie dann diesen Schritten:
1. sudo mongod (wenn Sie unten einen fehlgeschlagenen Grund finden)
Failed to unlink socket file /tmp/mongodb-27017.sock Operation not permitted)
Gehen Sie zum Verzeichnis / tmp /
Entfernen Sie die Datei mongodb-27017.sock
Starten Sie mongod mit sudo service mongod restart neu
quelle