Du har en datafil korruption från den orena demonteringen av disken under avstängningen. Även om du återställer databasen kan du fortfarande stöta på problem på grund av inkonsekvens av nycklarna i databasen. Följande är en procedur för att korrekt lösa dessa problem
Återställ MongoDB från plötsligt misslyckande
-
Om databasfilerna finns på din värd, gör en kopia av dem innan du påbörjar den här proceduren. För att kopiera dem kan du använda
docker cp <container_name>:<location of files in container> <location on host>
Om databasfilerna fortfarande finns i behållaren, hämta utsidan av behållaren och gör en kopia
-
Starta en reparationsbehållare över filerna enligt följande:
docker run -it -v <data folder>:/data/db <image name>:<image-version> mongod --repair
Bildens namn beror på plattformen och för Raspberry PI3 är namnet
andresvidal/rpi3-mongodb3
, för arm64v8 eller för amd64 är behållarenmongo
Se till att du har samma version av MongoDB-avbildningen som den som användes för att skapa datafilerna.
Om filerna inte kan repareras, försök:
docker run -it -v <data folder>:/data/db mongo:<image-version> mongodump --repair --dbpath /data/db
-
När filerna har reparerats måste du starta en behållare över databasen och exportera filerna med
docker run -it -v <data folder>:/data/db mongo:<image-version> mongodump --dbpath /data/db
-
Starta en ren databas för ditt projekt och använd
mongorestore
för att importera data till den nya databasen.
Du kan kontrollera följande länkar för mer information: