Definição
Novidades na versão 8.0.
A partir do MongoDB 8.0, você pode:
Configure um servidor de configuração para armazenar os dados do seu aplicação , além dos metadadoscluster fragmentado . Um servidor de configuração que armazena dados de aplicação é chamado de shard de configuração.
Faça a transição de um servidor de configuração entre um shard de configuração e um servidor de configuração dedicado.
Um cluster exige um servidor de configuração, mas ele pode ser um fragmento de configuração em vez de um servidor de configuração dedicado . Usar um shard de configuração reduz o número de nós necessários e pode simplificar seu sistema.
Se o seu aplicação tiver requisitos rigorosos de disponibilidade e resiliência, considere implementar um servidor de configuração dedicado. Um servidor de configuração dedicado oferece isolamento, recursos dedicados e desempenho consistente para operações críticas de cluster.
O comando transitionToDedicatedConfigServer configura um shard de configuração para ser executado como um servidor de configuração dedicado. O comando faz com que o balanceador priorize a movimentação dos chunks do shard de configuração para outros shards no cluster.
Antes de executar transitionToDedicatedConfigServer, conecte-se a mongos e use o banco de banco de dados admin.
O cluster fragmentado deve ter featureCompatibilityVersion definido para pelo menos 8.0.
Sintaxe
Sintaxe do comando:
db.adminCommand( { transitionToDedicatedConfigServer: 1 } )
Comportamento
O comando transitionToDedicatedConfigServer move os dados do aplicação do shard de configuração para os outros shards no cluster da mesma maneira que o comando removeShard move os dados.
Internamente, o transitionToDedicatedConfigServer executa o comando removeShard . transitionToDedicatedConfigServer retorna a mesma resposta que removeShard. A resposta após uma movimentação de dados bem-sucedida contém state: "completed". Para obter detalhes e exemplos completos de respostas, consulte Exemplo de removeShard. Revise a documentação do removeShard antes de executar o transitionToDedicatedConfigServer para entender como ela pode afetar seu sistema.
Se você executar transitionToDedicatedConfigServer duas vezes e os dados do fragmento estiverem sendo movidos para outros shards, a segunda execução do transitionToDedicatedConfigServer retornará o status atual da movimentação de dados. transitionToDedicatedConfigServer retorna a mesma resposta que removeShard.
Após transitionToDedicatedConfigServer concluir a transferência de dados, o servidor de servidor de configuração é um servidor de configuração dedicado e não é mais um fragmento de configuração.
Controle de acesso
Se o controle de acesso estiver habilitado, o comando transitionToDedicatedConfigServer exigirá a ação de autorização transitionToDedicatedConfigServer para o cluster:
{ resource: { cluster : true }, actions: [ "transitionToDedicatedConfigServer" ] }
A função clusterManager tem ação de autorização transitionToDedicatedConfigServer e pode ser atribuída a um usuário.
O exemplo a seguir atribui a função clusterManager a um usuário chamado testUser:
db.grantRolesToUser( "testUser", [ "clusterManager" ] )
Exemplo
O exemplo a seguir configura um shard de configuração para ser executado como um servidor de configuração dedicado:
db.adminCommand( { transitionToDedicatedConfigServer: 1 } )
Para obter detalhes, consulte Fazer Downgrade da Versão de Compatibilidade de Funcionalidades.