Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ / /

sh.moveCollection()

Nesta página

  • Definição
  • Sintaxe
  • Compatibilidade
  • Considerações
  • Requisitos
  • Exemplos
  • Saiba mais
sh.moveCollection(namespace, destination)

Move uma única coleção não fragmentada para umfragmento diferente. Execute sh.moveCollection() com uma instância mongos enquanto usa o banco de banco de dados admin.

Importante

Método mongosh

Esta página documenta um método mongosh. Esta não é a documentação de comandos de banco de dados nem drivers específicos de linguagem, como Node.js.

Para o comando do banco de dados, consulte o comando moveCollection.

Para drivers de API do MongoDB, consulte a documentação do driver do MongoDB específica da linguagem.

sh.moveCollection() tem a seguinte sintaxe:

sh.moveCollection( "<database>.<collection>" )

sh.moveCollection() recebe os seguintes parâmetros:

Parâmetro
Tipo
Descrição
namespace
string
Banco de dados e nome da coleção a ser movida.
toShard
string
Opcional. ID do fragmento do destinatário. Se você não especificar um fragmento para o qual mover, o balanceador moverá a coleção para o fragmento menos carregado.

Esse método está disponível em implantações hospedadas nos seguintes ambientes:

  • MongoDB Atlas: o serviço totalmente gerenciado para implantações MongoDB na nuvem

Observação

Este comando não está disponível no Atlas Nível Compartilhado.

  • 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

Antes de mover sua collection, certifique-se de atender aos seguintes requisitos:

  • Seu aplicação pode tolerar um período de dois segundos em que a collection afetada bloqueia as gravações. Durante o período em que as gravações são bloqueadas, seu aplicação experimenta um aumento na latência.

  • Seu banco de dados atende aos seguintes requisitos de recursos:

    • Verifique se o fragmento para o qual você está movendo a collection tem espaço de armazenamento suficiente para a collection e seus índices. O fragmento de destino exige pelo menos ( Collection storage size + Index Size ) * 2 bytes disponíveis.

    • Certifique-se de que sua capacidade de E/S esteja abaixo de 50%.

    • Certifique-se de que a carga da CPU esteja abaixo de 80%.

Importante

Esses requisitos não são exigidos pelo banco de dados. Uma falha na alocação de recursos suficientes pode resultar em:

  • o banco de dados ficar sem espaço e desligando

  • redução do desempenho

  • a operação demora mais que o esperado

Se o seu aplicação tiver períodos com menos tráfego, execute esta operação na coleção durante esse período, se possível.

Este exemplo move uma collection não fragmentada chamada inventory no banco de banco de dados app para o shard shard02 .

sh.moveCollection( "app.inventory", "shard02" )

Para obter uma lista dos IDs de shard disponíveis, execute sh.status(). Para obter detalhes, consulte sh.status() Saída.

Voltar

sh.moveChunk