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 aplicativo, além dos metadados usuais do cluster fragmentado. Um servidor de configuração que armazena dados do aplicativo é chamado de fragmento 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.
Um shard de configuração custa menos do que um servidor de configuração dedicado porque um servidor de configuração dedicado é executado como seu próprio conjunto de réplicas. Um shard de configuração combina a role de servidor de configuração em um conjunto de réplicas de shard existente, portanto, seu cluster precisa de um conjunto de réplicas em vez de dois. O uso de um shard de configuração não tem impacto mensurável no desempenho em contagens baixas de shard. Um servidor de configuração dedicado isola os metadados do cluster dos dados do aplicação , que certos recursos exigem. Para saber qual sistema se adequa ao seu cluster, consulte Casos de uso de config shard.
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.