sql >> Databáze >  >> NoSQL >> MongoDB

Příkaz opravy MongoDB se nezdařil

Pokud mongod s opravou to nedělá, pak se dostává do úrovně poškození, kterou nemůže opravit nebo obejít, pokud jde o to, že má platnou a správnou sadu databázových souborů ke spuštění.

Můžete spustit mongodump s opravou , který je agresivnější, pokud jde o snahu obejít korupci, a nezakládá mongod instance (proto nevyžaduje, aby byly soubory správné, aby bylo možné pokračovat).

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

Uvědomte si však, že kvůli způsobu, jakým se pokouší obejít poškození, můžete skončit s více kopiemi dokumentu. Jak mongorestore funguje to není problém, ale v závislosti na úrovni poškození můžete skončit se soubory výpisu mnohem většími, než byste očekávali. Ve velmi extrémním případě jsem jednou viděl vyprodukovat 10x dat, i když to byla spíše výjimka než pravidlo.

Jakmile vše vyhodíte ke své spokojenosti, spusťte mongod vyčistit a znovu importovat, abyste se dostali zpět do dobrého stavu.




  1. Aby se dotazy mongoose.js spouštěly synchronně

  2. Najděte maximální prvek uvnitř pole

  3. Mongo DB najít podle názvu pole s libovolnou hodnotou

  4. MongoDB Java – Publikování do vnořeného pole?