sql >> Databáze >  >> NoSQL >> MongoDB

Nastavení Mongo dockeru se po restartu porouchalo (unifi ovladač na raspberry pi)

Máte poškození datového souboru z nečistého odpojení disku během vypínání. I když obnovíte databázi, stále můžete čelit problémům kvůli nekonzistenci klíčů v databázi. Následuje postup, jak správně vyřešit tento problém

Obnova MongoDB po náhlém selhání

  1. Pokud jsou databázové soubory na vašem hostiteli, zkopírujte je před zahájením tohoto postupu. Chcete-li je zkopírovat, můžete použít

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

    Pokud jsou databázové soubory stále uvnitř kontejneru, získejte vnější kontejner a vytvořte kopii

  2. Spusťte kontejner opravy nad soubory následovně:

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

    Název obrázku závisí na platformě a pro Raspberry PI3 je název andresvidal/rpi3-mongodb3 , pro arm64v8 nebo pro amd64 je kontejner mongo

    Ujistěte se, že máte stejnou verzi obrazu MongoDB jako ta, která byla použita k vytvoření datových souborů.

    Pokud soubory nelze opravit, zkuste:

    docker run -it -v <data folder>:/data/db mongo:<image-version> mongodump --repair --dbpath /data/db
    
  3. Jakmile jsou soubory opraveny, musíte spustit kontejner nad databází a exportovat soubory pomocí

    docker run -it -v <data folder>:/data/db mongo:<image-version> mongodump --dbpath /data/db
    
  4. Spusťte pro svůj projekt čistou databázi a použijte mongorestore importovat data do nové databáze.

Další informace naleznete na následujících odkazech:



  1. Laravel App neběží na xampp nebo živém serveru, ale funguje dobře na php artisan sloužit

  2. Seskupení podle hodnot a podmínek

  3. Kontrola připojení k MongoDB

  4. Mongoose:Rekurzivní vložený dokument v Coffeescriptu