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

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.

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 é suportado em todos os clusters do MongoDB Atlas . Para obter informações sobre o suporte do Atlas para 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
waitForDelete: <bool>, // optional
writeConcern: <write concern>, // optional
secondaryThrottle: <bool> // optional
}
)

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 lê e escreve operações na coleção.

Essa opção faz com que o shard migre chunks mesmo quando eles são maiores do que o tamanho configurado do chunk. A coleção permanece indisponível 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.

Dica

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