MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

MongoDB-Reparaturbefehl fehlgeschlagen

Wenn mongod with repair dies nicht tut, dann gerät es in eine Beschädigungsebene, die es nicht beheben oder umgehen kann, um einen gültigen und korrekten Satz von Datenbankdateien zum Starten zu haben.

Sie können mongodump ausführen mit Reparatur , das aggressiver ist, um die Korruption zu umgehen, und kein mongod startet Instanz (daher müssen die Dateien nicht korrekt sein, um fortzufahren).

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

Beachten Sie jedoch, dass Sie aufgrund der Art und Weise, wie versucht wird, die Beschädigung zu umgehen, möglicherweise mehrere Kopien eines Dokuments erhalten. Mit wie mongorestore funktioniert, ist dies kein Problem, aber je nach Grad der Beschädigung können Sie mit Dump-Dateien enden, die viel größer sind, als Sie erwarten würden. In einem sehr extremen Fall habe ich einmal gesehen, dass 10x Daten produziert wurden, obwohl das eher die Ausnahme als die Regel war.

Wenn Sie alles zu Ihrer Zufriedenheit gelöscht haben, starten Sie mongod reinigen und erneut importieren, um wieder in einen guten Zustand zu gelangen.