Faça downgrade do conjunto de réplicas 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 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.
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.
Controle de acesso
Se o seu conjunto de réplicas tiver o controle de acesso ativado, os privilégios de usuário de downgrade deverão incluir privilégios para listar e gerenciar índices nos bancos de dados. Um usuário com papel do root
tem os privilégios exigidos.
Pré-requisitos
Antes de iniciar o procedimento de downgrade, você deve concluir as etapas de pré-requisito a seguir.
Criar cópia de segurança
Opcional, mas recomendado. Crie uma cópia de segurança do seu banco de dados.
Para saber como criar uma cópia de segurança, consulte Métodos de cópia de segurança para um sistema autogerenciado.
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.
Downgrade Feature Compatibility Version (fCV)
Para fazer downgrade do FCV do seu conjunto de réplicas:
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
.Use
mongosh
para se conectar ao seu primário.Faça o downgrade de
featureCompatibilityVersion
para"5.0"
.db.adminCommand( { setFeatureCompatibilityVersion: "5.0" } ) O comando
setFeatureCompatibilityVersion
executa gravações em uma collection interna do sistema e é idempotente. Se o comando não for concluído com êxito, tente novamente o comando no primary.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 } ) 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 conjunto de réplicas, incluindo 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.
Faça downgrade dos membros secundários do conjunto de réplicas.
Faça o downgrade de cada membro secundário do conjunto de réplicas, um de cada vez:
Desligue o membro.
Para encerrar o processo
mongod
, usemongosh
para se conectar ao secundário e execute o seguinte comando:db.adminCommand( { shutdown: 1 } ) Reinicie o membro.
Para iniciar um processo do
mongod
, execute o seguinte comando:mongod --dbpath </path-to-data-folder> Para saber mais sobre como iniciar um processo do
mongod
, veja Iniciar processos domongod
.Aguarde o membro entrar no estado
SECONDARY
.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étodors.status()
emmongosh
.Depois que o membro estiver no estágio
SECONDARY
, faça downgrade do próximo secundário.
Faça downgrade do membro do conjunto de réplicas do árbitro, se houver.
Pule esta etapa se o conjunto de réplicas não incluir um árbitro.
Faça downgrade do membro árbitro do conjunto de réplicas:
Desligue o membro.
Para desligar o arbiter, utilize
mongosh
para conectar ao arbiter 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 dostorage.dbPath
ou a opção de linha de comando--dbpath
.Execute o seguinte comando:
rm -rf /path/to/mongodb/datafiles/* Reinicie o árbitro.
Para iniciar um processo do
mongod
, execute o seguinte comando:mongod --dbpath </path-to-mongodb-datafiles> Para saber mais sobre como iniciar um processo do
mongod
, veja Iniciar processos domongod
.Aguarde o membro entrar no estado
ARBITER
.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étodors.status()
emmongosh
.
Faça o downgrade do primary.
Rebaixe o primário.
Em
mongosh
, users.stepDown()
para reduzir o primário e forçar o procedimento de failover normal.rs.stepDown() Verifique se o primário foi desativado.
Execute o seguinte comando:
rs.status() Verifique se o primário foi desativado e se outro membro assume o estado
PRIMARY
.Substitua e reinicie o antigo
mongod
primário.Desligue o membro.
Para executar um desligamento do primário, use o
mongosh
para se conectar ao primário e executar o seguinte comando:db.adminCommand( { shutdown: 1 } ) Reinicie o
mongod
com o binário 5.0 .Para iniciar um processo do
mongod
, execute o seguinte comando:mongod --dbpath </path-to-mongodb-datafiles> Para saber mais sobre como iniciar um processo do
mongod
, veja Iniciar processos domongod
.