addShardToZone
Definição
addShardToZone
Associates a shard with a zona. MongoDB associates this shard with the given zone. Chunks that are covered by the zone are assigned to shards associated with the zone.
Dica
Em
mongosh
, esse comando também pode ser executado por meio do método auxiliarsh.addShardToZone()
.Os métodos auxiliares são práticos para os usuários
mongosh
, mas podem não retornar o mesmo nível de informações que os comandos do banco de dados. Nos casos em que a praticidade não for necessária ou os campos de retorno adicionais forem necessários, use o comando de banco de dados.
Você só pode executar addShardToZone
no banco de dados admin
a partir de uma instância mongos
.
Compatibilidade
Esse comando está disponível em implantações hospedadas nos seguintes ambientes:
MongoDB Atlas: o serviço totalmente gerenciado para implantações do MongoDB na nuvem
Importante
Este comando não é suportado em instâncias sem servidor. Para obter mais informações, consulte Comandos não suportados.
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 zona. | |
string | O nome da zona a ser associada ao shard. |
mongosh
fornece o método auxiliar sh.addShardToZone()
.
Comportamento
Você pode associar uma zona a vários shards, e um shard pode se associar a várias zonas.
See the zona manual page for more information on zones in a sharded cluster.
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.
To associate a range of shard key values with a zone, use the
updateZoneKeyRange
database command, or the
sh.updateZoneKeyRange()
shell helper.
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:
update
na collectionshards
no banco de dadosconfig
; ou, alternativamente,enableSharding
no recurso do cluster .
The clusterAdmin
or clusterManager
built-in roles have
the appropriate permissions for issuing addShardToZone
. See the
documentation page for Controle de acesso com base em função for
more information.
Exemplo
The following example associates shard0000
with zone 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
está associado à zona LGA
e à zona JFK
. Em um cluster balanceado, o MongoDB roteia as leituras e gravações cobertas por qualquer zona para shard0000
.