Pergunta

Estou a ter um problema de espaço com o mongoDB e o meu atual do ubuntu 12.04 desktop do computador.Eu sempre usada a configuração padrão, o que significa que os dados estão fisicamente armazenados em /var/lib/mongodb.Pelo tempo que o tamanho do banco de dados cresceu muito e agora eu gostaria de colocar algumas coleções para ter algum espaço vazio no meu disco rígido.Tenho verificado este e outros métodos, Mas, quando eu executar a função de remover, eu continuo recebendo a seguinte mensagem de erro:

Can't take a write lock while out of disk space

A primeira solução veio à minha mente é a de definir o caminho do mongodb para um disco rígido externo ou um disco usb e remover fisicamente a pasta usando o rm -rf.Seria uma solução segura?Existem outras soluções para este problema?

Foi útil?

Solução

O Mongodb é muito bom para copiar bancos de dados como tudo que você tem a fazer é copiar todo o diretório de dados para um outro lugar e, em seguida, você pode apenas apontar um novo processo mongod ele e ele vai trabalhar.

Portanto, seus passos são:

  • Encontrar o atual diretório de dados
  • Copiar para outra localização
  • Elimine qualquer ficheiro que tenha .bloqueio no diretório (este deixa de Mongo a partir de carregamento novamente)
  • Agora a iniciar uma outra mongo com o seguinte comando:

    mongod --dbpath <path to new directory on new disk> --port 27020
    

Agora, isso irá abrir uma nova mongo banco de dados (mas em uma porta diferente para evitar quaisquer problemas com um mongod que já pode ser executado).Agora você terá um novo mongod execução contra o novo disco sem precisar excluir coleções \ dbs.Lembre-se de que o Mongodb é ganancioso e não voluntariamente desistir de espaço em disco quando você excluir uma coleção.Você vai precisar para executar

 db.repairDatabase()

Uma vez que você está feliz, você pode excluir com segurança o velho mongodb dados de diretório e, em seguida, copie o novo sobre ele.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top