sql >> Database >  >> NoSQL >> MongoDB

Mongo docker-configuratie verbroken na opnieuw opstarten (unifi-controller op raspberry pi)

Je hebt een datafile corruptie van de onreine demontage van de schijf tijdens het afsluiten. Zelfs als u de database herstelt, kunt u nog steeds problemen ondervinden vanwege inconsistentie van de sleutels in de database. Hieronder volgt een procedure om deze problemen op de juiste manier aan te pakken

Herstel MongoDB van abrupte mislukking

  1. Als de databasebestanden op uw host staan, maak er dan een kopie van voordat u met deze procedure begint. Om ze te kopiëren, kunt u

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

    Als de databasebestanden zich nog steeds in de container bevinden, pak dan de buitenkant van de container en maak een kopie

  2. Start als volgt een reparatiecontainer over de bestanden:

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

    De naam van de afbeelding is afhankelijk van het platform en voor Raspberry PI3 is de naam andresvidal/rpi3-mongodb3 , voor arm64v8 of voor amd64 is de container mongo

    Zorg ervoor dat je dezelfde versie van MongoDB-image hebt als degene die is gebruikt om de gegevensbestanden te maken.

    Als de bestanden niet meer te repareren zijn, probeer dan:

    docker run -it -v <data folder>:/data/db mongo:<image-version> mongodump --repair --dbpath /data/db
    
  3. Zodra de bestanden zijn gerepareerd, moet u een container over de database starten en de bestanden exporteren met

    docker run -it -v <data folder>:/data/db mongo:<image-version> mongodump --dbpath /data/db
    
  4. Start een schone database voor uw project en gebruik mongorestore om de gegevens in de nieuwe database te importeren.

U kunt de volgende links raadplegen voor meer informatie:



  1. hoe mapreduce te gebruiken in het subdocument mangoest / mongodb?

  2. Ik probeer een bulk-upsert te doen met Mongoose. Wat is de schoonste manier om dit te doen?

  3. python-kolf hoe een dynamische parameter door te geven aan een decorateur

  4. Trim dubbele aanhalingstekens in json ontvangen van mongoDB