Docs Menu
Docs Home
/ /

moveChunk (comando de base de datos)

moveChunk

Comando administrativo interno. Movimientos fragmentos entre fragmentos. Emite el moveChunk Comando a través de una instancia mientras mongos se usa la base de datos de administración. Utilice los siguientes formatos:

Tip

mongoshEn, este comando también se puede ejecutar a través del método sh.moveChunk() 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.

db.adminCommand( { moveChunk : <namespace> ,
find : <query> ,
to : <string>,
forceJumbo: <boolean>,
_secondaryThrottle : <boolean>,
writeConcern: <document>,
_waitForDelete : <boolean> } )

Alternativamente:

db.adminCommand( { moveChunk : <namespace> ,
bounds : <array> ,
to : <string>,
forceJumbo: <boolean>,
_secondaryThrottle : <boolean>,
writeConcern: <document>,
_waitForDelete : <boolean> } )

El comando tiene los siguientes moveChunk campos:

Campo
Tipo
Descripción

moveChunk

string

El espacio de nombres de la colección donde se encuentra el fragmento. Especifique el espacio de nombres completo de la colección, incluido el nombre de la base de datos.

find

Documento

Una coincidencia de igualdad en la clave de fragmento que especifica el valor de la clave de fragmento del fragmento que se va a mover. Especifique el bounds campo o el find campo, pero no ambos.No utilice el find campo para seleccionar fragmentos en colecciones que utilicen una clave de fragmento con hash.

bounds

arreglo

Los límites de un fragmento específico que se va a mover. La matriz debe constar de dos documentos que especifiquen los valores de clave de fragmento inferior y superior del fragmento que se va a mover. Especifique el bounds campo o el find campo, pero no ambos. Use bounds para seleccionar fragmentos en colecciones que usen una clave de fragmento con hash.

to

string

El nombre del fragmento de destino para el fragmento.

booleano

Opcional. Un indicador que determina si el comando puede mover un fragmento demasiado grande para migrarlo. El fragmento puede estar etiquetado como jumbo o no.

  • Si es true, el comando puede mover el fragmento.

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

El valor es por defecto false.

ADVERTENCIA:

El comando moveChunk 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.

_secondaryThrottle

booleano

Opcional. Para WiredTiger, falseel valor predeterminado es.

  • Si true es, por defecto, cada movimiento de documento durante la migración de fragmentos se propaga a al menos un secundario antes de que el balanceador proceda con el siguiente documento. Esto equivale a una preocupación de escritura { w: 2 } de.

    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.

writeConcern

Documento

Opcional. Un documento que expresa la preocupación de _secondaryThrottle escritura que utilizará para esperar a los secundarios durante la migración del fragmento.

writeConcern requiere _secondaryThrottle: true.

_waitForDelete

booleano

Opcional. Si se establece true en, la fase de eliminación de una operación es moveChunk bloqueante. _waitForDelete tiene como valor false predeterminado.

Cuando _waitForDelete se configura el campo, MongoDB no espera el retraso antes de eliminar el rango. Si usa orphanCleanupDelaySecs el _waitForDelete parámetro y realiza operaciones de lectura en los secundarios, es posible que la lectura omita documentos debido a la fase de eliminación de la migración.

El valor de bounds toma la forma:

[ { hashedField : <minValue> } ,
{ hashedField : <maxValue> } ]

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

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

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

  • 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.

Utilice solo en moveChunk circunstancias especiales, como al preparar su clúster fragmentado para una ingesta inicial de datos o una operación de importación masiva de gran volumen. En la mayoría de los casos, permita que el balanceador cree y balancee fragmentos en clústeres fragmentados.Consulte "Crear rangos en un clúster fragmentado" para obtener más información.

moveChunk requiere que todos los índices existan en elto fragmento de destino (es decir,) antes de la migración y devuelve un error si no existe el índice requerido.

moveChunk devuelve el siguiente mensaje de error si hay otra operación de metadatos en curso en la chunks colección:

errmsg: "The collection's metadata lock is already taken."

Si otro proceso, como un proceso de balanceo, cambia los metadatos mientras se está ejecutando, podría moveChunk moveChunk aparecer este error. Puede reintentar la operación sin efectos secundarios.

A partir de MongoDB,5.0 puede maxCatchUpPercentageBeforeBlockingWrites configurar para especificar el porcentaje máximo permitido de datos aún no migrados durante una moveChunk operación en comparación con el tamaño total (en MB) del fragmento que se está transfiriendo.

Volver

fusionar todos los fragmentos en el fragmento

En esta página