Du har en datafil korruption fra den urene afmontering af disken under nedlukningen. Selvom du gendanner databasen, kan du stadig få problemer på grund af inkonsistens mellem nøglerne i databasen. Følgende er en procedure til at løse disse problemer korrekt
Gendan MongoDB fra pludselig fejl
-
Hvis databasefilerne er på din vært, skal du lave en kopi af dem, før du starter denne procedure. For at kopiere dem kan du bruge
docker cp <container_name>:<location of files in container> <location on host>Hvis databasefilerne stadig er inde i containeren, skal du hente den udvendige container og lave en kopi
-
Start en reparationsbeholder over filerne som følger:
docker run -it -v <data folder>:/data/db <image name>:<image-version> mongod --repairBillednavnet afhænger af platformen, og for Raspberry PI3 er navnet
andresvidal/rpi3-mongodb3, for arm64v8 eller for amd64 er containerenmongoSørg for, at du har den samme version af MongoDB-billedet som den, der blev brugt til at oprette datafilerne.
Hvis filerne ikke kan repareres, prøv:
docker run -it -v <data folder>:/data/db mongo:<image-version> mongodump --repair --dbpath /data/db -
Når filerne er repareret, skal du starte en container over databasen og eksportere filerne med
docker run -it -v <data folder>:/data/db mongo:<image-version> mongodump --dbpath /data/db -
Start en ren database til dit projekt og brug
mongorestorefor at importere dataene i den nye database.
Du kan tjekke følgende links for mere information: