Tiene un archivo de datos dañado por el desmontaje sucio del disco durante el apagado. Incluso si restaura la base de datos, aún puede enfrentar problemas debido a la inconsistencia de las claves en la base de datos. El siguiente es un procedimiento para abordar adecuadamente estos problemas
Recuperación de MongoDB de un fallo abrupto
-
Si los archivos de la base de datos están en su host, haga una copia de ellos antes de iniciar este procedimiento. Para copiarlos, puede usar
docker cp <container_name>:<location of files in container> <location on host>
Si los archivos de la base de datos todavía están dentro del contenedor, obtenga el exterior del contenedor y haga una copia
-
Inicie un contenedor de reparación sobre los archivos de la siguiente manera:
docker run -it -v <data folder>:/data/db <image name>:<image-version> mongod --repair
El nombre de la imagen depende de la plataforma, y para Raspberry PI3 el nombre es
andresvidal/rpi3-mongodb3
, para arm64v8 o amd64 el contenedor esmongo
Asegúrese de tener la misma versión de la imagen de MongoDB que la utilizada para crear los archivos de datos.
Si los archivos no se pueden reparar, intente:
docker run -it -v <data folder>:/data/db mongo:<image-version> mongodump --repair --dbpath /data/db
-
Una vez que se reparan los archivos, debe iniciar un contenedor sobre la base de datos y exportar los archivos con
docker run -it -v <data folder>:/data/db mongo:<image-version> mongodump --dbpath /data/db
-
Inicie una base de datos limpia para su proyecto y use
mongorestore
para importar los datos en la nueva base de datos.
Puede consultar los siguientes enlaces para obtener más información:
- Exportando base de datos con reparación
- Restaurar después de eliminar archivos
- Volcar y restaurar MongoDB