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.
Transição entre um shard de configuração e um servidor de configuração dedicado.
Cada cluster fragmentado requer um servidor de configuração. Um shard de configuração se qualifica como um servidor de configuração. Use um shard de configuração em vez de um servidor de configuração dedicado para reduzir o número de nós necessários e simplificar seu sistema.
Um servidor de configuração dedicado requer seu próprio conjunto de réplicas. Um shard de configuração combina a role de servidor de configuração com um conjunto de réplicas de shard existente, portanto seu cluster precisa de menos conjuntos de réplicas e custa menos. 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 . Algumas funcionalidades exigem esse isolamento. Para saber qual sistema se adequa ao seu cluster, consulte Casos de uso de config shard.
O comando transitionFromDedicatedConfigServer configura um servidor de configuração dedicado para ser executado como um shard de configuração.
Antes de executar transitionFromDedicatedConfigServer, 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( { transitionFromDedicatedConfigServer: 1 } )
Comportamento
O comando transitionFromDedicatedConfigServer adiciona o servidor de configuração como um shard no cluster. Internamente, o transitionFromDedicatedConfigServer executa o comando addShard.
Você pode confirmar que um cluster fragmentado usa um fragmento de configuração usando um dos seguintes métodos:
Execute o método
sh.isConfigShardEnabled()emmongosh. Se a saÃdash.isConfigShardEnabled()contiverenabled: true, o cluster utilizará um fragmento de configuração. Se a saÃda contiverenabled: false, o cluster não usará um fragmento de configuração.Execute o comando
listShardsno banco de dados doadminenquanto conectado a ummongose inspecione a saÃda de um documento onde o_idestá configurado para"config". Se a saÃdalistShardsnão contiver um documento em que_idesteja definido como"config", o cluster não usará um fragmento de configuração.
Para obter detalhes, consulte Confirmar uso do Config Shard.
Se você precisar fazer downgrade da versão de compatibilidade do recurso abaixo de 8.0, primeiro execute o comando transitionToDedicatedConfigServer . Para obter detalhes de downgrade, consulte Downgrade Feature Compatibility Version.
Controle de acesso
Se o controle de acesso estiver habilitado, o comando transitionFromDedicatedConfigServer exigirá a ação de autorização transitionFromDedicatedConfigServer para o cluster:
{ resource: { cluster : true }, actions: [ "transitionFromDedicatedConfigServer" ] }
A função clusterManager tem ação de autorização transitionFromDedicatedConfigServer 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 servidor de configuração dedicado para ser executado como um shard de configuração:
db.adminCommand( { transitionFromDedicatedConfigServer: 1 } )