sql >> Databasteknik >  >> NoSQL >> MongoDB

Mongo docker-inställning trasig efter omstart (unifi-kontroller på raspberry pi)

Du har en datafil korruption från den orena demonteringen av disken under avstängningen. Även om du återställer databasen kan du fortfarande stöta på problem på grund av inkonsekvens av nycklarna i databasen. Följande är en procedur för att korrekt lösa dessa problem

Återställ MongoDB från plötsligt misslyckande

  1. Om databasfilerna finns på din värd, gör en kopia av dem innan du påbörjar den här proceduren. För att kopiera dem kan du använda

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

    Om databasfilerna fortfarande finns i behållaren, hämta utsidan av behållaren och gör en kopia

  2. Starta en reparationsbehållare över filerna enligt följande:

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

    Bildens namn beror på plattformen och för Raspberry PI3 är namnet andresvidal/rpi3-mongodb3 , för arm64v8 eller för amd64 är behållaren mongo

    Se till att du har samma version av MongoDB-avbildningen som den som användes för att skapa datafilerna.

    Om filerna inte kan repareras, försök:

    docker run -it -v <data folder>:/data/db mongo:<image-version> mongodump --repair --dbpath /data/db
    
  3. När filerna har reparerats måste du starta en behållare över databasen och exportera filerna med

    docker run -it -v <data folder>:/data/db mongo:<image-version> mongodump --dbpath /data/db
    
  4. Starta en ren databas för ditt projekt och använd mongorestore för att importera data till den nya databasen.

Du kan kontrollera följande länkar för mer information:



  1. Hur man ansluter till mongoDB Atlas med mongoose

  2. Azure VM ansluter inte till Azure Redis Cache men lokal ansluter till Azure Redis Cache

  3. Sökfält med förslag med nodejs och mongodb

  4. Varför är insättningar långsamma i 2.6 MongoDB-skalet jämfört med tidigare versioner?