Docs Menu
Docs Home
/ /
particionado

moveRange (comando de base de datos)

moveRange

Novedades en la versión 6.0.

mueve Intervalos entre fragmentos. Ejecute el moveRange comando con una instancia mientras usa la mongos basede datos de administración.

Tip

mongoshEn, este comando también se puede ejecutar a través del método sh.moveRange() auxiliar.

Los métodos asistente son convenientes para usuarios de mongosh, pero es posible que no proporcionen el mismo nivel de información que los comandos de base de datos. En los casos en que no se necesite la conveniencia o se requieran campos de retorno adicionales, utiliza el comando de base de datos.

Este comando está disponible en implementaciones alojadas en los siguientes entornos:

  • MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube

Nota

Este comando es compatible con todos los clústeres de MongoDB Atlas. Para obtener información sobre el soporte de Atlas para todos los comandos, consulte Comandos no compatibles.

  • MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB

  • MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.

El comando tiene la siguiente sintaxis:

db.adminCommand(
{
moveRange: <namespace>,
toShard: <ID of the recipient shard>,
min: <min key of the range to move>,
max: <max key of the range to move>, // optional
forceJumbo: <bool>, // optional
writeConcern: <write concern>, // optional
secondaryThrottle: <bool> // optional
}
)

El comando toma los siguientes campos:

Campo
Tipo
Descripción

toShard

string

ID del fragmento destinatario.

min

clave

Tecla mínima del rango a mover.

max

clave

Opcional.

Clave máxima del rango a mover. Si no se especifica max, dado un fragmento C que incluye la clave de fragmento min, max se determina de la siguiente manera:

  • Si el tamaño de los datos del rango entre min y max(C) es menor que el tamaño del fragmento por recopilación o el tamaño del fragmento predeterminado, el máximo del fragmento se selecciona como max = max(C).

  • De lo contrario, la clave max < max(C) donde max depende del tamaño del fragmento configurado.

booleano

Opcional.

Indicador que determina si el comando puede mover un rango demasiado grande para migrar. El rango puede estar etiquetado como jumbo o no.

  • Si true, el comando puede mover el rango.

  • Si es false, el comando no puede mover el rango.

El valor es por defecto false.

ADVERTENCIA:

El comando moveRange con forceJumbo=true bloquea las operaciones de escritura en la colección.

Esta opción provoca que la partición migre fragmentos, incluso cuando son más grandes que el tamaño de fragmento configurado. La colección permanece no disponible para guardados durante la migración.

Para migrar estos grandes fragmentos sin este largo período de bloqueo, consulta Balancear rangos que exceden el límite de tamaño en su lugar.

writeConcern

Documento

Opcional.

Documento con la inquietud escrita.

El valor predeterminado w: majority es.

secondaryThrottle

booleano

Opcional.

  • Si true, cada movimiento de documentos durante la migración de fragmentos se propaga al menos a un secundario antes de que el balanceador proceda con el siguiente documento. Esto equivale a un nivel de confirmación de escritura (write concern) de { w: 2 }.

    Utilice la opción writeConcern para especificar un problema de escritura diferente.

  • Si es false, el balanceador no espera la replicación a un secundario y, en su lugar, continúa con el siguiente documento.

Para obtener más información, consulte Acelerador secundario.

La sección de migración de rango describe cómo se mueven los rangos entre fragmentos en MongoDB.

Utilice solo en escenarios moveRange como:

  • una ingesta inicial de datos

  • una gran operación de importación a granel

Permitir que el equilibrador cree y equilibre rangos en clústeres fragmentados en la mayoría de los casos.

Los siguientes ejemplos utilizan una colección con:

  • Clave de fragmento x

  • Tamaño de fragmento configurado de 128MB

  • Un trozo con límites: [x: 0, x: 100)

La siguiente tabla enumera los resultados de configurar min y max con varios valores:

min
max
Resultado

0

100

Mueve todos los documentos del rango al fragmento del destinatario.

10

30

Crea tres subrangos:

  • [x: 0, x: 10)

  • [x: 10, x: 30)

  • [x: 30, x: 100)

Mueve todos los documentos en [x: 10, x: 30) al fragmento del destinatario.

0

20

Crea dos subrangos:

  • [x: 0, x: 20)

  • [x: 20, x: 100)

Mueve todos los documentos en [x: 0, x: 20) al fragmento del destinatario.

40

100

Crea dos subrangos:

  • [x: 0, x: 40)

  • [x: 40, x: 100)

Mueve todos los documentos en [x: 40, x: 100) al fragmento del destinatario.

La siguiente tabla enumera los resultados de establecer min en varios valores:

min
Cantidad de datos en el rango de claves
Resultado

0

Menos de 128 MB contenidos entre las claves x: 0 y x: 100.

Mueve todos los documentos del rango al fragmento del destinatario.

10

Menos de 128 MB contenidos entre las claves x: 0 y x: 100.

Crea dos subrangos:

  • [x: 0, x: 10)

  • [x : 10, x: 100)

Mueve todos los documentos en [x: 10, x: 100) al fragmento del destinatario.

10

128 MB contenidos entre las claves x: 10 y x: 30.

Crea tres subrangos:

  • [x: 0, x: 10)

  • [x: 10, x: 30)

  • [x: 30, x: 100)

Mueve todos los documentos en [x: 10, x: 30) al fragmento del destinatario.

Volver

moverPrimario

En esta página