MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Configuration du docker Mongo cassée après le redémarrage (contrôleur unifi sur raspberry pi)

Vous avez une corruption du fichier de données à cause du démontage impur du disque lors de l'arrêt. Même si vous restaurez la base de données, vous pouvez toujours rencontrer des problèmes dus à l'incohérence des clés dans la base de données. Voici une procédure pour résoudre correctement ces problèmes

Récupération de MongoDB après une panne brutale

  1. Si les fichiers de la base de données se trouvent sur votre hôte, faites-en une copie avant de commencer cette procédure. Pour les copier, vous pouvez utiliser

    docker cp <container_name>:<location of files in container> <location on host>
    

    Si les fichiers de la base de données sont toujours à l'intérieur du conteneur, récupérez-les à l'extérieur du conteneur et faites-en une copie

  2. Démarrez un conteneur de réparation sur les fichiers comme suit :

    docker run -it -v <data folder>:/data/db <image name>:<image-version> mongod --repair
    

    Le nom de l'image dépend de la plateforme, et pour Raspberry PI3 le nom est andresvidal/rpi3-mongodb3 , pour arm64v8 ou pour amd64 le conteneur est mongo

    Assurez-vous d'avoir la même version de l'image MongoDB que celle utilisée pour créer les fichiers de données.

    Si les fichiers sont irréparables, essayez :

    docker run -it -v <data folder>:/data/db mongo:<image-version> mongodump --repair --dbpath /data/db
    
  3. Une fois les fichiers réparés, vous devez démarrer un conteneur sur la base de données et exporter les fichiers avec

    docker run -it -v <data folder>:/data/db mongo:<image-version> mongodump --dbpath /data/db
    
  4. Démarrez une base de données propre pour votre projet et utilisez mongorestore pour importer les données dans la nouvelle base de données.

Vous pouvez consulter les liens suivants pour plus d'informations :