MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Configurazione della finestra mobile Mongo interrotta dopo il riavvio (controller unifi su raspberry pi)

Hai un file di dati danneggiato dallo smontaggio non pulito del disco durante l'arresto. Anche se si ripristina il database, si possono comunque riscontrare problemi dovuti all'incoerenza delle chiavi nel database. Di seguito è una procedura per affrontare correttamente questo problema

Ripristina MongoDB da un errore improvviso

  1. Se i file di database si trovano sul tuo host, eseguine una copia prima di iniziare questa procedura. Per copiarli, puoi usare

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

    Se i file di database sono ancora all'interno del contenitore, prendi l'esterno del contenitore ed esegui una copia

  2. Avvia un contenitore di riparazione sui file come segue:

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

    Il nome dell'immagine dipende dalla piattaforma e per Raspberry PI3 il nome è andresvidal/rpi3-mongodb3 , per arm64v8 o per amd64 il contenitore è mongo

    Assicurati di avere la stessa versione dell'immagine MongoDB di quella utilizzata per creare i file di dati.

    Se i file sono irreparabili, prova:

    docker run -it -v <data folder>:/data/db mongo:<image-version> mongodump --repair --dbpath /data/db
    
  3. Una volta che i file sono stati riparati, devi avviare un contenitore sul database ed esportare i file con

    docker run -it -v <data folder>:/data/db mongo:<image-version> mongodump --dbpath /data/db
    
  4. Avvia un database pulito per il tuo progetto e usa mongorestore per importare i dati nel nuovo database.

Puoi controllare i seguenti link per ulteriori informazioni: