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

setFeatureCompatibilityVersion (comando de banco de dados)

setFeatureCompatibilityVersion

Enables or disables the features that persist data incompatible with earlier versions of MongoDB. You can only issue the setFeatureCompatibilityVersion against the admin database.

To learn what the feature compatibility version is and how it supports downgrades, see MongoDB Versions and Upgrade Paths.

Aviso

Habilitar funcionalidades incompatíveis 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.

Após a atualização, permita que sua implantação seja executada sem habilitar recursos incompatíveis com versões anteriores por um período de burn-in. Habilite esses recursos somente depois de ter certeza de que um downgrade é improvável.

Esse comando está disponível em implantações hospedadas nos seguintes ambientes:

  • MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB

  • MongoDB Community: uma versão com código disponível, de uso gratuito e autogerenciada do MongoDB

Alterado na versão 8.3.

O comando tem a seguinte sintaxe:

db.adminCommand(
{
setFeatureCompatibilityVersion: <version>,
confirm: true,
writeConcern: { wtimeout: <timeout> },
dryRun: <boolean>
}
)

O comando setFeatureCompatibilityVersion usa os seguintes campos:

Obrigatório

Os valores possíveis para version são:

Versão
Descrição

"8.3"

Disponível no MongoDB 8.3 Sistemas

Habilita os 8.3 recursos que persistem dados incompatíveis com o MongoDB 8.2.

"8.2"

Disponível no MongoDB 8.2 e MongoDB 8.3 Implantações

A partir do MongoDB 8.3, você pode fazer downgrade da versão de compatibilidade do recurso de "8.3" para "8.2".

"8.0"

Disponível no MongoDB 8.0 Sistemas

Habilita os 8.0 recursos que persistem dados incompatíveis com o MongoDB 7.0.

"7.0"

Disponível nos Sistemas do MongoDB 7.0

Habilita os recursos 7.0 que persistem dados incompatíveis como MongoDB 6.0.

Obrigatório

Novidades na versão 7.0.

Defina como true para confirmar a alteração da compatibilidade do recurso e permitir que a operação continue.

Se você omitir o parâmetro confirm ou definir confirm como um valor diferente de true, o comando falhará e retornará um aviso sobre a modificação da feature compatibility version.

Opcional

O writeConcern especifica o valor de preocupação de gravação wtimeout em milissegundos:

  • O período que o primary aguarda a confirmação da maioria dos nós do conjunto de réplicas. Se o reconhecimento não for recebido no período, a operação falhará.

  • O padrão é 60000 milissegundos. Utilize um período mais longo se os membros secundários do conjunto de réplicas tiverem um atraso que exceda o padrão wtimeout.

Observação

  • Para um standalone, execute o comando na instância do standalone mongod.

  • Para um conjunto de réplicas, execute o comando no primary. A maioria dos nós portadores de dados deve estar disponível.

  • Para um cluster fragmentado, execute o comando em uma instância do mongos.

Opcional

Se definido para true, o MongoDB simula uma atualização ou downgrade da versão de compatibilidade do recurso. Se o cluster contiver dados incompatíveis, a operação falhará com um erro.

Novidades na versão 8.3.

If you must downgrade the feature compatibility version below 8.0, you must first run the transitionToDedicatedConfigServer command. For downgrade details, see Downgrade Feature Compatibility Version.

Se você tentar atualizar a versão de compatibilidade do recurso de um cluster que contenha dados incompatíveis com a versão atualizada, você receberá um erro CannotUpgrade. Dados incompatíveis com versões futuras podem se referir a quaisquer dados em seu cluster que dependem de um recurso que foi removido na versão de destino.

Quando esse erro ocorre:

  • Modifique os dados do cluster para remover recursos incompatíveis com versões futuras e, em seguida, execute novamente o comando setFeatureCompatibilityVersion com a versão atualizada para definir a versão de compatibilidade do recurso para a versão atualizada.

  • Execute o comando setFeatureCompatibilityVersion com a versão com downgrade original para configurar a versão de compatibilidade do recurso de volta para a versão original.

    Importante

    A configuração da versão de compatibilidade do recurso para a versão original interrompe o procedimento de atualização e reverte a versão de compatibilidade do recurso para a versão desatualizada. O cluster não retorna ao seu estado antes do início da atualização da versão de compatibilidade do recurso.

    Se a atualização da versão de compatibilidade do recurso confirmar que não há dados incompatíveis com versões futuras, mas, de outra forma, parar ou falhar, quaisquer tentativas subsequentes de downgrade da versão de compatibilidade do recurso também falharão com uma mensagem de erro. Você deve concluir a atualização da versão de compatibilidade do recurso antes de poder desatualizar a versão de compatibilidade do recurso.

Se você tentar desatualizar a versão de compatibilidade do recurso de um cluster que contenha dados incompatíveis com versões anteriores na versão desatualizada, receberá um erro CannotDowngrade. Dados incompatíveis com versões anteriores podem se referir a quaisquer dados em seu cluster que dependem de um recurso que não está disponível na versão de destino.

Quando esse erro ocorre:

  • Modifique os dados do cluster para remover funcionalidades incompatíveis com versões anteriores e, em seguida, execute novamente o comando setFeatureCompatibilityVersion com a versão rebaixada para definir o fCV para a versão rebaixada.

  • Execute o comando setFeatureCompatibilityVersion com a versão atualizada original para configurar o fCV de volta para a versão original.

    Importante

    A configuração da versão de compatibilidade do recurso para a versão original interrompe o procedimento de downgrade e reverte a versão de compatibilidade do recurso para a versão atualizada. O cluster não retorna ao seu estado anterior ao início do downgrade da versão de compatibilidade do recurso.

    Se a desatualização da versão de compatibilidade do recurso confirmar que não há dados incompatíveis com versões anteriores, mas, de outra forma, parar ou falhar, qualquer tentativa subsequente de atualização da versão de compatibilidade do recurso também falhará com uma mensagem de erro. Você deve concluir a desatualização da versão de compatibilidade do recurso antes de poder atualizar a versão de compatibilidade do recurso.

A partir de 8.3, você pode fazer o downgrade da versão de compatibilidade do recurso da sua implantação para a versão secundária imediatamente anterior.

Para saber mais, consulte Downgrade 8.3 para 8.2.

Certain background operations may prevent execution of setFeatureCompatibilityVersion. Use currentOp to identify any ongoing operations.

Importante

A partir do MongoDB 9.0, se houver uma construção de índice em andamento em qualquer coleção no cluster, setFeatureCompatibilityVersion falha antecipadamente com um erro BackgroundOperationInProgressForNamespace e não faz nenhuma alteração no catálogo. A versão de compatibilidade do recurso permanece inalterada. Uma construção de índice que começa após a verificação ser executada ainda pode fazer com que o comando falhe mais tarde. Para tentar novamente o comando, primeiro, aguarde a conclusão da construção de índice ou aborte-a.

Se você alterar a versão de compatibilidade do recurso durante uma sincronização inicial, a sincronização poderá falhar com um erro OplogOperationUnsupported ao reproduzir entradas na fase de aplicativo oplog. A próxima sincronização é bem-sucedida porque a fase de operação não repete mais a operação.

Implantações
featureCompatibilityVersion

Para o novo 8.3 sistemas

"8.3"

Para implantações do 8.3 atualizados do 8.2

"8.2" until you setFeatureCompatibilityVersion to "8.3".

Para o novo 8.0 sistemas

"8.0"

Para implantações do 8.0 atualizados do 7.0

"7.0" until you setFeatureCompatibilityVersion to "8.0".

Para novas implantações do 7.0

"7.0"

Para sistemas 7.0 atualizados do 6.0

"6.0" until you setFeatureCompatibilityVersion to "7.0".

Este comando deve executar gravações em uma coleção interna do sistema. Se o comando não for concluído com êxito, você poderá tentar novamente com segurança. A operação é idempotente.

A partir do MongoDB 6.0, se você precisar fazer downgrade da versão de compatibilidade de funcionalidades, certifique-se de desabilitar a replicação de cluster para cluster e o bloqueio de escrita do usuário.

  1. Se você ativou a replicação de cluster para cluster, desative-a.

  2. Se você habilitou o bloqueio de escrita do usuário, desative-o:

    db.runCommand( { setUserWriteBlockMode: 1, global: false } )
  3. Aguarde a conclusão do comando anterior.

  4. Downgrade the feature compatibility version using setFeatureCompatibilityVersion.

Para obter mais informações sobre a sincronização do Cluster-to-Cluster do MongoDB, consulte a documentação.

Os árbitros não replicam a collection admin.system.version. Por esse motivo, os árbitros sempre têm uma versão de compatibilidade de recursos igual à versão de downgrade do binário, independentemente do valor fCV do conjunto de réplicas.

Por exemplo, um árbitro em um cluster do MongoDB 5.0 tem um valor FCV de 4.4.

