![Como migrar MongoDB 2.6 para 3.0 com WiredTiger](https://rvso.com/image/1127639/Como%20migrar%20MongoDB%202.6%20para%203.0%20com%20WiredTiger.png)
O MongoDB 3.0 introduz um novo mecanismo de armazenamento chamado wiredTiger
que resulta em uma grande redução no uso de memória e espaço em disco.
Como meu banco de dados está atualmente com aproximadamente 20 milhões de objetos e usando aproximadamente 70 GB de RAM, esta atualização chega no momento certo para adiar uma atualização de hardware.
Como você migra uma instalação existente do MongoDB 2.6 para 3.0 e ao mesmo tempo obtém os benefícios do wiredTiger?
A documentação refere-se a opções que resultam em erros de inicialização que impedem a inicialização do MongoDB. Além disso, os locais dos arquivos não correspondem aos do Ubuntu (Servidor 14.04 LTS).
Responder1
Nas instalações padrão, o arquivo de configuração está em /etc/mongod.conf
. O que os documentos do MongoDB não mencionam é que ao migrar para o WiredTiger também precisamos atualizar o arquivo de configuração para o novo formato YAML introduzido na versão 2.6.
Pelo que sei, a engine
opção só está disponível no novo formato de configuração.
A migração do mecanismo de armazenamento antigo consiste em criar um dump do banco de dados, desligar o mongodb, alterar as configurações e depois importar o dump para o novo mecanismo de armazenamento.
Crie um backup. Seriamente. Precisamos de um dump do banco de dados que importaremos para o novo mecanismo de banco de dados:
mongodump -d db_name /backup/path/
Pare o serviço mongodb
sudo service mongod stop
Mova os dados do local atual para outro lugar (o MongoDB não será inicializado se o diretório de dados contiver arquivos gerados pelo mecanismo de armazenamento antigo).
sudo mv /var/lib/mongodb /var/lib/mongodb_26/
Atualize o MongoDB para a versão 3.0 (dehttp://docs.mongodb.org/v3.0/tutorial/install-mongodb-on-ubuntu/):
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10 echo "deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list sudo apt-get update sudo apt-get install mongodb-org mongodb-org-server mongodb-org-shell mongodb-org-mongos mongodb-org-tools
Converta o arquivo de configuração antigo (anterior à 2.6) para o formato YAML atual. O mínimo é:
storage: dbPath: "/var/lib/mongodb" engine: wiredTiger systemLog: destination: file path: "/var/log/mongodb/mongod.log" logAppend: true net: bindIp: 127.0.0.1 port: 27017 # Enable the HTTP interface (Defaults to port 28017). http: enabled: false
Certifique-se de que não restem linhas no formato antigo ou o MongoDB não será iniciado.
A documentação completa do arquivo de configuração está em:http://docs.mongodb.org/v3.0/reference/configuration-options/
Opcionalmente, faça um backup do log:
sudo mv /var/log/mongodb/mongod.log /var/log/mongodb/mongod_26.log
Reinicie o mongodb
sudo service mongod start
Carregue o backup para converter dados em um novo mecanismo de armazenamento
mongorestore /backup/location
Depois de verificar se todos os seus dados estão corretos, você pode excluir o diretório com o formato de dados antigo
sudo rm -r /var/lib/mongodb_26/
Observe que para conjuntos de réplicas e clusters fragmentados existem algumas etapas adicionais:http://docs.mongodb.org/v3.0/release-notes/3.0-upgrade/?_ga=1.86531032.1131483509.1428671022#change-replica-set-storage-engine-to-wiredtiger
Responder2
Usando oformato de arquivo de configuração antigo, tive sucesso com:
storageEngine=wiredTiger