sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB reparationskommando misslyckades

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.




  1. Got Access nekas när jag försökte installera 64-bitars mongodb i Windows Server 2008

  2. Express node.js-kontrollern väntar inte på datamanipulering och returnerar gamla data

  3. Redis är entrådig, hur gör den då samtidig I/O?

  4. Spring Data MongoDB – Index, anteckningar och omvandlare