Имате повреден файл с данни от нечистото демонтиране на диска по време на изключването. Дори ако възстановите базата данни, пак можете да се сблъскате с проблеми поради несъответствие на ключовете в базата данни. Следва процедура за правилно справяне с тези проблеми
Възстановяване на 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