Para visualizar o featureCompatibilityVersion para uma instância do mongod, execute o comando getParameter em uma instância do mongod:

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

A saída se assemelha a:

{
featureCompatibilityVersion: { version: '5.0' },
ok: 1,
'$clusterTime': {
clusterTime: Timestamp({ t: 1660318752, i: 5 }),
signature: {
hash: Binary(Buffer.from("ce0cff3621e9b089fa6d8e9a1e1efc1a1ff15dab", "hex"), 0),
keyId: Long("7129893797260951557")
}
},
operationTime: Timestamp({ t: 1660318752, i: 5 })
}

Observação

A operação é indefinida nas instâncias do mongos.

Em um cluster fragmentado com controle de acesso habilitado, você deve se conectar ao shard como um usuário local do shard para executar o comando.

Para habilitar os recursos do8.0 que persistem dados incompatíveis com o MongoDB 7.0, configure a compatibilidade do recurso para "8.0" na implantação do MongoDB 8.0:

Observação

Run the setFeatureCompatibilityVersion command against the admin database.

  • Para um standalone, execute o comando na instância do standalone mongod.

  • Para um conjunto de réplicas, execute o comando no primary. A maioria dos nós portadores de dados deve estar disponível.

  • Para um cluster fragmentado, execute o comando em uma instância do mongos.

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

Para desabilitar os recursos do8.0 que persistem dados incompatíveis com o MongoDB 7.0, configure a compatibilidade do recurso para "7.0" na implantação do MongoDB 8.0:

Observação

Run the setFeatureCompatibilityVersion command against the admin database.

  • Para um standalone, execute o comando na instância do standalone mongod.

  • Para um conjunto de réplicas, execute o comando no primary. A maioria dos nós portadores de dados deve estar disponível.

  • Para um cluster fragmentado, execute o comando em uma instância do mongos.

  • "7.0" featureCompatibilityVersion é suportado nas implantações MongoDB 7.0 e MongoDB 8.0.
db.adminCommand(
{
setFeatureCompatibilityVersion: "7.0",
confirm: true
}
)

Se você executar esse comando como parte do processo de downgrade do MongoDB 8.0 para o MongoDB 7.0, também deverá remover todas as funcionalidades persistentes que são incompatíveis com 7.0. Consulte os procedimentos de downgrade apropriados.

Para habilitar as funcionalidades do 7.0 que persistem dados incompatíveis com MongoDB 6.0, configure a compatibilidade da funcionalidade para "7.0" no sistema do MongoDB 7.0:

Observação

Run the setFeatureCompatibilityVersion command against the admin database.

  • Para um standalone, execute o comando na instância do standalone mongod.

  • Para um conjunto de réplicas, execute o comando no primary. A maioria dos nós portadores de dados deve estar disponível.

  • Para um cluster fragmentado, execute o comando em uma instância do mongos.

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

Para desabilitar as funcionalidades da versão 7.0 que persistem em dados incompatíveis com o MongoDB 6.0, defina a compatibilidade de funcionalidades como "6.0" no sistema do MongoDB 7.0:

Observação

Run the setFeatureCompatibilityVersion command against the admin database.

  • Para um standalone, execute o comando na instância do standalone mongod.

  • Para um conjunto de réplicas, execute o comando no primary. A maioria dos nós portadores de dados deve estar disponível.

  • Para um cluster fragmentado, execute o comando em uma instância do mongos.

  • "6.0" featureCompatibilityVersion é suportado somente nos sistemas MongoDB 6.0 e MongoDB 7.0.
db.adminCommand(
{
setFeatureCompatibilityVersion: "6.0",
confirm: true
}
)

Se executar como parte do processo de downgrade do MongoDB 7.0 para MongoDB 6.0, você também deverá remover todas as funcionalidades persistentes que são incompatíveis com o 6.0. Consulte os procedimentos de downgrade apropriados.

O exemplo a seguir define o campo de wtimeout de write concern opcional como 5000 (5 segundos).

Observação

Run the setFeatureCompatibilityVersion command against the admin database.

  • Para um standalone, execute o comando na instância do standalone mongod.

  • Para um conjunto de réplicas, execute o comando no primary. A maioria dos nós portadores de dados deve estar disponível.

  • Para um cluster fragmentado, execute o comando em uma instância do mongos.

db.adminCommand( {
setFeatureCompatibilityVersion: "5.0",
writeConcern: { wtimeout: 5000 }
} )

If you experience startup issues after setting your feature compatibility version, contact MongoDB Support for assistance.

Avalie esta página