Fazer downgrade 4.4 Autônomo para 4.2
Nesta página
Antes de tentar qualquer downgrade, familiarize-se com o conteúdo deste documento.
Caminho de downgrade
Se você precisar fazer o downgrade do 4.4, faça o downgrade para a versão de correção mais recente do 4.2.
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 o downgrade de uma série 4.4 para uma implantação da série 4.2. No entanto, fazer outro downgrade da implantação da série 4.2 para uma implantação da série 4.0 não é suportado.
Aviso
Downgradefloor
Se você precisar fazer o downgrade da versão 4.4, faça o downgrade para a 4.2.6 ou uma versão posterior. Você não pode fazer o downgrade para a 4.2.5 ou uma versão anterior.
Criar cópia de segurança
Opcional, mas recomendado. Crie uma cópia de segurança do seu banco de dados.
Controle de acesso
Se seu sistema 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
Para reduzir de 4.4 para 4.2, você deve remover feições incompatíveis que são persistentes e/ou atualizar configurações incompatíveis. Esses incluem:
1. Comprimento do namespace
Começando no MongoDB 4.4:
O limite de comprimento do namespace para coleções e visualizações não fragmentadas é de 255 bytes e 235 bytes para coleções fragmentadas. Para uma coleção ou visualização, o namespace inclui o nome do banco de dados, o separador de ponto (.
) e o nome da coleção/visualização (por exemplo, <database>.<collection>
).
Antes de fazer o downgrade, resolva quaisquer collections ou visualizações com namespaces que excedam o limite de comprimento do namespace de 120 bytes para a versão de compatibilidade de recursos (fCV) 4.2.
Para determinar se você tem alguma collection ou visualização com namespace que excedem o limite de 120 bytes, conecte o shell mongo
à instância mongod
e execute:
db.adminCommand("listDatabases").databases.forEach(function(d){ let mdb = db.getSiblingDB(d.name); mdb.getCollectionInfos( ).forEach(function(c){ namespace = d.name + "." + c.name namespacelenBytes = encodeURIComponent(namespace).length if (namespacelenBytes > 120) { print (c.type.toUpperCase() + " namespace exceeds 120 bytes:: " + namespace ) } } ) })
Se algum namespace de visualização ou collection exceder 120 bytes, antes de fazer o downgrade do FCV:
Renomeie a collection usando o comando
renameCollection
.Para visualizações, use
db.createView()
para recriar a visualização usando um nome mais curto e, em seguida, solte a visualização original.
2. Downgrade versão de compatibilidade do recurso (FCV)
Para fazer downgrade do featureCompatibilityVersion
do seu autônomo:
Conecte uma shell do
mongo
à instância domongod
.Faça o downgrade de
featureCompatibilityVersion
para"4.2"
.db.adminCommand({setFeatureCompatibilityVersion: "4.2"}) O comando
setFeatureCompatibilityVersion
executa grava em uma coleção de sistema interno e é idempotente. Se, por qualquer motivo, o comando não for concluído com êxito, tente novamente o comando na instânciamongod
.
3. Remover as funcionalidades persistentes do FCV 4.4
As etapas a seguir serão necessárias somente se fCV tiver sido definido como "4.4"
.
Remova todas as funcionalidades persistentes do 4.4 que são incompatíveis com o 4.2. Esses incluem:
- Índices compostos com hash
Remova todos os índices compostos com hash.
Use
db.collection.getIndexes()
para identificar qualquer índice composto com hash em uma collection e usedb.collection.dropIndex()
para remover esses índices.
4. Remover os Recursos 4.4
Remova todas as feições persistentes que utilizam feições do 4.4. Isso inclui, mas não está limitado a:
Se houver definições de visualização que incluam operadores 4.4, como
$unionWith
ou$function
. Consulte também Novos Operadores de Agregação.
Procedimento
Aviso
Antes de prosseguir com o procedimento de downgrade, certifique-se de que os pré-requisitos foram concluídos.
Baixe os binários 4.2 mais recentes.
Utilizando um gerenciador de pacotes ou um download manual, obtenha a versão mais recente na série 4.2. Se estiver usando um gerenciador de pacotes, adicione um novo repositório para os binários 4.2 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 4.4, faça o downgrade para a versão de correção mais recente do 4.2.
Desligue a mongod
instância .
Para encerrar o processo mongod
forma limpa, conecte um shell mongo
à instância e execute:
db.adminCommand( { shutdown: 1 } )
Um desligamento limpo de um mongod
conclui todas as operações pendentes, transfere todos os dados para arquivos de dados e fecha todos os arquivos de dados.
Reinicie com o mais 4 recente.2 mongod
instância .
Substitua o binário 4.4 pelo binário 4.2 mongod
baixado e reinicie.