Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

Atualização 8.0 Cluster fragmentado para 8.3

Importante

MongoDB 8.3 é a versão menor mais recente. A partir do MongoDB 8.2, versões secundárias estão disponíveis para implantações locais (Community e EA) para casos de uso específicos. Para obter mais informações, consulte a seção Versões do MongoDB.

Para instalar a versão mais recente do MongoDB compatível com uso local, consulte as instruções de instalação.

Familiarize-se com o conteúdo deste documento, incluindo a revisão minuciosa dos pré-requisitos, antes de atualizar com o MongoDB 8.3.

As etapas a seguir descrevem o procedimento para atualizar um mongod que é um membro do shard da versão 8.0 para 8.3.

If you need guidance on upgrading to 8.3, MongoDB professional services offer upgrade support to help ensure a smooth transition without interruption to your MongoDB application.

Ao atualizar, considere o seguinte:

Para atualizar uma implantação MongoDB existente para 8.3, você deve estar executando uma versão da série 8.0.

Ao atualizar de uma versão secundária, você deve atualizar sucessivamente as versões secundárias até ter atualizado para 8.3.

Para saber mais, consulte Atualizar 8.2 para 8.3.

Before you upgrade MongoDB, check that you're using a MongoDB 8.3-compatible driver. Consult the driver documentation for your specific driver to verify compatibility with MongoDB 8.3.

As implementações atualizadas que são executadas em drivers incompatíveis podem encontrar comportamentos inesperados ou indefinidos.

Antes de iniciar sua atualização, consulte o documento Alterações de compatibilidade no MongoDB 8.3 para garantir que seus aplicativos e sistemas sejam compatíveis com o MongoDB 8.3. 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.

A partir do MongoDB 8.3, você pode fazer downgrade da sua versão do MongoDB para a versão secundária ou principal imediatamente anterior.

O MongoDB suporta apenas downgrades de versão única. Você não pode fazer o downgrade para uma versão que esteja várias versões atrás da versão atual.

Por exemplo, você pode fazer downgrade de um 8.0 para um 7.0 implantação. No entanto, não há suporte para desatualização adicional dessa implantação 7.0 para uma implantação 6.0.

Para saber mais, consulte Downgrade 8.3 para 8.0.

Para atualizar um cluster fragmentado para 8.3, todos os membros do cluster devem ter pelo menos a versão 8.0. O processo de atualização verifica todos os componentes do cluster e produz avisos se algum componente estiver executando uma versão anterior a 8.0.

O cluster fragmentado 8.0 deve ter featureCompatibilityVersion definido como "8.3".

Para garantir que todos os nós do cluster tenham featureCompatibilityVersion configurado para "8.3", conecte a cada nó do conjunto de réplicas de fragmento e cada nó do conjunto de réplicas do servidor de configuração. Em seguida, verifique o featureCompatibilityVersion:

Dica

Para um cluster fragmentado que tenha o controle de acesso habilitado, para executar o seguinte comando em um nó do conjunto de réplicas do fragmento, você deve se conectar ao nó como um usuário local do fragmento.

db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
"featureCompatibilityVersion" : { "version" : "8.0" }

Para configurar ou atualizar featureCompatibilityVersion, execute o seguinte comando no mongos:

db.adminCommand( { setFeatureCompatibilityVersion: "8.0", confirm: true } )

Para mais informações, consulte setFeatureCompatibilityVersion.

Para fragmentos e servidores de configuração, certifique-se de que nenhum nó do conjunto de réplicas esteja no estado ROLLBACK ou RECOVERING.

db.adminCommand( { replSetGetStatus: 1 } )

Opcional, mas recomendado. Como precaução, crie um backup do banco de dados do config antes de atualizar o cluster fragmentado.

Se você instalou o MongoDB a partir dos repositórios MongoDB apt, yum, dnf ou zypper, deverá atualizar para a versão 8.3 utilizando seu gerenciador de pacotes.

Siga as instruções de instalação do9.0 apropriadas para seu sistema Linux. Isso requer adicionar um repositório para a nova versão e, em seguida, executar o processo de upgrade real.

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.3 para obter mais informações.

1

Connect mongosh to a mongos instance in the sharded cluster, and run sh.stopBalancer() to disable the balancer:

