Como atualizar ou fazer downgrade do MongoDB

0

Eu tenho uma configuração webapp bastante arcaica que depende do MongoDB rodando em um servidor com o Debian 8.5. Infelizmente, o MongoDB foi recentemente atualizado no servidor e o aplicativo quebrou. O MongoDB foi atualizado para a versão 2.4.10, que fornece esse erro na inicialização

    need to upgrade database admin with pdfile version 4.22, new version: 4.5

Quando tento executar a atualização do banco de dados de administração, obtenho

    error: exception cloning object in admin.system.users system.users entry must have either a 'pwd' or a 'userSource' field, but not both

Basicamente, não posso atualizar o banco de dados. Eu tentei reparar o banco de dados e isso não funciona. Parece que o problema pode ser causado por ter usuários duplicados no banco de dados. Uma solução potencial é remover as duplicatas, mas como o mongod não será executado, não sei como fazer isso.

Eu tentei desclassificar o mongodb via apt, mas não consegui encontrar uma versão que fosse reconhecida pelo apt. Por exemplo

 sudo apt-get install mongodb=2.2.7

rendimentos

    E: version '2.2.7' for 'mongodb' was not found

Depois de pesquisar, parece que o mongodb 2.6 pode não ter o mesmo problema, mas não consigo instalar o que ele tem atualmente, 2.4.10. Eu executei o apt-get update, mas a política do apt-cache mostra que o candidato é o mesmo da versão instalada.

Basicamente, parece que há três maneiras de colocar este site em funcionamento novamente.

  • Atualize com sucesso o banco de dados de administração para que funcione com a versão do MongoDB instalada recentemente.
  • Faça o downgrade do MongoDB para 2.2.7
  • Atualize o MongoDB para 2.6.x

Alguém sabe como posso fazer com que essas coisas aconteçam?

    
por pocketg99 11.09.2016 / 04:08

1 resposta

0

Eu recomendo usar algo mais recente do que o 2.2 ou o 2.4 - eles são antigos em termos do MongoDB e pararam de receber atualizações há muito tempo. O motivo pelo qual você não pode encontrar uma nova versão para instalar é que os pacotes oficiais do Debian travam uma versão principal para o lançamento inteiro do sistema operacional. Infelizmente, as versões do Debian OS atrasam muito as versões principais do MongoDB, e nem sempre usam a versão mais recente disponível mesmo quando ocorre uma versão do Debian.

Para obter uma versão mais moderna do MongoDB, é necessário usar os repositórios oficiais do MongoDB - aqui está o versão 2.6 , que é muito antiga neste momento. Você ainda pode fixar uma versão embora, assim você pode controlar o que e como você atualiza, o que é uma boa opção para ter. Você também pode obter uma versão 2.2 mais antiga em um caminho semelhante .

Para corrigir o erro do banco de dados do administrador, você tem 3 opções (resumidas):

  1. Faça downgrade para 2.2.X (veja acima), remova as entradas duplicadas e atualize novamente
  2. Atualize para o 2.6+ e veja se isso resolve seu problema
  3. Inicie o MongoDB com a autenticação desativada (temporariamente) e veja se você pode remover as entradas duplicadas no banco de dados do administrador, reinicie normalmente
por 27.09.2016 / 17:50