sql >> Database >  >> NoSQL >> MongoDB

MongoDB-reparatieopdracht mislukt

Als mongod met reparatie het niet doet, dan loopt het tegen een niveau van corruptie aan dat het niet kan repareren of omzeilen in termen van het hebben van een geldige en correcte set databasebestanden om op te starten.

U kunt mongodump uitvoeren met reparatie , die agressiever is in termen van proberen de corruptie te omzeilen, en geen mongod start instantie (vereist daarom niet dat de bestanden correct zijn om door te gaan).

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

Houd er echter rekening mee dat vanwege de manier waarop het de corruptie probeert te omzeilen, u mogelijk meerdere exemplaren van een document krijgt. Met hoe mongorestore werkt is dit geen probleem, maar afhankelijk van de mate van corruptie kun je eindigen met dumpbestanden die veel groter zijn dan je zou verwachten. In een zeer extreem geval zag ik ooit 10x data geproduceerd, hoewel dat eerder uitzondering dan regel was.

Zodra je alles naar tevredenheid hebt gedumpt, start je mongod opschonen en opnieuw importeren om terug te keren naar een goede staat.




  1. Voorkom dubbele aanmelding met FOSUserBundle

  2. spring-data-mongodb geeft mongodb-authenticatie-uitzondering

  3. PostgreSQL en MongoDB mixen (als Django-backends)

  4. MongoDB gebruiken in Express-routers