MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Configuração do docker Mongo quebrada após a reinicialização (controlador unifi no raspberry pi)


Você tem uma corrupção de arquivo de dados da desmontagem não limpa do disco durante o desligamento. Mesmo se você restaurar o banco de dados, ainda poderá enfrentar problemas devido à inconsistência das chaves no banco de dados. A seguir está um procedimento para abordar adequadamente esses problemas

Recuperação do MongoDB de falha abrupta


  1. Se os arquivos do banco de dados estiverem em seu host, faça uma cópia deles antes de iniciar este procedimento. Para copiá-los, você pode usar
    docker cp <container_name>:<location of files in container> <location on host>
    

    Se os arquivos de banco de dados ainda estiverem dentro do contêiner, pegue o fora do contêiner e faça uma cópia

  2. Inicie um contêiner de reparo sobre os arquivos da seguinte maneira:
    docker run -it -v <data folder>:/data/db <image name>:<image-version> mongod --repair
    

    O nome da imagem depende da plataforma e, para Raspberry PI3, o nome é andresvidal/rpi3-mongodb3 , para arm64v8 ou para amd64 o contêiner é mongo

    Certifique-se de ter a mesma versão da imagem do MongoDB usada para criar os arquivos de dados.

    Se os arquivos não puderem ser reparados, tente:
    docker run -it -v <data folder>:/data/db mongo:<image-version> mongodump --repair --dbpath /data/db
    

  3. Uma vez que os arquivos são reparados, você precisa iniciar um container sobre o banco de dados e exportar os arquivos com
    docker run -it -v <data folder>:/data/db mongo:<image-version> mongodump --dbpath /data/db
    

  4. Inicie um banco de dados limpo para seu projeto e use mongorestore para importar os dados no novo banco de dados.

Você pode verificar os seguintes links para obter mais informações: