Atualizar um conjunto de réplicas para 8.0
Nesta página
Familiarize-se com o conteúdo deste documento, incluindo a revisão minuciosa dos pré-requisitos, antes de atualizar com o MongoDB 8.0.
As etapas a seguir descrevem o procedimento para atualizar um mongod
que é um membro do conjunto de réplicas da versão 7.0 para 8.0.
Se você precisar de orientação sobre como atualizar para a versão 8.0, os serviços profissionais do MongoDB oferecem suporte de atualização da versão principal para ajudar a garantir uma transição tranquila, sem interrupção para seu aplicativo MongoDB.
Recomendações de upgrade e listas de verificação
Ao atualizar, considere o seguinte:
Atualizar caminho da versão
Para atualizar uma implantação MongoDB existente para 8.0, você deve estar executando uma versão da série 7.0.
Para atualizar de uma versão anterior à série 7.0, é preciso atualizar sucessivamente as principais versões até fazer o upgrade para a série 7.0. Por exemplo, se estiver executando a série 6.0, você deve atualizar para a 7.0 antes de fazer o upgrade para 8.0.
Verifique a compatibilidade do driver
Antes de fazer upgrade do MongoDB, verifique se você está usando um driver compatível com o MongoDB 8.0. Consulte a documentação do driver para seu driver específico para verificar a compatibilidade com o MongoDB 8.0.
As implementações atualizadas que são executadas em drivers incompatíveis podem encontrar comportamentos inesperados ou indefinidos.
Preparação
Antes de iniciar sua atualização, consulte o documento Alterações de compatibilidade no MongoDB 8.0 para garantir que seus aplicativos e sistemas sejam compatíveis com o MongoDB 8.0. Resolva as incompatibilidades em sua implantação antes de iniciar a atualização.
Antes de atualizar o MongoDB, sempre teste seu aplicativo em um ambiente de preparação antes de implantar a atualização em seu ambiente de produção.
Consideração de rebaixamento
Você não pode fazer downgrade da versão binária do seu sistema sem assistência do suporte.
Para saber mais, consulte Downgrade 8.0 para 7.0.
Pré-requisitos
Versão de todos os membros
Todos os nós do conjunto de réplicas devem estar executando a versão 7.0. Para atualizar um conjunto de réplicas da série 6.0e anterior, primeiro atualize todos os nós do conjunto de réplicas para a versão mais recente da série 7.0 e, em seguida, siga o procedimento para atualizar do MongoDB 7.0 para o 8.0.
Versão de compatibilidade de recursos
O 7.0 conjunto de réplicas deve ter featureCompatibilityVersion
definido como "7.0"
.
Para garantir que todos os membros do conjunto de réplicas tenham featureCompatibilityVersion
configurado para "7.0"
, conecte a cada membro do conjunto de réplicas e marque o featureCompatibilityVersion
:
db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
Todos os membros devem retornar um resultado que inclua "featureCompatibilityVersion" : { "version" : "7.0" }
.
Para definir ou atualizar featureCompatibilityVersion
, execute o seguinte comando no primário. A maioria dos membros portadores de dados deve estar disponível:
db.adminCommand( { setFeatureCompatibilityVersion: "7.0" } )
Para mais informações, consulte setFeatureCompatibilityVersion
.
Estado do membro do conjunto de réplicas
Certifique-se de que nenhum membro do conjunto de réplicas esteja no estado ROLLBACK
ou RECOVERING
, emitindo o comando replSetGetStatus
:
db.adminCommand( { replSetGetStatus: 1 } )
Download 8.0 Binários
Usar um gerenciador de pacotes
Se você instalou o MongoDB a partir dos repositórios MongoDB apt
, yum
, dnf
ou zypper
, deverá atualizar para a versão 8.0 utilizando seu gerenciador de pacotes.
Siga as instruções de instalação do 8.0 apropriado para seu sistema Linux. Isso envolverá a adição de um repositório para a nova versão e, em seguida, a execução do processo de atualização real.
Manualmente
Se você não tiver instalado o MongoDB usando um gerenciador de pacotes, poderá fazer o download manual dos binários do MongoDB no MongoDB Download Center.
Consulte as instruções de instalação da versão 8.0 para obter mais informações.
Procedimento de atualização
É possível atualizar o MongoDB da versão 7.0 para a versão 8.0 com uma atualização "contínua," que permite atualizar um nó de cada vez, mantendo os demais em funcionamento para minimizar o tempo de inatividade.
Atualize os membros secundários do conjunto de réplicas.
Atualize os membros secundários da réplicas para definir um de cada vez:
Substitua o 7.0 binário pelo 8.0 binário.
Reinicie o membro.
Reduza o conjunto de réplicas primário.
Conecte o mongosh
ao primary e utilize o rs.stepDown()
para descer o primary e forçar uma eleição de uma novo primary.
Atualize o primary.
Quando rs.status()
indicar que o primário foi desativado e outro membro tiver assumido o estado PRIMARY
, faça upgrade do primário desativado:
Encerre o primário desativado e substitua o binário
mongod
pelo binário 8.0 .Reinicie o membro.
Habilite recursos 8.0 incompatíveis com versões anteriores.
Neste ponto, você pode executar o 8.0 binários sem os recursos recursos do 8.0 que são incompatíveis com 7.0.
Para habilitar esses recursos da versão 8.0, defina a versão de compatibilidade do recurso (fCV
) como 8.0.
Dica
Habilitar essas recursos funcionalidades com versões anteriores pode complicar o processo de downgrade, pois você deve remover todos as funcionalidades persistentes incompatíveis com versões anteriores antes de fazer o downgrade.
É recomendável que, após a atualização, você permita que seu sistema seja executado sem habilitar essas funcionalidades por um período de burn-in para garantir que a probabilidade de downgrade seja mínima. Quando você estiver confiante de que a probabilidade de downgrade é mínima, habilite essas funcionalidades.
Dica
Certifique-se de que não haja initial sync em andamento. A execução do comando setFeatureCompatibilityVersion
enquanto uma initial sync estiver em andamento fará com que a initial sync seja reiniciada.
No primário, execute o comando setFeatureCompatibilityVersion
no banco de dados admin
:
db.adminCommand( { setFeatureCompatibilityVersion: "8.0" } )
Definindo featureCompatibilityVersion (fCV) : "8.0" executa implicitamente um replSetReconfig
para adicionar o campo term
ao documento de configuração e bloqueia até que a nova configuração se propague para a maioria dos membros do conjunto de réplicas.
Este comando deve executar gravações em uma collection interna do sistema. Se, por algum motivo, o comando não for concluído com êxito, você poderá tentar novamente o comando no primary com segurança, pois a operação é idempotente.
Procedimentos de atualização adicionais
Para atualizar um standalone, consulte a página Atualizar um standalone para a versão 8.0.
Para atualizar um cluster fragmentado, consulte Atualizar um cluster fragmentado para 8.0.