MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

La commande de réparation MongoDB a échoué

Si mongod avec la réparation ne le fait pas, alors il se heurte à un niveau de corruption qu'il ne peut pas réparer ou contourner en termes d'avoir un ensemble valide et correct de fichiers de base de données à démarrer.

Vous pouvez exécuter mongodump avec réparation , qui est plus agressif pour essayer de contourner la corruption, et ne démarre pas un mongod instance (ne nécessite donc pas que les fichiers soient corrects pour continuer).

mongodump --repair --dbpath /var/lib/mongodb/ <other options here>

Sachez cependant qu'en raison de la manière dont il tente de contourner la corruption, vous pouvez vous retrouver avec plusieurs copies d'un document. Avec comment mongorestore fonctionne, ce n'est pas un problème, mais selon le niveau de corruption, vous pouvez vous retrouver avec des fichiers de vidage beaucoup plus volumineux que prévu. Dans un cas très extrême, j'ai vu une fois des données 10x produites, bien que ce soit l'exception plutôt que la règle.

Une fois que vous avez tout vidé à votre satisfaction, lancez mongod nettoyer et réimporter pour revenir à un bon état.