Имате повреден файл с данни от нечистото демонтиране на диска по време на изключването. Дори ако възстановите базата данни, пак можете да се сблъскате с проблеми поради несъответствие на ключовете в базата данни. Следва процедура за правилно справяне с тези проблеми
Възстановяване на MongoDB от внезапна повреда
-
Ако файловете на базата данни са на вашия хост, направете копие от тях, преди да започнете тази процедура. За да ги копирате, можете да използвате
docker cp <container_name>:<location of files in container> <location on host>Ако файловете на базата данни все още са вътре в контейнера, вземете външната страна на контейнера и направете копие
-
Стартирайте контейнер за поправка върху файловете, както следва:
docker run -it -v <data folder>:/data/db <image name>:<image-version> mongod --repairИмето на изображението зависи от платформата и за Raspberry PI3 името е
andresvidal/rpi3-mongodb3, за arm64v8 или за amd64 контейнерът еmongoУверете се, че имате същата версия на изображението на MongoDB като използваното за създаване на файловете с данни.
Ако файловете са непоправими, опитайте:
docker run -it -v <data folder>:/data/db mongo:<image-version> mongodump --repair --dbpath /data/db -
След като файловете бъдат поправени, трябва да стартирате контейнер над базата данни и да експортирате файловете с
docker run -it -v <data folder>:/data/db mongo:<image-version> mongodump --dbpath /data/db -
Стартирайте чиста база данни за вашия проект и използвайте
mongorestoreза импортиране на данните в новата база данни.
Можете да проверите следните връзки за повече информация:
- Експортиране на база данни с поправка
- Възстановяване след изтриване на файл
- Изхвърляне и възстановяване на MongoDB