sh.stopBalancer()

Observação

Se houver uma migração em andamento, o sistema a concluirá antes de encerrar o balanceador. Você pode executar o sh.isBalancerRunning() para verificar o estado atual do balanceador.

Para verificar se o balanceador está desativado, execute sh.getBalancerState(), que retorna false se o balanceador estiver desativado:

sh.getBalancerState()

Para obter mais informações sobre como desabilitar o balanceador, consulte Desabilitar o balanceador.

2
  1. Atualize os nós secundários do conjunto de réplicas, um de cada vez.

    1. Desligue a instância secundária.

      To shut down the mongod process, use mongosh to connect to the cluster member and run the following command:

      db.adminCommand( { shutdown: 1 } )
    2. Substitua o 8.0 binário pelo 8.3 binário.

    3. Iniciar o binário 8.3.

      Inicie o binário 8.3 com o --configsvr, --replSete --port. Inclua quaisquer outras opções conforme usado pela implantação.

      mongod --configsvr --replSet <replSetName> --port <port> --dbpath <path> --bind_ip localhost,<ip address>

      Se você utilizar um arquivo de configuração, atualize o arquivo para especificar sharding.clusterRole: configsvr, replication.replSetName, net.port e net.bindIp, então inicie o 8.3 binary:

      sharding:
      clusterRole: configsvr
      replication:
      replSetName: <string>
      net:
      port: <port>
      bindIp: localhost,<ip address>
      storage:
      dbpath: <path>

      Inclua quaisquer outras configurações conforme adequado para sua implantação.

    4. Aguarde até que o membro se recupere para o estado SECONDARY antes de atualizar o próximo membro secundário.

      To check the member's state, issue rs.status() in mongosh.

  2. Reduza o conjunto de réplicas primário.

    1. Connect mongosh to the primary and use rs.stepDown() to step down the primary and force an election of a new primary:

      rs.stepDown()
    2. Encerrar o primário de redução

      Quando rs.status() mostrar que o primário foi desativado e outro nó assumiu o estado PRIMARY, encerre o primário desativado.

      To shut down the stepped-down primary, use mongosh to connect to the primary and run the following command:

      db.adminCommand( { shutdown: 1 } )
    3. Substitua o binário mongod pelo binário 8.3 .

    4. Iniciar o binário 8.3.

      Inicie o 8.3 com as opções --configsvr, --replSet, --port e --bind_ip. Inclua quaisquer opções de linha de comando opcionais utilizadas pela implantação anterior:

      mongod --configsvr --replSet <replSetName> --port <port> --dbpath <path> --bind_ip localhost,<ip address>

      Se você utilizar um arquivo de configuração, atualize o arquivo para especificar sharding.clusterRole: configsvr, replication.replSetName, net.port e net.bindIp, então inicie o 8.3 binary:

      sharding:
      clusterRole: configsvr
      replication:
      replSetName: <string>
      net:
      port: <port>
      bindIp: localhost,<ip address>
      storage:
      dbpath: <path>

      Inclua qualquer outra configuração conforme adequado para sua implantação.

3

Atualize os fragmentos um de cada vez.

