Definição
addShardToZoneAssocia um fragmento a uma zona . O MongoDB associa este fragmento à zona fornecida. Os chunks cobertos pela zona são atribuÃdos a shards associados à zona.
Dica
In
mongosh, this command can also be run through thesh.addShardToZone()helper method.Helper methods are convenient for
mongoshusers, but they may not return the same level of information as database commands. In cases where the convenience is not needed or the additional return fields are required, use the database command.
You can only run addShardToZone on the admin database from a mongos instance.
Compatibilidade
Esse comando está disponÃvel em implantações hospedadas nos seguintes ambientes:
- MongoDB Atlas: The fully managed service for MongoDB deployments in the cloud
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
Sintaxe
O comando tem a seguinte sintaxe:
db.adminCommand( { addShardToZone: <string>, zone: <string> } )
Campos de comando
O comando utiliza os seguintes campos:
Campo | Tipo | Descrição |
|---|---|---|
string | The name of the shard to associate with the zone. | |
string | The name of the zone to associate with the shard. |
mongosh provides the helper method sh.addShardToZone().
Comportamento
Você pode associar uma zona a vários shards, e um shard pode se associar a várias zonas.
Consulte a página do manual de zonas para obter mais informações sobre zonas em um cluster fragmentado.
Faixas
O MongoDB ignora efetivamente as zonas que não têm pelo menos um intervalo de valores de chave de fragmento associados a ele.
Para associar um intervalo de valores de chave de fragmento a uma zona, use o reconhecimento de data center updateZoneKeyRange ou o assistente de shell sh.updateZoneKeyRange() .
você pode executar o comando de banco de dados do updateZoneKeyRange e seus auxiliares sh.updateZoneKeyRange() e sh.addTagRange() em uma coleção não compartilhada ou uma coleção não existente.
Dica
Ao definir as zonas e as faixas de zonas antes de fragmentar uma collection vazia ou não existente, a operação de collection de shards cria chunks para as faixas de zonas definidas, bem como quaisquer chunks adicionais para cobrir todo a faixa dos valores da chave de shard e executa uma distribuição inicial de shards com base nas faixas de zonas. Essa criação e distribuição inicial de chunks permite uma configuração mais rápida da fragmentação por zonas. Após a distribuição inicial, o balancer gerenciará a distribuição de chunks dali para a frente.
Consulte Predefinir zonas e faixas de zona para uma collection vazia ou não existente para ver um exemplo.
Segurança
Para clusters fragmentados que impõem controle de acesso , você deve autenticar como um usuário cujos privilégios incluam:
updatena collectionshardsno banco de dadosconfig; ou, alternativamente,enableShardingno recurso do cluster .
The clusterAdmin or clusterManager built-in roles have the appropriate permissions for issuing addShardToZone. See the documentation page for Role-Based Access Control for more information.
Exemplo
O exemplo a seguir associa shard0000 Ã zona JFK :
db.adminCommand( { addShardToZone : "shard0000" , zone : "JFK" } )
Um shard pode se associar a várias zonas. O exemplo a seguir associa LGA a shard0000:
db.adminCommand( { addShardToZone : "shard0000" , zone : "LGA" } )
shard0000 associa-se à zona LGA e à zona JFK . Em um cluster balanceado, o MongoDB roteia as leituras e gravações cobertas por qualquer zona para shard0000 .