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 --repair
Billednavnet afhænger af platformen, og for Raspberry PI3 er navnet
andresvidal/rpi3-mongodb3
, for arm64v8 eller for amd64 er containerenmongo
Sø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
mongorestore
for at importere dataene i den nye database.
Du kan tjekke følgende links for mere information: