sh.addShardToZone()
Definição
sh.addShardToZone(shard, zone)
Novidades na versão 3.4: Associa um fragmento a umazona . O MongoDB associa este fragmento à zona fornecida. Os chunks cobertos pela zona são atribuídos a shards associados à zona.
Importante
Método mongosh
Esta página documenta um método
mongosh
. Esta não é a documentação para comandos de banco de dados nem drivers específicos de linguagem, como Node.js.Para o comando do banco de dados, consulte o comando
addShardToZone
.Para drivers de API do MongoDB, consulte a documentação do driver do MongoDB específica da linguagem.
Este método tem o seguinte parâmetro:
ParâmetroTipoDescriçãostring
O nome do shard ao qual associar a zona.
string
O nome da zona a ser associada ao shard.
Emita
sh.addShardToZone()
somente quando conectado a uma instânciamongos
.
Compatibilidade
Esse método 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 clusters M0, M2 e M5 . 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
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 clusters fragmentados.
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 da chave de fragmento a uma zona, use o método 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:
update
na collectionshards
no banco de dadosconfig
; ou, alternativamente,enableSharding
no recurso do cluster .
As roles embutidas clusterAdmin
ou clusterManager
sh.addShardToZone()
as permissões apropriadas para emitir . Consulte a página do manual Controle de acesso baseado em funções para obter mais informações.
Exemplo
O exemplo a seguir adiciona três zonas, NYC
, LAX
e NRT
, associando cada uma a um fragmento:
sh.addShardToZone("shard0000", "JFK") sh.addShardToZone("shard0001", "LAX") sh.addShardToZone("shard0002", "NRT")
Um shard pode se associar a várias zonas. O exemplo a seguir associa LGA
a shard0000
:
sh.addShardToZone("shard0000", "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
.