web-dev-qa-db-fra.com

Pourquoi obtenir l'erreur mongod dead mais subsys verrouillés et un espace libre insuffisant pour les fichiers journaux sous Linux?

J'ai installé mongo-10gen mongo-10gen-server sur un serveur Linux CentOS.

J'ai suivi les étapes de Link .

J'ai configuré /etc/mongod.conf comme - 

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

J'ai défini le port 27017 pour mongo dans iptables . Pour démarrer mongo, j'ai utilisé des commandes - 

service mongod start and
mongo

Cela commence bien, mais après quelques jours, je reçois l’erreur - 

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

Quand j'exécute la commande - 

service mongod status

Cela donne une erreur - 

mongod dead but subsys locked

S'il vous plaît, aidez-moi à résoudre le problème de mongod mort, mais subsys verrouillés et Espace libre insuffisant pour les journaux, qui se termine

66
Deepu

Vous pouvez ajouter ce qui suit au fichier de configuration fourni lors de l'exécution de mongod --config mongod.conf

Pour MongoDB 3.x (dernière version)

storage:
   mmapv1:
      smallFiles: true

Pour la version 2.6+

storage:
   smallFiles: true

Pour la version 2.4 et moins

smallfiles = true

Ensuite, exécutez simplement mongod pour accepter votre fichier de configuration (ici, on suppose que l’emplacement de la configuration est /etc/mongodb.conf):

mongod -f /etc/mongodb.conf

Documentation pour le paramètre 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.
85
Andrei Karpushonak

Démarrer l'instance mongod à l'aide de la commande suivante

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

Je suivais le guide officiel à http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/

Après avoir utilisé

$Sudo service mongod start

Je suis allé vérifier si MongoDB avait bien démarré en consultant ce journal:

/var/log/mongodb/mongod.log

C'est le problème que j'ai trouvé:

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

Solution:

À la fin du fichier /etc/mongod.conf, j'ai ajouté cette ligne:

smallfiles = true

Après cela, j'ai redémarré le service Mongod:

$Sudo service mongod restart

Puis, quand je suis allé consulter le journal, j'ai réalisé que tout était parfait et que le problème a été résolu:

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

Pour tous ceux qui ont ce problème alors qu'ils disposent de suffisamment d'espace pour créer le fichier journal.  

Mon problème: j'avais suffisamment d'espace pour créer le fichier journal. Mongo m'a donné un problème de connexion a échoué. J'ai utilisé la commande kill pour tuer le processus mongod qui m'a donné le problème des sous-systèmes Voici ce qui a fonctionné pour moi:

Aller à /var/lock/subsys et supprimer le fichier mongod

maintenant service mongod stopet ensuite service mongod start

J'ai commencé mongo Shell maintenant et tout semble bien fonctionner.

1
user3270763

Juste un mot qui m'a aidé. Bien qu'il n'y ait pas eu de problème technique lié au mongo. C'était juste que l'espace du système était insuffisant. Effacer le cache du système a fonctionné pour moi et mongo a été de nouveau en marche.

yum clean all
0
Kunal Panchal

premier

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

puis

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

Contexte du problème: J'ai mis à niveau le serveur de base de données de t2.micro vers l'instance plus grande sans arrêt des services de base de données. qui en retour a créé ce fichier de verrouillage et jeté cette erreur, mongod mort mais subsys verrouillé Après cela, j’ai été incapable d’utiliser mongo Shell.

Si vous en avez assez espace disque. Ensuite, suivez ces étapes,

1 .Sudo mongod (si vous trouvez ci-dessous raison manquée)

Failed to unlink socket file /tmp/mongodb-27017.sock Operation not permitted)
  1. Allez dans le répertoire / tmp /

  2. Supprimer le fichier mongodb-27017.sock

  3. Redémarrez Mongod avec Sudo Service Mongodod restart

0
adeel