Om mongod
med reparation inte gör det, då kör den in i en nivå av korruption som den inte kan fixa eller kringgå när det gäller att ha en giltig och korrekt uppsättning databasfiler att starta upp.
Du kan köra mongodump
med reparation
, som är mer aggressiv när det gäller att försöka komma runt korruptionen, och inte startar en mongod
instans (kräver därför inte att filerna är korrekta för att fortsätta).
mongodump --repair --dbpath /var/lib/mongodb/ <other options here>
Var dock medveten om att på grund av det sätt som den försöker ta sig runt korruptionen kan du sluta med flera kopior av ett dokument. Med hur mongorestore
fungerar detta är inte ett problem, men beroende på graden av korruption kan du sluta med dumpfiler som är mycket större än du förväntar dig. I ett mycket extremt fall såg jag en gång 10x data produceras, även om det var undantaget snarare än regeln.
När du har dumpat allt till din belåtenhet, starta mongod
rengöra och återimportera för att komma tillbaka till ett gott skick.