Menu Docs
Página inicial do Docs
/
Manual do banco de dados
/ / /

moveRange

Nesta página

  • Definição
  • Compatibilidade
  • Sintaxe
  • Campos de comando
  • Considerações
  • Exemplos
moveRange

Novidades na versão 6.0.

Move intervalos entre fragmentos. Execute o comando moveRange com uma instância do mongos ao utilizar o banco de banco de dados admin.

Dica

Em mongosh, esse comando também pode ser executado por meio do método auxiliar sh.moveRange().

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.

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

Observação

Este comando é aceito em todos os clusters do MongoDB Atlas. Para obter informações sobre o suporte do Atlas a todos os comandos, 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(
{
moveRange: <namespace>,
toShard: <ID of the recipient shard>,
min: <min key of the range to move>, // conditional
max: <max key of the range to move>, // conditional
forceJumbo: <bool>, // optional
writeConcern: <write concern>, // optional
secondaryThrottle: <bool> // optional
}
)

Observação

Use o comando listShards para recuperar o ID do shard do destinatário.

O comando utiliza os seguintes campos:

Campo
Tipo
Descrição

toShard

string

ID do shard do destinatário.

min

chave

Chave mínima do intervalo a ser movido. Obrigatório se você não especificar max.

Se você não especificar min, dada uma parte C em que max é o limite superior exclusivo de C ou C inclui a chave de shard max, min será determinado da seguinte maneira:

  • Se o tamanho dos dados do intervalo entre min(C) e max for menor que o tamanho da parte por collection ou o tamanho da parte padrão, o valor min da parte será selecionado como min = min(C).

  • Caso contrário, a chave min > min(C) onde min depende do tamanho do bloco configurado.

max

chave

Chave máxima do intervalo a ser movido. Obrigatório se você não especificar min.

Se você não especificar max, dada uma parte C incluindo a chave de shard min, max será determinado da seguinte maneira:

  • Se o tamanho dos dados do intervalo entre min e max(C) for menor que o tamanho do bloco por coleta ou o tamanho do bloco padrão, o máximo do bloco será selecionado como max = max(C) .

  • Caso contrário, a chave max < max(C) onde max depende do tamanho do bloco configurado.

booleano

Opcional.

Sinalizador que determina se o comando pode mover um intervalo muito grande para ser migrado. O intervalo pode ou não ser rotulado como jumbo.

  • Se true, o comando pode mover o intervalo.

  • Se false , o comando não pode mover o intervalo.

O padrão é false.

AVISO:

O comando moveRange com forceJumbo=true blocos escreve operações na collection.

Essa opção faz com que o shard migre chunks mesmo quando eles são maiores do que o tamanho configurado do chunk. A collection permanece indisponível para gravações durante a migração.

Para migrar esses grandes blocos sem esse longo período de bloqueio, consulte Intervalos de equilíbrio que excedem o limite de tamanho .

writeConcern

documento

Opcional.

Documento com a write concern.

O padrão é w: majority.

secondaryThrottle

booleano

Opcional.

  • Se true, cada movimentação de documento durante a migração de parte se propaga para pelo menos um secundário antes que o balanceador prossiga com o próximo documento. Isso é equivalente a uma referência de escrita de { w: 2 }.

    Use a opção writeConcern para especificar uma referência de escrita diferente.

  • Se false, o balanceador não aguarda a replicação em um secundário e, em vez disso, continua com o próximo documento.

Para obter mais informações, consulte Acelerador secundário.

A seção de migração de intervalo descreve como os intervalos se movem entre fragmentos no MongoDB.

Utilize o moveRange somente em cenários como:

  • uma ingestão inicial de dados

  • uma grande operação de importação em massa

Permita que o balanceador crie e equilibre intervalos em clusters fragmentados na maioria dos casos.

Veja também:

Os exemplos a seguir usam uma collection com:

  • chave de fragmento x

  • Tamanho do chunk configurado de 128 MB

  • Um chunk com limites: [x: 0, x: 100)

A tabela a seguir lista os resultados da configuração de min e max para vários valores:

min
max
Resultado

0

100

Move todos os documentos no intervalo para o fragmento do destinatário.

10

30

Cria três subintervalos:

  • [x: 0, x: 10)

  • [x: 10, x: 30)

  • [x: 30, x: 100)

Move todos os documentos em [x: 10, x: 30) para o shard do destinatário.

0

20

Cria dois subintervalos:

  • [x: 0, x: 20)

  • [x: 20, x: 100)

Move todos os documentos em [x: 0, x: 20) para o shard do destinatário.

40

100

Cria dois subintervalos:

  • [x: 0, x: 40)

  • [x: 40, x: 100)

Move todos os documentos em [x: 40, x: 100) para o shard do destinatário.

A tabela a seguir lista os resultados da configuração min para vários valores:

min
Quantidade de dados no intervalo das chaves
Resultado

0

Menos de 128 MB contidos entre as chaves x: 0 e x: 100 .

Move todos os documentos no intervalo para o fragmento do destinatário.

10

Menos de 128 MB contidos entre as chaves x: 0 e x: 100 .

Cria dois subintervalos:

  • [x: 0, x: 10)

  • [x : 10, x: 100)

Move todos os documentos em [x: 10, x: 100) para o shard do destinatário.

10

128 MB contidos entre as chaves x: 10 e x: 30 .

Cria três subintervalos:

  • [x: 0, x: 10)

  • [x: 10, x: 30)

  • [x: 30, x: 100)

Move todos os documentos em [x: 10, x: 30) para o shard do destinatário.

A tabela a seguir lista os resultados da configuração max para vários valores:

max
Quantidade de dados no intervalo das chaves
Resultado

100

Menos de 128 MB contidos entre as chaves x: 0 e x: 100 .

Move todos os documentos no intervalo para o fragmento do destinatário.

10

Menos de 128 MB contidos entre as chaves x: 0 e x: 100 .

Cria dois subintervalos:

  • [x: 0, x: 10)

  • [x : 10, x: 100)

Move todos os documentos em [x: 0, x: 10) para o shard do destinatário.

30

128 MB contidos entre as chaves x: 10 e x: 30 .

Cria três subintervalos:

  • [x: 0, x: 10)

  • [x: 10, x: 30)

  • [x: 30, x: 100)

Move todos os documentos em [x: 10, x: 30) para o shard do destinatário.

Voltar

movePrimary