Menu Docs

addShardToZone

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 auxiliar sh.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 .

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

O comando tem a seguinte sintaxe:

db.adminCommand(
{
addShardToZone: <string>,
zone: <string>
}
)

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().

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.

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.

Para clusters fragmentados que impõem controle de acesso , você deve autenticar como um usuário cujos privilégios incluam:

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.

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 .