Para cada conjunto de réplicas do fragmento:

  1. Atualize os nós secundários do conjunto de réplicas, um de cada vez.

    1. Desligue a instância secundária.

      To shut down the mongod process, use mongosh to connect to the cluster member and run the following command:

      db.adminCommand( { shutdown: 1 } )
    2. Substitua o 8.0 binário pelo 8.3 binário.

      Inicie o binário 8.3 com as opções --shardsvr, --replSet, --port e --bind_ip. Inclua opções de linha de comando adicionais, conforme adequado, para sua implantação:

      mongod --shardsvr --replSet <replSetName> --port <port> --dbpath <path> --bind_ip localhost,<ip address>

      Se estiver usando um arquivo de configuração, atualize-o para incluir sharding.clusterRole: shardsvr, replication.replSetName, net.port e net.bindIp, então inicie o binário 8.3 :

      sharding:
      clusterRole: shardsvr
      replication:
      replSetName: <string>
      net:
      port: <port>
      bindIp: localhost,<ip address>
      storage:
      dbpath: <path>

      Inclua qualquer outra configuração conforme adequado para sua implantação.

    3. Aguarde até que o membro se recupere para o estado SECONDARY antes de atualizar o próximo membro secundário.

      To check the member's state, you can issue rs.status() in mongosh.

    4. Repita para cada membro secundário.

  2. Reduza o conjunto de réplicas primário.

    Connect mongosh to the primary and use rs.stepDown() to step down the primary and force an election of a new primary:

    rs.stepDown()
  3. Atualize o primário desativado.

    Quando rs.status() mostrar que o primário foi desativado e outro membro assumiu o estado PRIMARY, faça upgrade do primário desativado:

    1. Encerrar o primário de redução

      To shut down the stepped-down primary, use mongosh to connect to the replica set member and run the following command:

      db.adminCommand( { shutdown: 1 } )
    2. Substitua o binário mongod . com o binário 8.3 .

    3. Iniciar o binário 8.3.

      Inicie o binário 8.3 com as opções --shardsvr, --replSet, --port e --bind_ip. Inclua opções de linha de comando adicionais, conforme adequado, para sua implantação:

      mongod --shardsvr --replSet <replSetName> --port <port> --dbpath <path> --bind_ip localhost,<ip address>

      Se estiver usando um arquivo de configuração, atualize o arquivo para especificar sharding.clusterRole: shardsvr, replication.replSetName, net.port e net.bindIp e, em seguida, inicie o 8.3 binário:

      sharding:
      clusterRole: shardsvr
      replication:
      replSetName: <string>
      net:
      port: <port>
      bindIp: localhost,<ip address>
      storage:
      dbpath: <path>

      Inclua qualquer outra configuração conforme adequado para sua implantação.

4

Importante

Upgrade todas as instâncias do conjunto de réplicas do servidor de configuração (CSRS) primeiro, seguidas por todos os membros do fragmento e, finalmente, as instâncias mongos. Fazer upgrade do mongos antes de concluir estes upgrades pode resultar em problemas de compatibilidade.

Substitua cada instância mongos pelo 8.3 binário e reinicie. Inclua qualquer outra configuração conforme adequado para sua implantação.

Observação

A opção --bind_ip deve ser especificada quando os nós do cluster fragmentado são executados em hosts diferentes ou se clientes remotos se conectarem ao cluster fragmentado.

mongos --configdb csReplSet/<rsconfigsver1:port1>,<rsconfigsver2:port2>,<rsconfigsver3:port3> --bind_ip localhost,<ip address>
5

Using mongosh, connect to a mongos in the cluster and run sh.startBalancer() to re-enable the balancer:

sh.startBalancer()

Para obter mais informações sobre como reativar o balanceador, consulte a página Habilitar o balanceador.

6

Neste ponto, você pode executar o 8.3 binários sem os recursos recursos do 8.3 que são incompatíveis com 8.0.

Para habilitar estas funcionalidades do 8.3, configure a versão de compatibilidade do recurso (FCV) para 8.3. Você também deve definir confirm como true.

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.

Em uma instância do mongos, execute o comando setFeatureCompatibilityVersion no banco de dados admin:

db.adminCommand( { setFeatureCompatibilityVersion: "8.3", confirm: true } )

Definindo featureCompatibilityVersion (FCV) : "8.3" executa implicitamente um em cada replSetReconfig term shard para adicionar o campo ao documento de configuração de réplica do shard.

O comando não é concluído 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 coleção interna do sistema. Se o comando não for concluído, você poderá tentar novamente o comando no mongos com segurança, pois a operação é idempotente.

Observação

Enquanto setFeatureCompatibilityVersion estiver em execução no cluster fragmentado, migrações, divisões e mesclagens de partes podem apresentar falhas com ConflictingOperationInProgress.

Aviso

Compatibilidade mongos fCV

O binário mongos não pode se conectar a instâncias mongod cuja feature compatibility version (fCV) seja maior que a do mongos. Por exemplo, você não pode conectar um MongoDB 8.0 versão mongos a um 8.3 cluster fragmentado com fCV definido como 8.3. Entretanto, você pode conectar um MongoDB versão 8.0 mongos a um cluster fragmentado 8.3 com fCV definido como 8.0.