A partir do MongoDB 8.0, você pode configurar um servidor de configuração de configuração para armazenar os dados do aplicação , além dos metadados usuais do cluster fragmentado . Um nó mongod que oferece funcionalidade de servidor de servidor de configuração de shard é chamado de shard de configuração. Um nó do mongod que executa como um --configsvr autônomo sem funcionalidade de servidor de fragmento é chamado de servidor de configuração dedicado.
Um cluster fragmentado deve ter um servidor de configuração, mas pode ser um shard de configuração ( servidor de configuração incorporado) ou 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 cluster de shard de configuração também é chamado de cluster de servidor de configuração incorporado. Você não pode usar o mesmo servidor de configuração para vários clusters fragmentados.
Casos de uso
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 função de servidor de configuração em um conjunto de réplicas de um shard existente, para que seu cluster precise 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 baixas contagens de shard. Um servidor de configuração dedicado isola os metadados do cluster dos dados do aplicativo, o que certos recursos exigem.
Use um servidor de configuração dedicado se você usar um ou mais dos seguintes recursos:
Queryable Encryption collections
Queryable backups (on-prem)
No MongoDB Atlas, um cluster faz a transição automática de um shard de configuração para um servidor de configuração dedicado quando o cluster tem mais de cinco shards.
Comportamento
Em um cluster de servidor de configuração incorporado, um fragmento de configuração será usado para armazenar metadados do cluster e dados do usuário. Ajuda a reduzir a complexidade de um cluster fragmentado .
Você pode armazenar dados de collection fragmentados e não fragmentados em seu shard de configuração. Ele tem todas as propriedades de um shard , além de atuar como servidor de configuração.
Confirmar uso do Config Shard
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.
O exemplo a seguir executa o comando listShards e tenta localizar um documento em que _id está definido como "config".
db.adminCommand({ listShards: 1 })["shards"].find(element => element._id === "config")
Neste exemplo, o documento retornado tem _id definido como "config", o que confirma que esse cluster usa um shard de configuração.
{ _id: "config", host: "configRepl/localhost:27018", state: 1, topologyTime: Timestamp({ t: 1732218671, i: 13 }), replSetConfigVersion: Long('-1') }
Comandos
Para configurar um servidor de configuração dedicado para ser executado como um shard de configuração, execute o comando transitionFromDedicatedConfigServer .
Para configurar um shard de configuração para ser executado como um servidor de configuração dedicado, execute o comando transitionToDedicatedConfigServer .