sql >> Base de Datos >  >> NoSQL >> MongoDB

La configuración de Mongo docker se rompió después de reiniciar (controlador unifi en raspberry pi)

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

  1. 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

  2. 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 es mongo

    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
    
  3. 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
    
  4. 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: