Faça o downgrade do cluster fragmentado 6.0 para 5.0
Antes de tentar fazer um downgrade, familiarize-se com o conteúdo nesta página.
Caminho de downgrade
Importante
Antes de atualizar ou fazer downgrade de um cluster fragmentado, certifique-se de que todos os membros do cluster fragmentado estejam em execução. Se você não fizer isso, a atualização ou downgrade não será concluído até que todos os membros sejam iniciados.
Se você precisar fazer o downgrade do 6.0, faça o downgrade para a versão de correção mais recente do 5.0.
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 desatualizar um sistema série 6.0 para série 5.0. No entanto, desatualizar ainda mais o sistema série 5.0 para um sistema série 4.4 não é possível.
Pré-requisitos
Antes de iniciar o procedimento de downgrade, você deve concluir as etapas de pré-requisito a seguir.
1. Criar backup
Opcional, mas recomendado. Crie uma cópia de segurança do seu banco de dados.
Para saber como criar um backup, consulte Métodos de backup para um sistema autogerenciado.
2. Remover recursos incompatíveis do Backward-Incompatible
Para fazer o downgrade do 6.0 para o 5.0, você deve remover os recursos do 6.0 que são incompatíveis com o 5.0. Para obter uma lista de recursos incompatíveis e como removê-los, consulte Considerações sobre downgrade.
3. Certifique-se de que nenhuma operação de refragmentação esteja em andamento
Certifique-se de que todas as operações de refragmentação tenham sido concluídas com êxito. Se uma operação recente de refragmentação falhar devido a um failover primary, você deverá primeiro executar o comando cleanupReshardCollection
antes de fazer downgrade do featureCompatibilityVersion
do cluster fragmentado.
Se uma operação de refragmentação ainda estiver em execução enquanto você faz downgrade do featureCompatibilityVersion
do cluster fragmentado, a operação de refragmentação não será concluída.
4. Versão de compatibilidade de recursos (fCV) de downgrade
Para fazer downgrade do FCV do seu cluster fragmentado:
Certifique-se de que não haja initial sync em andamento. A execução do comando
setFeatureCompatibilityVersion
enquanto uma initial sync está em andamento faz com que a initial sync seja reiniciada.Certifique-se de que nenhum nó tenha um campo
newlyAdded
na configuração do conjunto de réplicas. Execute o seguinte comando em cada nó do seu conjunto de réplicas para verificar isso:use local db.system.replset.find( { "members.newlyAdded" : { $exists : true } } ); O campo
newlyAdded
só aparece no documento de configuração do conjunto de réplicas de um nó durante e logo após uma sincronização inicial.Certifique-se de que nenhum membro do conjunto de réplicas esteja no estado
ROLLBACK
ouRECOVERING
.Faça o downgrade de
featureCompatibilityVersion
para"5.0"
.db.adminCommand( { setFeatureCompatibilityVersion: "5.0" } ) O comando
setFeatureCompatibilityVersion
executa gravações em uma coleção interna do sistema e é idempotente. Se o comando não for concluído com êxito, tente novamente o comando na instânciamongos
.Observação
Solução de problemas
Enquanto
setFeatureCompatibilityVersion
estiver em execução no cluster fragmentado, migrações, divisões e mesclagens de partes podem apresentar falhas comConflictingOperationInProgress
.Se
setFeatureCompatibilityVersion
falhar com um erroManualInterventionRequired
e o cluster tiver passado recentemente por uma operação de refragmentação que falhou devido a uma eleição, você deverá executar o comandocleanupReshardCollection
antes de tentar executarsetFeatureCompatibilityVersion
novamente.
Para garantir que todos os membros do conjunto de réplicas tenham o
featureCompatibilityVersion
atualizado, conecte a cada membro do conjunto de réplicas e verifique ofeatureCompatibilityVersion
:db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } ) Dica
Controle de acesso
Para um cluster fragmentado que tenha o controle de acesso ativado, para executar o
adminCommand
em um membro do conjunto de réplicas de fragmento, você deve se conectar ao membro como um usuário local do fragmento.Todos os membros devem retornar um resultado que inclua:
"featureCompatibilityVersion" : { "version" : "5.0" } Se algum membro retornar uma
featureCompatibilityVersion
de"6.0"
, aguarde até que o membro retorne a versão"5.0"
antes de continuar.
Para obter mais informações sobre o valor featureCompatibilityVersion
retornado, consulte Obter FeatureCompatibilityVersion.
Procedimento de downgrade
Aviso
Antes de prosseguir com o procedimento de downgrade, certifique-se de que todos os membros do cluster fragmentado, inclusive os membros do conjunto de réplicas atrasadas, tenham as alterações de pré-requisito. Para fazer isso, verifique o featureCompatibilityVersion
e remova as feições incompatíveis para cada nó antes de fazer o downgrade.
Baixe os binários 5.0 mais recentes.
Utilizando um gerenciador de pacotes ou um download manual, obtenha a versão mais recente na série 5.0. Se estiver usando um gerenciador de pacotes, adicione um novo repositório para os binários 5.0 e execute o processo de downgrade real.
Importante
Antes de atualizar ou fazer downgrade de um conjunto de réplicas, certifique-se de que todos os membros do conjunto de réplicas estejam em execução. Se você não fizer isso, a atualização ou downgrade não será concluído até que todos os membros sejam iniciados.
Se você precisar fazer o downgrade do 6.0, faça o downgrade para a versão de correção mais recente do 5.0.
Desabilitar o Balanceador.
Para desabilitar o balancer, conecte mongosh
a uma instância mongos
no cluster fragmentado e execute o seguinte comando:
sh.stopBalancer()
Observação
Se houver uma migração em andamento, o MongoDB concluirá a migração em andamento antes de encerrar o balancer. Para verificar o estado atual do balanceador, execute sh.isBalancerRunning()
.
Para verificar se o balanceador está desabilitado, execute o seguinte comando:
sh.getBalancerState()
sh.getBalancerState()
retorna false
se o balanceador estiver desabilitado.
Para obter mais informações sobre como desabilitar o balanceador, consulte Desabilitar o balanceador.
Faça o downgrade de cada shard, um de cada vez.
Faça downgrade dos membros secundários do fragmento, um de cada vez.
Aguarde até que o membro entre no SECONDARY
estado .
Antes de fazer o downgrade do próximo secundário, aguarde até que o membro se recupere para o estado SECONDARY
. Para verificar o estado do membro, use o método rs.status()
em mongosh
.
Faça o downgrade do árbitro de shard, se houver.
Pule esta etapa se o conjunto de réplicas não incluir um árbitro.
Faça downgrade do membro árbitro do cluster fragmentado:
Desligue o membro.
Para desligar o árbitro, utilize mongosh
para se conectar ao árbitro e execute o seguinte comando:
db.adminCommand( { shutdown: 1 } )
Exclua o conteúdo da linguagem de definição de dados (DDL) do árbitro.
Para encontrar a linguagem de definição de dados (DDL) do árbitro mongod
, verifique a configuração do storage.dbPath
ou a opção de linha de comando --dbpath
.
Execute o seguinte comando:
rm -rf /path/to/mongodb/datafiles/*
Aguarde até que o membro entre no ARBITER
estado .
Antes de fazer o downgrade do primary, aguarde até que o nó se recupere para o estado ARBITER
. Para verificar o estado do membro, use o método rs.status()
em mongosh
.
Faça downgrade do fragmento primário.
Rebaixe o primário.
Em mongosh
, use rs.stepDown()
para descer a primária e iniciar uma eleição para uma nova primária:
rs.stepDown()
Desligue o antigo membro primary.
Para desligar o antigo primário, conecte-se ao sistema usando mongosh
e execute o seguinte comando:
db.adminCommand( { shutdown: 1 } )
Reinicie mongod
o 5 com o .0 binário.
Para iniciar um processo do mongod
, execute o seguinte comando:
mongod --dbpath </path-to-mongodb-datafiles>
Faça downgrade dos servidores de configuração.
Faça o downgrade dos membros secundários do shard do conjunto de réplicas de servidores de configuração (CSRS) um de cada vez:
Aguarde até que o membro entre no SECONDARY
estado .
Antes de fazer o downgrade do próximo secundário, aguarde até que o membro se recupere para o estado SECONDARY
. Para verificar o estado do membro, use o método rs.status()
em mongosh
.
Faça downgrade do servidor de configuração primário.
Rebaixe o primário.
Em mongosh
, execute rs.stepDown()
para descer a primária e iniciar uma eleição para uma nova primária:
rs.stepDown()
Desligue o antigo membro primary.
Para desligar o antigo primário, conecte-se ao sistema usando mongosh
e execute o seguinte comando:
db.adminCommand( { shutdown: 1 } )
Reinicie mongod
o 5 com o .0 binário.
Para iniciar um processo do mongod
, execute o seguinte comando:
mongod --dbpath </path-to-mongodb-datafiles>
Reabilitar o balanceador.
Após fazer o downgrade de todos os componentes do cluster fragmentado, conecte a um mongos
e execute o seguinte comando para reativar o balanceador:
sh.startBalancer()
O método sh.startBalancer()
também habilita a divisão automática para o cluster fragmentado.