As versões mais recentes do MongoDB são criadas para integrar recursos novos ou aprimorados das versões anteriores. Por esse motivo, é recomendável executar a versão mais recente para obter o máximo desempenho e recursos adicionais. Além disso, as versões mais recentes podem ser resultado de bugs corrigidos dependendo do versionamento do MongoDB.
Versão do MongoDB
As versões do MongoDB estão no formato X.Y.Z.
- Quando Y é par, ou seja, 4.0 ou 4.2, isso se refere a uma série de lançamento que é estável, portanto, recomendada para produção. Nesse caso, novos recursos são integrados, o que pode resultar em incompatibilidade com versões anteriores.
- Se Y for ímpar, ou seja, 4.1 ou 4.3, isso se refere à série de desenvolvimento que não é estável, portanto, recomendado apenas para teste.
- Z refere-se a um número de revisão/patch. Envolve correção de bugs e alterações compatíveis com versões anteriores.
Considerar também as versões do driver MongoDB é importante para garantir um banco de dados com bom desempenho.
Considerações antes de atualizar
- Backup :No meio da atualização pode ocorrer algum travamento e no final comprometer a integridade dos dados que o banco de dados estava segurando. Portanto, é recomendável sempre fazer um backup dos dados antes de atualizar para uma determinada versão.
- Janela de manutenção :Pode haver alguma complexidade que pode surgir ao atualizar para alguma versão se os conjuntos de réplicas estiverem envolvidos. É preciso agendar tempo suficiente para esse processo para que você não encontre um alto tempo de inatividade.
- Compatibilidade de versão :Certifique-se de ler as notas de lançamento e verificar se a configuração do seu sistema será compatível com a versão para a qual você deseja atualizar. Verifique também a documentação de compatibilidade de drivers na página de Compatibilidade de Drivers se eles puderem ser compatíveis com a versão do MongoDB para a qual você deseja fazer upgrade. Por exemplo, do MongoDB 4.2 para cima, não há suporte para o sistema Ubuntu 16.04 PPCLE.
- Alterar fluxos :Os fluxos de alterações são projetados para que os aplicativos acessem alterações de dados em tempo real sem necessariamente seguir o oplog. Para versões do MongoDB anteriores à 4.0.7, o fluxo de mudança usa um token de retomada da versão 0 v0, enquanto esta versão e as sucessoras usam um token de retomada da versão 1 v1. É recomendável que os clientes aguardem a conclusão do upgrade antes de retomar os fluxos de mudança ao fazer upgrade para a versão 4.0.7.
- Verificação do ambiente de preparação :Certifique-se de que todas as configurações estejam bem definidas antes de atualizar o ambiente de produção e que sejam compatíveis com a nova versão para a qual você deseja atualizar.
- Primário -Secundário -Arquitetura de Árbitro (PSA) :MongoDB versão 3.6 e superior habilitam suporte para preocupação de leitura “maioria” por padrão. No entanto, essa configuração pode resultar em pressão do cache de armazenamento e a única maneira de evitar isso é desabilitando esse parâmetro. No entanto, desabilitar este parâmetro pode levantar mais preocupações, ou seja:
- O suporte para transações no cluster fragmentado será afetado:
- se um fragmento tiver a leitura de "maioria" desativada, ele gerará um erro para uma transação que grava em vários fragmentos.
- O "snapshot" de preocupação de leitura não pode ser usado para uma transação envolvendo um fragmento com "maioria" de preocupação de leitura desativada
Os comandos - collMod que são responsáveis por modificar um índice de reversão não funcionarão. Isso determina que, se uma operação precisar reverter, deve-se usar o nó primário para ressincronizar os nós afetados.
- O suporte para Change Streams para MongoDB 4.0 e versões anteriores também será desativado.
- As transações do conjunto de réplicas não são afetadas com a desativação deste parâmetro.
- O suporte para transações no cluster fragmentado será afetado:
Procedimentos para atualização
- Faça um backup de seus dados.
- Atualize o binário mongod/mongos separadamente usando a ferramenta de gerenciamento de pacotes do sistema junto com os pacotes oficiais do MongoDB. Você também pode atualizar os mongos substituindo os binários existentes por novos binários usando este procedimento:
- Faça o download dos binários do MongoDB para a revisão para a qual deseja atualizar e armazene o arquivo compactado baixado em um local temporário.
- Encerre a instância.
- Use os binários baixados para substituir os binários existentes do MongoDB.
- Reinicie a instância.
- Se estiver atualizando um conjunto de réplicas, atualize cada membro separadamente começando com os secundários e o primário por último. Para atualizar os secundários:
- Atualize o binário mongod
- Aguarde a recuperação do secundário para o estado SECONDARY e depois que ele terminar, atualize a próxima instância. rs.status() é usado para verificar o estado do membro em um shell mongo. Os estados RECOVERING e STARTUP podem aparecer, mas você precisará esperar até que ele se recupere para SECONDARY.
- Ao atualizar o primário:
- Em um shell mongo, use rs.stepDown() para reduzir o primário como uma forma de iniciar um failover normal. Como não serão aceitas gravações durante o período, é aconselhável fazer a atualização no menor tempo possível.
- Até que você veja que outro membro foi eleito para ser o principal, atualize os binários do principal de desligamento.
- Reinicie o primário após a conclusão da atualização, mas se você verificar seu status, rs.status(), ele poderá ser rotulado como secundário.
- Para atualizar para um cluster fragmentado do MongoDB 4.4:
- Verifique se o balanceador foi desativado.
- Atualize os servidores de configuração da mesma forma que atualizou o conjunto de réplicas.
- Atualize o fragmento usando o procedimento correspondente, ou seja, um conjunto de réplicas ou um autônomo.
- Atualize cada instância do mongos em ordem.
- Reative o balanceador.
Conclusão
Com o tempo, os dados se tornam mais complexos, exigindo recursos avançados de banco de dados que possam atender às especificações dos administradores de banco de dados. O MongoDB não recorre a isso, pois sempre lança versões de banco de dados com bugs corrigidos ou recursos recém-integrados. Recomenda-se sempre atualizar para a versão mais recente do MongoDB para obter o máximo desempenho. No entanto, antes de fazer uma atualização, é necessário verificar as notas de lançamento da versão para a qual você deseja atualizar, se ela for compatível com seu sistema. A atualização dos drivers MongoDB correspondentes também é aconselhável.